From beeaa78d68374c9ca5883e2a17a45bcc283d6c62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org> Date: Fri, 7 Jul 2023 14:58:23 +0200 Subject: [PATCH] Do not use C++20 lambda capture of structured bindings Not supported by Clang < 16. --- src/ModelTree.cc | 2 +- src/Statement.cc | 2 +- src/SubModel.cc | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ModelTree.cc b/src/ModelTree.cc index b1c23631..9636a68e 100644 --- a/src/ModelTree.cc +++ b/src/ModelTree.cc @@ -373,7 +373,7 @@ ModelTree::evaluateAndReduceJacobian(const eval_context_t &eval_context) const int eq = indices[0]; int var { getTypeSpecificIDByDerivID(deriv_id) }; int lag = getLagByDerivID(deriv_id); - double val { [&] + double val { [&, d1 = d1] { try { diff --git a/src/Statement.cc b/src/Statement.cc index b4c357f4..290db113 100644 --- a/src/Statement.cc +++ b/src/Statement.cc @@ -185,7 +185,7 @@ void OptionsList::writeOutputCommon(ostream &output, const string &option_group) const { for (const auto &[name, val] : options) - std::visit([&]<class T>(const T &v) + std::visit([&, &name = name, &val = val]<class T>(const T &v) { if constexpr(is_same_v<T, SymbolListVal>) v.writeOutput(option_group + "." + name, output); diff --git a/src/SubModel.cc b/src/SubModel.cc index 38d3733b..64534beb 100644 --- a/src/SubModel.cc +++ b/src/SubModel.cc @@ -1227,7 +1227,7 @@ PacModelTable::transformPass(const lag_equivalence_table_t &unary_ops_nodes, // Associate the coefficients of the linear combination with the right components for (auto [var, coeff] : terms) if (auto it = find_if(components.begin(), components.end(), - [&](const auto &v) { return get<0>(v) == dynamic_model.AddVariable(var); }); + [&, &var = var](const auto &v) { return get<0>(v) == dynamic_model.AddVariable(var); }); it != components.end()) get<4>(*it) = coeff; else -- GitLab