From 0fa0dcb7fd7f1eee19c7c757bf31e90bd72ecf73 Mon Sep 17 00:00:00 2001 From: Ben Deane Date: Wed, 12 Feb 2025 09:19:38 -0700 Subject: [PATCH] :arrow_up: Update stdx Problem: - LLVM18 clang-tidy flags `handled` as able to be declared `const`. This is wrong, but what we're actually doing here is better expressed as `transform_reduce` on the bitset. Solution: - Use `transform_reduce`. Note: - `transform_reduce` is the operation here because we do not want to shortcut handling the message. `any_of` would be correct for that use case. --- CMakeLists.txt | 2 +- include/msg/detail/indexed_handler_common.hpp | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) 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.");