diff --git a/CMakeLists.txt b/CMakeLists.txt index 772af74f..445e0546 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,7 +25,7 @@ include(cmake/string_catalog.cmake) add_versioned_package("gh:boostorg/mp11#boost-1.83.0") fmt_recipe(10.2.1) add_versioned_package("gh:intel/cpp-baremetal-concurrency#7c5b26c") -add_versioned_package("gh:intel/cpp-std-extensions#2834680") +add_versioned_package("gh:intel/cpp-std-extensions#37cc9c5") add_versioned_package("gh:intel/cpp-baremetal-senders-and-receivers#73d95bc") set(GEN_STR_CATALOG diff --git a/include/msg/detail/indexed_handler_common.hpp b/include/msg/detail/indexed_handler_common.hpp index 000a40bc..29d982c9 100644 --- a/include/msg/detail/indexed_handler_common.hpp +++ b/include/msg/detail/indexed_handler_common.hpp @@ -7,6 +7,7 @@ #include #include +#include #include #include #include @@ -49,9 +50,9 @@ struct indexed_handler : handler_interface { handle(MsgBase const &msg, ExtraCallbackArgs... args) const -> bool final { auto const callback_candidates = index(msg); - bool handled{}; - for_each([&](auto i) { handled |= callback_entries[i](msg, args...); }, - callback_candidates); + bool const handled = transform_reduce( + [&](auto i) -> bool { return callback_entries[i](msg, args...); }, + std::logical_or{}, false, callback_candidates); if (not handled) { CIB_ERROR("None of the registered callbacks claimed this message.");