DPC++ Runtime
Runtime libraries for oneAPI DPC++
type_traits.hpp File Reference
#include <sycl/access/access.hpp>
#include <sycl/detail/generic_type_lists.hpp>
#include <sycl/detail/type_list.hpp>
#include <array>
#include <cstddef>
#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

struct  sycl::_V1::detail::is_fixed_size_group< T >
 
struct  sycl::_V1::ext::oneapi::experimental::is_fixed_topology_group< T >
 
struct  sycl::_V1::ext::oneapi::experimental::is_fixed_topology_group< root_group< Dimensions > >
 
struct  sycl::_V1::ext::oneapi::experimental::is_fixed_topology_group< sycl::group< Dimensions > >
 
struct  sycl::_V1::ext::oneapi::experimental::is_fixed_topology_group< sycl::ext::oneapi::sub_group >
 
struct  sycl::_V1::ext::oneapi::experimental::is_fixed_topology_group< sycl::sub_group >
 
struct  sycl::_V1::ext::oneapi::experimental::is_user_constructed_group< T >
 
struct  sycl::_V1::ext::oneapi::experimental::detail::is_group_helper< T >
 
struct  sycl::_V1::ext::oneapi::experimental::detail::is_group_helper< group_with_scratchpad< Group, Extent > >
 
struct  sycl::_V1::detail::is_group< T >
 
struct  sycl::_V1::detail::is_group< group< Dimensions > >
 
struct  sycl::_V1::detail::is_sub_group< T >
 
struct  sycl::_V1::detail::is_sub_group< ext::oneapi::sub_group >
 
struct  sycl::_V1::detail::is_sub_group< sycl::sub_group >
 
struct  sycl::_V1::detail::is_generic_group< T >
 
struct  sycl::_V1::is_group< T >
 
struct  sycl::_V1::detail::vector_size_impl< T >
 
struct  sycl::_V1::detail::vector_size_impl< vec< T, N > >
 
struct  sycl::_V1::detail::vector_size< T >
 
struct  sycl::_V1::detail::vector_element_impl< T >
 
struct  sycl::_V1::detail::vector_element_impl< vec< T, N > >
 
struct  sycl::_V1::detail::vector_element< T >
 
struct  sycl::_V1::detail::get_elem_type_unqual< T, typename >
 
struct  sycl::_V1::detail::get_elem_type_unqual< marray< T, N > >
 
struct  sycl::_V1::detail::get_elem_type_unqual< vec< T, N > >
 
struct  sycl::_V1::detail::get_elem_type_unqual< SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes... > >
 
struct  sycl::_V1::detail::get_elem_type_unqual< multi_ptr< ElementType, Space, DecorateAddress > >
 
struct  sycl::_V1::detail::get_elem_type_unqual< ElementType * >
 
struct  sycl::_V1::detail::is_ext_vector< T, typename >
 
struct  sycl::_V1::detail::is_ext_vector< T, std::void_t< decltype(__builtin_reduce_max(std::declval< T >()))> >
 
struct  sycl::_V1::detail::get_elem_type_unqual< T, std::enable_if_t< is_ext_vector_v< T > > >
 
struct  sycl::_V1::detail::get_elem_type< T >
 
struct  sycl::_V1::detail::change_base_type< T, B >
 
struct  sycl::_V1::detail::change_base_type< vec< T, N >, B >
 
struct  sycl::_V1::detail::copy_cv_qualifiers_impl< T, R >
 
struct  sycl::_V1::detail::copy_cv_qualifiers_impl< const T, R >
 
struct  sycl::_V1::detail::copy_cv_qualifiers_impl< volatile T, R >
 
struct  sycl::_V1::detail::copy_cv_qualifiers_impl< const volatile T, R >
 
struct  sycl::_V1::detail::copy_cv_qualifiers< T, R >
 
struct  sycl::_V1::detail::make_signed< T >
 
struct  sycl::_V1::detail::make_signed< const T >
 
struct  sycl::_V1::detail::make_signed< vec< T, N > >
 
struct  sycl::_V1::detail::make_signed< SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes... > >
 
struct  sycl::_V1::detail::make_signed< marray< T, N > >
 
struct  sycl::_V1::detail::make_unsigned< T >
 
struct  sycl::_V1::detail::make_unsigned< const T >
 
struct  sycl::_V1::detail::make_unsigned< vec< T, N > >
 
struct  sycl::_V1::detail::make_unsigned< SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes... > >
 
struct  sycl::_V1::detail::make_unsigned< marray< T, N > >
 
