diff --git a/Src/Base/AMReX_Tuple.H b/Src/Base/AMReX_Tuple.H index a628a5e30de..4d74198272f 100644 --- a/Src/Base/AMReX_Tuple.H +++ b/Src/Base/AMReX_Tuple.H @@ -416,6 +416,23 @@ auto tupleToArray (GpuTuple const& tup) return detail::tuple_to_array_helper(tup, std::index_sequence_for{}); } -} +} // namespace amrex + +// Spcialize std::tuple_size for GpuTuple. Used by structured bindings. +template +struct std::tuple_size> { + static constexpr std::size_t value = sizeof...(Ts); +}; + +// Spcialize std::tuple_element for GpuTuple. Used by structured bindings. +template +struct std::tuple_element> { + using type = T; +}; + +template +struct std::tuple_element> { + using type = typename std::tuple_element>::type; +}; #endif /*AMREX_TUPLE_H_*/