35 #ifndef _BLAZE_MATH_TYPETRAITS_UNDERLYINGBUILTIN_H_ 36 #define _BLAZE_MATH_TYPETRAITS_UNDERLYINGBUILTIN_H_ 57 template<
typename,
typename =
void >
struct UnderlyingBuiltinHelper1;
58 template<
typename,
typename =
void >
struct UnderlyingBuiltinHelper2;
89 template<
typename T >
95 using Type =
typename UnderlyingBuiltinHelper1< RemoveCV_t<T> >::Type;
115 template<
typename T >
125 template<
typename T,
typename >
126 struct UnderlyingBuiltinHelper1
128 using Type =
typename UnderlyingBuiltinHelper2<T>::Type;
131 template<
typename T >
132 struct UnderlyingBuiltinHelper1< T,
Void_t< typename T::ElementType > >
134 using Type =
typename UnderlyingBuiltinHelper1< typename T::ElementType >::Type;
145 template<
typename T,
typename >
146 struct UnderlyingBuiltinHelper2
151 template<
typename T >
152 struct UnderlyingBuiltinHelper2< T,
Void_t< typename T::value_type > >
154 using Type =
typename UnderlyingBuiltinHelper1< typename T::value_type >::Type;
Header file for the Void type trait.
Header file for the RemoveCV type trait.
void Void_t
Compile time type check.This type trait maps an arbitrary sequence of types to the type void....
Definition: Void.h:64
Evaluation of the underlying builtin element type of a given data type.This type trait evaluates the ...
Definition: UnderlyingBuiltin.h:90
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
typename UnderlyingBuiltin< T >::Type UnderlyingBuiltin_t
Auxiliary alias declaration for the UnderlyingBuiltin type trait.The UnderlyingBuiltin_t alias declar...
Definition: UnderlyingBuiltin.h:116