42 : std::vector<std::shared_ptr<
VarBase>>(args.size())
45 for(
const auto& arg : args)
47 compute_unique_arg_names();
72 for(
const auto& arg : args)
73 push_back(arg.get().arg_copy());
74 compute_unique_arg_names();
86 for(
const auto& ai : *
this)
91 void compute_unique_arg_names()
93 std::list<std::string> var_names;
94 for(
const auto& arg : *
this)
95 var_names.push_back(arg->name());
98 for(
auto& arg : *
this)
100 if(arg->name() ==
"?")
102 std::string new_name;
104 new_name =
'a' + ((i++)%26);
105 }
while(std::find(var_names.begin(),var_names.end(),new_name) != var_names.end());
106 arg->_name = new_name;
FunctionArgsList(const FunctionArgsList &args)
Copy constructor.
Definition codac2_FunctionArgsList.h:41
FunctionArgsList()
Default constructor. It creates an empty list of arguments.
Definition codac2_FunctionArgsList.h:31
Index total_size() const
Calculates the total size of the function arguments, as the sum of the sizes of each argument.
Definition codac2_FunctionArgsList.h:83
FunctionArgsList(const std::vector< std::reference_wrapper< VarBase > > &args)
Constructor to initialize a FunctionArgsList from a vector of of references to VarBase objects.
Definition codac2_FunctionArgsList.h:70
FunctionArgsList(std::initializer_list< std::reference_wrapper< VarBase > > args)
Constructor to initialize a FunctionArgsList from an initializer list of references to VarBase object...
Definition codac2_FunctionArgsList.h:58
Abstract base class for representing variables in analytic or set functions.
Definition codac2_VarBase.h:24
virtual std::shared_ptr< VarBase > arg_copy() const =0
Creates a copy of the argument.