diff --git a/include/inja/template.hpp b/include/inja/template.hpp index bc63be2..8c6912a 100644 --- a/include/inja/template.hpp +++ b/include/inja/template.hpp @@ -20,13 +20,9 @@ struct Template { /// Return number of variables (total number, not distinct ones) in the template int count_variables() { - int result {0}; - for (auto& n : nodes) { - if (n.flags == Node::Flag::ValueLookupDot || n.flags == Node::Flag::ValueLookupPointer) { - result += 1; - } - } - return result; + return std::count_if(nodes.cbegin(), nodes.cend(), [](const inja::Node &node) { + return (node.flags == Node::Flag::ValueLookupDot || node.flags == Node::Flag::ValueLookupPointer); + }); } }; diff --git a/single_include/inja/inja.hpp b/single_include/inja/inja.hpp index 40551d8..20bff7e 100644 --- a/single_include/inja/inja.hpp +++ b/single_include/inja/inja.hpp @@ -2283,13 +2283,9 @@ struct Template { /// Return number of variables (total number, not distinct ones) in the template int count_variables() { - int result {0}; - for (auto& n : nodes) { - if (n.flags == Node::Flag::ValueLookupDot || n.flags == Node::Flag::ValueLookupPointer) { - result += 1; - } - } - return result; + return std::count_if(nodes.cbegin(), nodes.cend(), [](const inja::Node &node) { + return (node.flags == Node::Flag::ValueLookupDot || node.flags == Node::Flag::ValueLookupPointer); + }); } };