preprocessor: to_string is in the new C++ standard

issue#70
Houtan Bastani 2017-07-03 14:52:06 +02:00
parent b7b0a6f73a
commit 5730852828
2 changed files with 21 additions and 7 deletions

View File

@ -4316,13 +4316,20 @@ BinaryOpNode::substituteAdlAndDiff() const
expr_t arg1subst = arg1->substituteAdlAndDiff();
int i = 1;
int param_symb_id = datatree.symbol_table.getID(adlparam + "_lag_" + to_string(i));
ostringstream inttostr;
inttostr << i;
int param_symb_id = datatree.symbol_table.getID(adlparam + "_lag_" + inttostr.str());
expr_t retval = datatree.AddTimes(datatree.AddVariable(param_symb_id, 0), arg1subst->decreaseLeadsLags(i));
i++;
for (; i <= (int) arg2->eval(eval_context_t()); i++)
retval = datatree.AddPlus(retval,
datatree.AddTimes(datatree.AddVariable(datatree.symbol_table.getID(adlparam + "_lag_" + to_string(i)), 0),
arg1subst->decreaseLeadsLags(i)));
for (; i <= (int) arg2->eval(eval_context_t());)
{
inttostr.clear();
inttostr.str("");
inttostr << i++;
retval = datatree.AddPlus(retval,
datatree.AddTimes(datatree.AddVariable(datatree.symbol_table.getID(adlparam + "_lag_" + inttostr.str()), 0),
arg1subst->decreaseLeadsLags(i)));
}
return retval;
}

View File

@ -2598,8 +2598,15 @@ ParsingDriver::add_adl(expr_t arg1, string *name, string *lag)
data_tree->AddNonNegativeConstant(*lag));
// Declare parameters here so that parameters can be initialized after the model block
for (int i = 0; i < atoi(lag->c_str()); i++)
declare_parameter(new string(*name + "_lag_" + to_string(i+1)));
int i = 0;
ostringstream inttostr;
for (; i < atoi(lag->c_str()); i++)
{
inttostr.clear();
inttostr.str("");
inttostr << i + 1;
declare_parameter(new string(*name + "_lag_" + inttostr.str()));
}
delete name;
delete lag;