#ifndef CK_FUNCTIONAL4_HPP #define CK_FUNCTIONAL4_HPP #include "Sequence.hpp" #include "tuple.hpp" #include "Array.hpp" namespace ck { namespace detail { template struct unpack_impl; template struct unpack_impl> { template __host__ __device__ constexpr auto operator()(F f, const X& x) const { return f(x.At(Number{})...); } }; } // namespace detail template __host__ __device__ constexpr auto unpack(F f, const X& x) { return detail::unpack_impl::type>{}(f, x); } } // namespace ck #endif