diff --git a/src/core/include/mp-units/ext/algorithm.h b/src/core/include/mp-units/ext/algorithm.h index 564000ac..15e3ad7b 100644 --- a/src/core/include/mp-units/ext/algorithm.h +++ b/src/core/include/mp-units/ext/algorithm.h @@ -35,6 +35,8 @@ import std; #include #include #include +#include +#include #endif #endif @@ -150,4 +152,16 @@ constexpr ForwardIt2 swap_ranges(ForwardIt1 first1, ForwardIt1 last1, ForwardIt2 return first2; } +template +constexpr void for_each_impl(const std::tuple& t, F&& func, std::index_sequence) +{ + (..., func(std::get(t))); +} + +template +constexpr void for_each(const std::tuple& t, F&& func) +{ + for_each_impl(t, std::forward(func), std::index_sequence_for{}); +} + } // namespace mp_units::detail