struct  sycl::_V1::detail::is_vec< typename >
 
struct  sycl::_V1::detail::is_vec< sycl::vec< T, N > >
 
struct  sycl::_V1::detail::get_vec_size< typename >
 
struct  sycl::_V1::detail::get_vec_size< sycl::vec< T, N > >
 
struct  sycl::_V1::detail::is_swizzle< typename >
 
struct  sycl::_V1::detail::is_swizzle< SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes... > >
 
struct  sycl::_V1::detail::is_marray< typename >
 
struct  sycl::_V1::detail::is_marray< sycl::marray< T, N > >
 
struct  sycl::_V1::detail::is_integral< T >
 
struct  sycl::_V1::detail::is_floating_point_impl< T >
 
struct  sycl::_V1::detail::is_floating_point_impl< half >
 
struct  sycl::_V1::detail::is_floating_point< T >
 
struct  sycl::_V1::detail::is_arithmetic< T >
 
struct  sycl::_V1::detail::is_scalar_arithmetic< T >
 
struct  sycl::_V1::detail::is_nonscalar_arithmetic< T >
 
struct  sycl::_V1::detail::is_scalar_bool< T >
 
struct  sycl::_V1::detail::is_vector_bool< T >
 
struct  sycl::_V1::detail::is_bool< T >
 
struct  sycl::_V1::detail::is_boolean< T >
 
struct  sycl::_V1::detail::is_boolean< Boolean< N > >
 
struct  sycl::_V1::detail::is_pointer_impl< T >
 
struct  sycl::_V1::detail::is_pointer_impl< T * >
 
struct  sycl::_V1::detail::is_pointer_impl< multi_ptr< T, Space, DecorateAddress > >
 
struct  sycl::_V1::detail::is_pointer< T >
 
struct  sycl::_V1::detail::is_multi_ptr< T >
 
struct  sycl::_V1::detail::is_multi_ptr< multi_ptr< ElementType, Space, IsDecorated > >
 
struct  sycl::_V1::detail::is_non_legacy_multi_ptr< T >
 
struct  sycl::_V1::detail::is_non_legacy_multi_ptr< multi_ptr< ElementType, Space, access::decorated::yes > >
 
struct  sycl::_V1::detail::is_non_legacy_multi_ptr< multi_ptr< ElementType, Space, access::decorated::no > >
 
struct  sycl::_V1::detail::is_legacy_multi_ptr< T >
 
struct  sycl::_V1::detail::is_legacy_multi_ptr< multi_ptr< ElementType, Space, access::decorated::legacy > >
 
struct  sycl::_V1::detail::remove_pointer_impl< T >
 
struct  sycl::_V1::detail::remove_pointer_impl< T * >
 
struct  sycl::_V1::detail::remove_pointer_impl< multi_ptr< T, Space, DecorateAddress > >
 
struct  sycl::_V1::detail::remove_pointer< T >
 
struct  sycl::_V1::detail::is_address_space_compliant_impl< T, SpaceList >
 
struct  sycl::_V1::detail::is_address_space_compliant_impl< T *, SpaceList >
 
struct  sycl::_V1::detail::is_address_space_compliant_impl< multi_ptr< T, Space, DecorateAddress >, SpaceList >
 
struct  sycl::_V1::detail::is_address_space_compliant< T, SpaceList >
 
struct  sycl::_V1::detail::make_type_impl< T, TL >
 
struct  sycl::_V1::detail::make_type_impl< vec< T, N >, TL >
 
struct  sycl::_V1::detail::make_larger_impl< T, std::enable_if_t< is_contained< T, gtl::scalar_floating_list >::value, T > >
 
struct  sycl::_V1::detail::make_larger_impl< T, std::enable_if_t< is_contained< T, gtl::scalar_signed_integer_list >::value, T > >
 
struct  sycl::_V1::detail::make_larger_impl< T, std::enable_if_t< is_contained< T, gtl::scalar_unsigned_integer_list >::value, T > >
 
struct  sycl::_V1::detail::make_larger_impl< vec< T, N >, vec< T, N > >
 
struct  sycl::_V1::detail::make_larger_impl< marray< T, N >, marray< T, N > >
 
struct  sycl::_V1::detail::make_larger< T >
 
struct  sycl::_V1::detail::function_traits< T >
 
struct  sycl::_V1::detail::function_traits< Ret(Args...)>
 
struct  sycl::_V1::detail::first_type< T, Ts >
 
struct  sycl::_V1::detail::map_type<... >
 
