| 248 | |
| 249 | template <class T, class F> |
| 250 | CUTE_HOST_DEVICE constexpr |
| 251 | auto |
| 252 | transform_leaf(T const& t, F&& f) |
| 253 | { |
| 254 | if constexpr (is_tuple<T>::value) { |
| 255 | return transform(t, [&](auto const& a) { return transform_leaf(a, f); }); |
| 256 | } else { |
| 257 | return f(t); |
| 258 | } |
| 259 | |
| 260 | CUTE_GCC_UNREACHABLE; |
| 261 | } |
| 262 | |
| 263 | template <class T0, class T1, class F> |
| 264 | CUTE_HOST_DEVICE constexpr |