From 57308528289e07ff9e8b87578a92dacd6bc89b14 Mon Sep 17 00:00:00 2001 From: Houtan Bastani Date: Mon, 3 Jul 2017 14:52:06 +0200 Subject: [PATCH] preprocessor: to_string is in the new C++ standard --- ExprNode.cc | 17 ++++++++++++----- ParsingDriver.cc | 11 +++++++++-- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/ExprNode.cc b/ExprNode.cc index c81a24d3..855f6d57 100644 --- a/ExprNode.cc +++ b/ExprNode.cc @@ -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; } diff --git a/ParsingDriver.cc b/ParsingDriver.cc index 9072fc3b..dc0943cb 100644 --- a/ParsingDriver.cc +++ b/ParsingDriver.cc @@ -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;