struct  sycl::_V1::detail::map_type< T, From, To, Rest... >
 

Namespaces

 sycl
 
 sycl::_V1
 
 sycl::_V1::detail
 
 sycl::_V1::ext
 
 sycl::_V1::ext::oneapi
 
 sycl::_V1::ext::oneapi::experimental
 
 sycl::_V1::ext::oneapi::experimental::detail
 
 sycl::_V1::detail::half_impl
 

Typedefs

using sycl::_V1::detail::uuid_type = std::array< unsigned char, 16 >
 
template<typename T , typename R >
using sycl::_V1::detail::copy_cv_qualifiers_t = typename copy_cv_qualifiers< T, R >::type
 
template<int V>
using sycl::_V1::detail::int_constant = std::integral_constant< int, V >
 
template<typename T >
using sycl::_V1::detail::vector_element_impl_t = typename vector_element_impl< T >::type
 
template<class T >
using sycl::_V1::detail::vector_element_t = typename vector_element< T >::type
 
template<class T >
using sycl::_V1::detail::marray_element_t = typename T::value_type
 
template<typename T >
using sycl::_V1::detail::get_elem_type_t = typename get_elem_type< T >::type
 
template<typename T , typename B >
using sycl::_V1::detail::change_base_type_t = typename change_base_type< T, B >::type
 
template<typename T >
using sycl::_V1::detail::make_signed_t = typename make_signed< T >::type
 
template<typename T >
using sycl::_V1::detail::make_unsigned_t = typename make_unsigned< T >::type
 
template<typename T >
using sycl::_V1::detail::remove_pointer_t = typename remove_pointer< T >::type
 
template<typename T , typename TL >
using sycl::_V1::detail::make_type_t = typename make_type_impl< T, TL >::type
 
template<typename T >
using sycl::_V1::detail::make_larger_t = typename make_larger< T >::type
 
template<access::address_space AS, class DataT >
using sycl::_V1::detail::const_if_const_AS = DataT
 

Functions

template<typename T , typename... Ts>
constexpr bool sycl::_V1::detail::CheckTypeIn ()
 

Variables

template<class T >
constexpr bool sycl::_V1::detail::is_fixed_size_group_v = is_fixed_size_group<T>::value
 
template<class T >
constexpr bool sycl::_V1::ext::oneapi::experimental::is_fixed_topology_group_v
 
template<class T >
constexpr bool sycl::_V1::ext::oneapi::experimental::is_user_constructed_group_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_generic_group_v = is_generic_group<T>::value
 
template<class T >
constexpr bool sycl::_V1::is_group_v = is_group<T>::value
 
template<class T >
constexpr bool sycl::_V1::ext::oneapi::experimental::is_group_helper_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_ext_vector_v = is_ext_vector<T>::value
 
template<typename T , int N, template< typename > class S>
constexpr bool sycl::_V1::detail::is_gen_based_on_type_sizeof_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_vec_v = is_vec<T>::value
 
template<typename T >
constexpr bool sycl::_V1::detail::is_swizzle_v = is_swizzle<T>::value
 
template<typename T >
constexpr bool sycl::_V1::detail::is_vec_or_swizzle_v = is_vec_v<T> || is_swizzle_v<T>
 
template<typename T >
constexpr bool sycl::_V1::detail::is_marray_v = is_marray<T>::value
 
template<typename T >
constexpr bool sycl::_V1::detail::is_scalar_arithmetic_v = is_scalar_arithmetic<T>::value
 
template<typename T >
constexpr bool sycl::_V1::detail::is_boolean_v = is_boolean<T>::value
 
template<typename T >
constexpr bool sycl::_V1::detail::is_pointer_v = is_pointer<T>::value
 
template<class T >
constexpr bool sycl::_V1::detail::is_multi_ptr_v = is_multi_ptr<T>::value
 
template<class T >
constexpr bool sycl::_V1::detail::is_non_legacy_multi_ptr_v
 
template<class T >
constexpr bool sycl::_V1::detail::is_legacy_multi_ptr_v = is_legacy_multi_ptr<T>::value
 
template<typename T , typename SpaceList >
constexpr bool sycl::_V1::detail::is_address_space_compliant_v
 
template<typename T0 , typename... Ts>
constexpr bool sycl::_V1::detail::all_same_v = (... && std::is_same_v<T0, Ts>)
 
template<typename... Ts>
constexpr bool sycl::_V1::detail::check_type_in_v = CheckTypeIn<Ts...>()