From ec2cd0684032e293b9eca3d7f1f3fbb346f92b55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org> Date: Mon, 22 Jul 2024 12:28:18 +0200 Subject: [PATCH] C++20 modernization: use std::ranges::set_difference --- src/DynamicModel.cc | 9 +++------ src/ModFile.cc | 4 ++-- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/DynamicModel.cc b/src/DynamicModel.cc index 19d34485..ff97b296 100644 --- a/src/DynamicModel.cc +++ b/src/DynamicModel.cc @@ -3040,8 +3040,7 @@ DynamicModel::findUnusedEndogenous() for (auto& equation : static_only_equations) equation->collectVariables(SymbolType::endogenous, usedEndo); set<int> allEndo = symbol_table.getEndogenous(); - set_difference(allEndo.begin(), allEndo.end(), usedEndo.begin(), usedEndo.end(), - inserter(unusedEndo, unusedEndo.begin())); + ranges::set_difference(allEndo, usedEndo, inserter(unusedEndo, unusedEndo.begin())); return unusedEndo; } @@ -3055,10 +3054,8 @@ DynamicModel::findUnusedExogenous() equation->collectVariables(SymbolType::exogenous, usedExo); set<int> observedExo = symbol_table.getObservedExogenous(); set<int> allExo = symbol_table.getExogenous(); - set_difference(allExo.begin(), allExo.end(), observedExo.begin(), observedExo.end(), - inserter(unobservedExo, unobservedExo.begin())); - set_difference(unobservedExo.begin(), unobservedExo.end(), usedExo.begin(), usedExo.end(), - inserter(unusedExo, unusedExo.begin())); + ranges::set_difference(allExo, observedExo, inserter(unobservedExo, unobservedExo.begin())); + ranges::set_difference(unobservedExo, usedExo, inserter(unusedExo, unusedExo.begin())); return unusedExo; } diff --git a/src/ModFile.cc b/src/ModFile.cc index fcc654cb..4e70c100 100644 --- a/src/ModFile.cc +++ b/src/ModFile.cc @@ -376,8 +376,8 @@ ModFile::checkPass(bool nostrict, bool stochastic) // Check if some exogenous is not used in the model block, Issue #841 set<int> unusedExo0 = dynamic_model.findUnusedExogenous(); set<int> unusedExo; - set_difference(unusedExo0.begin(), unusedExo0.end(), mod_file_struct.pac_params.begin(), - mod_file_struct.pac_params.end(), inserter(unusedExo, unusedExo.begin())); + ranges::set_difference(unusedExo0, mod_file_struct.pac_params, + inserter(unusedExo, unusedExo.begin())); if (unusedExo.size() > 0) { ostringstream unused_exos; -- GitLab