Modernizing: Use std::accumulate instead of for loop

This commit is contained in:
Daniel Marjamäki 2019-04-28 11:17:11 +02:00
parent 9d72e24edb
commit 9c5d24c551
1 changed files with 5 additions and 3 deletions

View File

@ -36,6 +36,7 @@
#include <tinyxml2.h> #include <tinyxml2.h>
#include <algorithm> #include <algorithm>
#include <cstdlib> #include <cstdlib>
#include <numeric>
#include <sstream> #include <sstream>
#include <stack> #include <stack>
#include <utility> #include <utility>
@ -344,9 +345,10 @@ static std::string stringifyIndexes(const std::string &array, const std::vector<
static std::string arrayIndexMessage(const Token *tok, const std::vector<Dimension> &dimensions, const std::vector<const ValueFlow::Value *> &indexValues, const Token *condition) static std::string arrayIndexMessage(const Token *tok, const std::vector<Dimension> &dimensions, const std::vector<const ValueFlow::Value *> &indexValues, const Token *condition)
{ {
std::string array = tok->astOperand1()->expressionString(); auto add_dim = [](const std::string &s, const Dimension &dim) {
for (const Dimension &dim : dimensions) return s + "[" + MathLib::toString(dim.num) + "]";
array += "[" + MathLib::toString(dim.num) + "]"; };
const std::string array = std::accumulate(dimensions.begin(), dimensions.end(), tok->astOperand1()->expressionString(), add_dim);
std::ostringstream errmsg; std::ostringstream errmsg;
if (condition) if (condition)