Revert "macroprocessor: interpret arrays passed on the command line as arrays instead of strings. closes #1578"
Commit 204d9cd05fef9ac6fda8530536578c05fab66366 fails with gcc 4.9 (I checked that it works flawlessly with 6.x). The error message is: MacroDriver.cc:63:24: error: 'class std::basic_string<char>' has no member named 'front' if (it->second.front() == '[' && it->second.back() == ']') ^ MacroDriver.cc:63:53: error: 'class std::basic_string<char>' has no member named 'back' if (it->second.front() == '[' && it->second.back() == ']') Ideally we should bump the version of gcc used in the build system, but I will not do that before the next bug fix release. I suppose it is easier to replace the front() and back() methods.issue#70
parent
17dd443341
commit
8bae11e85a
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2008-2018 Dynare Team
|
* Copyright (C) 2008-2017 Dynare Team
|
||||||
*
|
*
|
||||||
* This file is part of Dynare.
|
* This file is part of Dynare.
|
||||||
*
|
*
|
||||||
|
@ -60,11 +60,7 @@ MacroDriver::parse(const string &f, const string &fb, const string &modfiletxt,
|
||||||
}
|
}
|
||||||
catch (boost::bad_lexical_cast &)
|
catch (boost::bad_lexical_cast &)
|
||||||
{
|
{
|
||||||
if (it->second.front() == '[' && it->second.back() == ']')
|
file_with_endl << "@#define " << it->first << " = \"" << it->second << "\"" << endl;
|
||||||
// If the input is an array. Issue #1578
|
|
||||||
file_with_endl << "@#define " << it->first << " = " << it->second << endl;
|
|
||||||
else
|
|
||||||
file_with_endl << "@#define " << it->first << " = \"" << it->second << "\"" << endl;
|
|
||||||
}
|
}
|
||||||
file_with_endl << modfiletxt << endl;
|
file_with_endl << modfiletxt << endl;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue