DPC++ Runtime
Runtime libraries for oneAPI Data Parallel C++
type_traits.hpp File Reference
#include <CL/sycl/access/access.hpp>
#include <CL/sycl/detail/generic_type_lists.hpp>
#include <CL/sycl/detail/stl_type_traits.hpp>
#include <CL/sycl/detail/type_list.hpp>
#include <array>
#include <tuple>
#include <type_traits>
Include dependency graph for type_traits.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  cl::sycl::group< Dimensions >
 Encapsulates all functionality required to represent a particular work-group within a parallel execution. More...
 
struct  cl::sycl::detail::is_group< T >
 
struct  cl::sycl::detail::is_group< group< Dimensions > >
 
struct  cl::sycl::detail::is_sub_group< T >
 
struct  cl::sycl::detail::is_sub_group< ext::oneapi::sub_group >
 
struct  cl::sycl::detail::is_generic_group< T >
 
class  cl::sycl::multi_ptr< ElementType, Space >
 Provides constructors for address space qualified and non address space qualified pointers to allow interoperability between plain C++ and OpenCL C. More...
 
struct  cl::sycl::detail::copy_cv_qualifiers< T, R >
 
struct  cl::sycl::detail::vector_size_impl< T >
 
struct  cl::sycl::detail::vector_size_impl< vec< T, N > >
 
struct  cl::sycl::detail::vector_size< T >
 
struct  cl::sycl::detail::vector_alignment_impl< T, N >
 
struct  cl::sycl::detail::vector_alignment< T, N >
 
struct  cl::sycl::detail::vector_element_impl< T >
 
struct  cl::sycl::detail::vector_element_impl< T >
 
struct  cl::sycl::detail::vector_element_impl< vec< T, N > >
 
struct  cl::sycl::detail::vector_element< T >
 
struct  cl::sycl::detail::change_base_type< T, B >
 
struct  cl::sycl::detail::change_base_type< vec< T, N >, B >
 
struct  cl::sycl::detail::copy_cv_qualifiers_impl< T, R >
 
struct  cl::sycl::detail::copy_cv_qualifiers_impl< const T, R >
 
struct  cl::sycl::detail::copy_cv_qualifiers_impl< volatile T, R >
 
struct  cl::sycl::detail::copy_cv_qualifiers_impl< const volatile T, R >
 
struct  cl::sycl::detail::copy_cv_qualifiers< T, R >
 
struct  cl::sycl::detail::make_signed_impl< T, Enable >
 
struct  cl::sycl::detail::make_signed_impl< T, enable_if_t< is_contained< T, gtl::scalar_integer_list >::value, T > >
 
struct  cl::sycl::detail::make_signed_impl< T, enable_if_t< is_contained< T, gtl::vector_integer_list >::value, T > >
 
struct  cl::sycl::detail::make_signed_impl< T, enable_if_t<!is_contained< T, gtl::integer_list >::value, T > >
 
struct  cl::sycl::detail::make_signed< T >
 
struct  cl::sycl::detail::make_unsigned_impl< T, Enable >
 
struct  cl::sycl::detail::make_unsigned_impl< T, enable_if_t< is_contained< T, gtl::scalar_integer_list >::value, T > >
 
struct  cl::sycl::detail::make_unsigned_impl< T, enable_if_t< is_contained< T, gtl::vector_integer_list >::value, T > >
 
struct  cl::sycl::detail::make_unsigned_impl< T, enable_if_t<!is_contained< T, gtl::integer_list >::value, T > >
 
struct  cl::sycl::detail::make_unsigned< T >
 
struct  cl::sycl::detail::is_vec< typename >
 
struct  cl::sycl::detail::is_vec< cl::sycl::vec< T, N > >
 
struct  cl::sycl::detail::is_integral< T >
 
struct  cl::sycl::detail::is_floating_point_impl< T >
 
struct  cl::sycl::detail::is_floating_point_impl< half >
 
struct  cl::sycl::detail::is_floating_point< T >
 
struct  cl::sycl::detail::is_arithmetic< T >
 
struct  cl::sycl::detail::is_scalar_arithmetic< T >
 
struct  cl::sycl::detail::is_vector_arithmetic< T >
 
struct  cl::sycl::detail::is_scalar_bool< T >
 
