From 39d2b53fba28fa65483ce6cb079c4abb26cb6549 Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Sun, 16 Mar 2025 09:25:24 +0100 Subject: [PATCH] refactor(contextual_option): use any_of to implement predicate check --- include/dwarfs/writer/contextual_option.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/include/dwarfs/writer/contextual_option.h b/include/dwarfs/writer/contextual_option.h index e061a5c2..06a143ca 100644 --- a/include/dwarfs/writer/contextual_option.h +++ b/include/dwarfs/writer/contextual_option.h @@ -21,6 +21,7 @@ #pragma once +#include #include #include #include @@ -91,18 +92,17 @@ class contextual_option { template bool any_is(T&& pred) const { - for (auto e : contextual_) { - if (pred(e.second)) { - return true; - } - } - return default_ && pred(*default_); + auto&& p = std::forward(pred); + return std::ranges::any_of(contextual_, p, + &decltype(contextual_)::value_type::second) || + (default_ && p(*default_)); } template void visit_contextual(T&& visitor) const { + auto&& v = std::forward(visitor); for (auto const& [ctx, val] : contextual_) { - visitor(ctx, val); + v(ctx, val); } }