19 #include <initializer_list> 34 Argument(std::initializer_list<double> );
43 double & operator[] (
int I);
44 const double & operator[] (
int i)
const;
47 unsigned int dimension()
const;
51 std::vector<double> *_data;
53 friend std::ostream & operator << (std::ostream & o,
const Argument & a);
57 inline Argument::Argument(
const Argument & right):
58 _data(
new std::vector<double>(*(right._data))){
65 _data =
new std::vector<double>(*(right._data));
70 inline unsigned int Argument::dimension()
const {
74 inline double & Argument::operator[] (
int i) {
78 inline const double & Argument::operator[] (
int i)
const {
82 inline Argument::Argument(
int ndim): _data(
new std::vector<double>(ndim)) {
85 inline Argument::~Argument() {
90 inline Argument::Argument(std::initializer_list<double> lst):_data(
new std::vector<double>(lst)) {
94 inline std::ostream & operator << (std::ostream & os,
const Argument & a) {
95 std::ostream_iterator<double> oi(os,
",");
96 std::copy (a._data->begin(),a._data->end(),oi);