12 #include <type_traits>
18 #define SYCL_DEVICE_COPYABLE 1
21 inline namespace _V1 {
32 template <
typename T,
typename =
void>
37 T,
std::enable_if_t<!std::is_same_v<T, std::remove_cv_t<T>>>>
51 template <
typename T, std::
size_t N>
60 template <
typename T1,
typename T2>
62 : std::bool_constant<is_device_copyable<T1>::value &&
63 is_device_copyable<T2>::value> {};
67 template <
typename... Ts>
69 : std::bool_constant<(... && is_device_copyable<Ts>::value)> {};
73 template <
typename... Ts>
75 : std::bool_constant<(... && is_device_copyable<Ts>::value)> {};
78 template <
typename T, std::
size_t N>
constexpr bool is_device_copyable_v
is_device_copyable is a user specializable class template to indicate that a type T is device copyabl...