35 #ifndef _BLAZE_MATH_TYPETRAITS_UNDERLYINGELEMENT_H_ 36 #define _BLAZE_MATH_TYPETRAITS_UNDERLYINGELEMENT_H_ 58 template<
typename,
typename =
void >
struct UnderlyingElementHelper1;
59 template<
typename,
typename =
void >
struct UnderlyingElementHelper2;
92 template<
typename T >
98 using Type =
typename UnderlyingElementHelper1< RemoveCV_t<T> >::Type;
118 template<
typename T >
128 template<
typename T,
typename >
129 struct UnderlyingElementHelper1
131 using Type =
typename UnderlyingElementHelper2<T>::Type;
134 template<
typename T >
135 struct UnderlyingElementHelper1< complex<T> >
140 template<
typename T >
141 struct UnderlyingElementHelper1< T,
Void_t< typename T::ElementType > >
143 using Type =
typename T::ElementType;
154 template<
typename T,
typename >
155 struct UnderlyingElementHelper2
160 template<
typename T >
161 struct UnderlyingElementHelper2< T,
Void_t< typename T::value_type > >
163 using Type =
typename T::value_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
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
Evaluation of the element type of a given data type.This type trait evaluates the underlying element ...
Definition: UnderlyingElement.h:93
typename UnderlyingElement< T >::Type UnderlyingElement_t
Auxiliary alias declaration for the UnderlyingElement type trait.The UnderlyingElement_t alias declar...
Definition: UnderlyingElement.h:119
Header file for the complex data type.