struct  cl::sycl::detail::is_vector_bool< T >
 
struct  cl::sycl::detail::is_bool< T >
 
struct  cl::sycl::detail::is_pointer_impl< T >
 
struct  cl::sycl::detail::is_pointer_impl< T * >
 
struct  cl::sycl::detail::is_pointer_impl< multi_ptr< T, Space > >
 
struct  cl::sycl::detail::is_pointer< T >
 
struct  cl::sycl::detail::remove_pointer_impl< T >
 
struct  cl::sycl::detail::remove_pointer_impl< T * >
 
struct  cl::sycl::detail::remove_pointer_impl< multi_ptr< T, Space > >
 
struct  cl::sycl::detail::remove_pointer< T >
 
struct  cl::sycl::detail::is_address_space_compliant_impl< T, SpaceList >
 
struct  cl::sycl::detail::is_address_space_compliant_impl< T *, SpaceList >
 
struct  cl::sycl::detail::is_address_space_compliant_impl< multi_ptr< T, Space >, SpaceList >
 
struct  cl::sycl::detail::is_address_space_compliant< T, SpaceList >
 
struct  cl::sycl::detail::make_type_impl< T, TL >
 
struct  cl::sycl::detail::make_type_impl< vec< T, N >, TL >
 
struct  cl::sycl::detail::make_larger_impl< T, Enable >
 
struct  cl::sycl::detail::make_larger_impl< T, enable_if_t< is_contained< T, gtl::scalar_floating_list >::value, T > >
 
struct  cl::sycl::detail::make_larger_impl< T, enable_if_t< is_contained< T, gtl::scalar_signed_integer_list >::value, T > >
 
struct  cl::sycl::detail::make_larger_impl< T, enable_if_t< is_contained< T, gtl::scalar_unsigned_integer_list >::value, T > >
 
struct  cl::sycl::detail::make_larger_impl< vec< T, N >, vec< T, N > >
 
struct  cl::sycl::detail::make_larger< T >
 
struct  cl::sycl::detail::function_traits< T >
 
struct  cl::sycl::detail::function_traits< Ret(Args...)>
 

Namespaces

 cl
 We provide new interfaces for matrix muliply in this patch:
 
 cl::sycl
 
 cl::sycl::ext
 
 cl::sycl::ext::oneapi
 
 cl::sycl::detail
 
 cl::sycl::detail::half_impl
 

Typedefs

using cl::sycl::detail::uuid_type = std::array< unsigned char, 16 >
 
template<typename T , typename R >
using cl::sycl::detail::copy_cv_qualifiers_t = typename copy_cv_qualifiers< T, R >::type
 
template<int V>
using cl::sycl::detail::int_constant = std::integral_constant< int, V >
 
template<typename T >
using cl::sycl::detail::vector_element_impl_t = typename vector_element_impl< T >::type
 
template<class T >
using cl::sycl::detail::vector_element_t = typename vector_element< T >::type
 
template<typename T , typename B >
using cl::sycl::detail::change_base_type_t = typename change_base_type< T, B >::type
 
template<typename T >
using cl::sycl::detail::make_signed_impl_t = typename make_signed_impl< T, T >::type
 
template<typename T >
using cl::sycl::detail::make_signed_t = typename make_signed< T >::type
 
template<typename T >
using cl::sycl::detail::make_unsigned_impl_t = typename make_unsigned_impl< T, T >::type
 
template<typename T >
using cl::sycl::detail::make_unsigned_t = typename make_unsigned< T >::type
 
template<typename T , int N, template< typename > class S>
using cl::sycl::detail::is_gen_based_on_type_sizeof = bool_constant< S< T >::value &&(sizeof(vector_element_t< T >)==N)>
 
template<typename T >
using cl::sycl::detail::remove_pointer_t = typename remove_pointer< T >::type
 
template<typename T , typename TL >
using cl::sycl::detail::make_type_t = typename make_type_impl< T, TL >::type
 
template<typename T >
using cl::sycl::detail::make_larger_t = typename make_larger< T >::type
 
template<access::address_space AS, class DataT >
using cl::sycl::detail::const_if_const_AS = DataT
 

Variables

template<class T >
__SYCL_INLINE_CONSTEXPR bool cl::sycl::is_group_v