DPC++ Runtime
Runtime libraries for oneAPI DPC++
is_device_copyable.hpp File Reference
#include <array>
#include <optional>
#include <type_traits>
#include <variant>
Include dependency graph for is_device_copyable.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  sycl::_V1::detail::is_device_copyable_impl< T, typename >
 
struct  sycl::_V1::detail::is_device_copyable_impl< T, std::enable_if_t<!std::is_same_v< T, std::remove_cv_t< T > > > >
 
struct  sycl::_V1::is_device_copyable< T >
 is_device_copyable is a user specializable class template to indicate that a type T is device copyable, which means that SYCL implementation may copy objects of the type T between host and device or between two devices. More...
 
struct  sycl::_V1::is_device_copyable< std::array< T, 0 > >
 
struct  sycl::_V1::is_device_copyable< std::array< T, N > >
 
struct  sycl::_V1::is_device_copyable< std::optional< T > >
 
struct  sycl::_V1::is_device_copyable< std::pair< T1, T2 > >
 
struct  sycl::_V1::is_device_copyable< std::tuple< Ts... > >
 
struct  sycl::_V1::is_device_copyable< std::variant< Ts... > >
 
struct  sycl::_V1::is_device_copyable< T[N]>
 

Namespaces

 sycl
 
 sycl::_V1
 
 sycl::_V1::detail
 

Macros

#define SYCL_DEVICE_COPYABLE   1
 This macro must be defined to 1 when SYCL implementation allows user applications to explicitly declare certain class types as device copyable by adding specializations of is_device_copyable type trait class. More...
 

Variables

template<typename T >
constexpr bool sycl::_V1::is_device_copyable_v = is_device_copyable<T>::value
 

Macro Definition Documentation

◆ SYCL_DEVICE_COPYABLE

#define SYCL_DEVICE_COPYABLE   1

This macro must be defined to 1 when SYCL implementation allows user applications to explicitly declare certain class types as device copyable by adding specializations of is_device_copyable type trait class.

Definition at line 18 of file is_device_copyable.hpp.