| 19 | } |
| 20 | template <typename Tuple, typename Fn> |
| 21 | constexpr decltype(auto) tuple_for_each(Tuple&& tuple, Fn&& fn) { |
| 22 | using indexes = std::make_index_sequence< |
| 23 | std::tuple_size<std::decay_t<Tuple>>::value>; |
| 24 | |
| 25 | return tuple_for_each_impl( |
| 26 | std::forward<Tuple>(tuple), |
| 27 | indexes {}, |
| 28 | std::forward<Fn>(fn)); |
| 29 | } |
| 30 | |
| 31 | template <size_t Alignment, typename T> |
| 32 | constexpr T align_value(T value) { |
no test coverage detected