DPC++ Runtime
Runtime libraries for oneAPI DPC++
generic_type_traits.hpp File Reference
#include <sycl/access/access.hpp>
#include <sycl/aliases.hpp>
#include <sycl/detail/generic_type_lists.hpp>
#include <sycl/detail/helpers.hpp>
#include <sycl/detail/type_list.hpp>
#include <sycl/detail/type_traits.hpp>
#include <sycl/half_type.hpp>
#include <sycl/multi_ptr.hpp>
#include <sycl/ext/oneapi/bfloat16.hpp>
#include <cstddef>
#include <cstdint>
#include <limits>
#include <type_traits>
Include dependency graph for generic_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::select_cl_scalar_complex_or_T< T, typename >
 
struct  sycl::_V1::detail::GetNumElements< T >
 
struct  sycl::_V1::detail::GetNumElements< typename sycl::vec< Type, NumElements > >
 
struct  sycl::_V1::detail::GetNumElements< typename sycl::detail::Boolean< N > >
 
class  sycl::_V1::detail::TryToGetElementType< T >
 

Namespaces

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

Typedefs

template<typename T >
using sycl::_V1::detail::is_geninteger = std::bool_constant< is_geninteger_v< T > >
 
template<typename T >
using sycl::_V1::detail::is_igeninteger = std::bool_constant< is_igeninteger_v< T > >
 
template<typename T >
using sycl::_V1::detail::is_ugeninteger = std::bool_constant< is_ugeninteger_v< T > >
 
template<typename T >
using sycl::_V1::detail::is_byte = typename std::is_same< T, std::byte >
 
template<typename T >
using sycl::_V1::detail::make_floating_point_t = make_type_t< T, gtl::scalar_floating_list >
 
template<typename T >
using sycl::_V1::detail::make_singed_integer_t = make_type_t< T, gtl::scalar_signed_integer_list >
 
template<typename T >
using sycl::_V1::detail::make_unsinged_integer_t = make_type_t< T, gtl::scalar_unsigned_integer_list >
 
template<int Size>
using sycl::_V1::detail::cl_unsigned = std::conditional_t< Size==1, opencl::cl_uchar, std::conditional_t< Size==2, opencl::cl_ushort, std::conditional_t< Size==4, opencl::cl_uint, opencl::cl_ulong > >>
 
template<typename T , typename T8 , typename T16 , typename T32 , typename T64 >
using sycl::_V1::detail::select_apply_cl_scalar_t = std::conditional_t< sizeof(T)==1, T8, std::conditional_t< sizeof(T)==2, T16, std::conditional_t< sizeof(T)==4, T32, T64 > >>
 
template<typename T >
using sycl::_V1::detail::select_cl_scalar_integral_signed_t = select_apply_cl_scalar_t< T, sycl::opencl::cl_char, sycl::opencl::cl_short, sycl::opencl::cl_int, sycl::opencl::cl_long >
 
template<typename T >
using sycl::_V1::detail::select_cl_scalar_integral_unsigned_t = select_apply_cl_scalar_t< T, sycl::opencl::cl_uchar, sycl::opencl::cl_ushort, sycl::opencl::cl_uint, sycl::opencl::cl_ulong >
 
template<typename T >
using sycl::_V1::detail::select_cl_scalar_complex_or_T_t = typename select_cl_scalar_complex_or_T< T >::type
 
template<typename T >
using sycl::_V1::detail::ConvertToOpenCLType_t = decltype(convertToOpenCLType(std::declval< T >()))
 

Functions

template<typename T >
auto sycl::_V1::detail::convertToOpenCLType (T &&x)
 
template<typename To , typename From >
auto sycl::_V1::detail::convertFromOpenCLTypeFor (From &&x)
 
template<typename T >
constexpr T sycl::_V1::detail::msbMask (T)
 
template<typename T >
constexpr bool sycl::_V1::detail::msbIsSet (const T x)
 
template<typename T >
static constexpr T sycl::_V1::detail::max_v ()
 
template<typename T >
static constexpr T sycl::_V1::detail::min_v ()
 

Variables

template<typename T >
constexpr bool sycl::_V1::detail::is_svgenfloatf_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_svgenfloatd_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_half_v = is_contained_v<T, gtl::scalar_half_list>
 
template<typename T >
constexpr bool sycl::_V1::detail::is_bfloat16_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_half_or_bf16_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_svgenfloath_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_genfloat_v = is_contained_v<T, gtl::floating_list>
 
template<typename T >
constexpr bool sycl::_V1::detail::is_sgenfloat_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_vgenfloat_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_svgenfloat_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_mgenfloat_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_gengeofloat_v = is_contained_v<T, gtl::geo_float_list>
 
template<typename T >
constexpr bool sycl::_V1::detail::is_gengeodouble_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_gengeomarrayfloat_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_gengeomarray_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_gengeohalf_v = is_contained_v<T, gtl::geo_half_list>
 
template<typename T >
constexpr bool sycl::_V1::detail::is_vgengeofloat_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_vgengeodouble_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_vgengeohalf_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_sgengeo_v = is_contained_v<T, gtl::scalar_geo_list>
 
template<typename T >
constexpr bool sycl::_V1::detail::is_vgengeo_v = is_contained_v<T, gtl::vector_geo_list>
 
template<typename T >
constexpr bool sycl::_V1::detail::is_gencrossfloat_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_gencrossdouble_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_gencrosshalf_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_gencross_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_gencrossmarray_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_ugenint_v = is_contained_v<T, gtl::unsigned_int_list>
 
template<typename T >
constexpr bool sycl::_V1::detail::is_intn_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_genint_v = is_contained_v<T, gtl::signed_int_list>
 
template<typename T >
constexpr bool sycl::_V1::detail::is_geninteger_v = is_contained_v<T, gtl::integer_list>
 
template<typename T >
constexpr bool sycl::_V1::detail::is_igeninteger_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_ugeninteger_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_sgeninteger_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_vgeninteger_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_sigeninteger_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_sugeninteger_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_vigeninteger_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_vugeninteger_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_genbool_v = is_contained_v<T, gtl::bool_list>
 
template<typename T >
constexpr bool sycl::_V1::detail::is_gentype_v = is_contained_v<T, gtl::basic_list>
 
template<typename T >
constexpr bool sycl::_V1::detail::is_vgentype_v = is_contained_v<T, gtl::vector_basic_list>
 
template<typename T >
constexpr bool sycl::_V1::detail::is_sgentype_v = is_contained_v<T, gtl::scalar_basic_list>
 
template<typename T >
constexpr bool sycl::_V1::detail::is_igeninteger8bit_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_igeninteger16bit_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_igeninteger32bit_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_igeninteger64bit_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_ugeninteger8bit_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_ugeninteger16bit_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_ugeninteger32bit_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_ugeninteger64bit_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_genintptr_v
 
template<typename T , access::address_space AddressSpace, access::decorated IsDecorated>
constexpr bool sycl::_V1::detail::is_genintptr_marray_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_genfloatptr_v
 
template<typename T , access::address_space AddressSpace, access::decorated IsDecorated>
constexpr bool sycl::_V1::detail::is_genfloatptr_marray_v
 
template<typename T >
constexpr bool sycl::_V1::detail::is_byte_v = is_byte<T>::value