35#ifndef _BLAZE_MATH_TYPETRAITS_UNDERLYINGELEMENT_H_
36#define _BLAZE_MATH_TYPETRAITS_UNDERLYINGELEMENT_H_
58template<
typename,
typename =
void >
struct UnderlyingElementHelper1;
59template<
typename,
typename =
void >
struct UnderlyingElementHelper2;
98 using Type =
typename UnderlyingElementHelper1< RemoveCV_t<T> >::Type;
118template<
typename T >
128template<
typename T,
typename >
129struct UnderlyingElementHelper1
131 using Type =
typename UnderlyingElementHelper2<T>::Type;
134template<
typename T >
135struct UnderlyingElementHelper1<
complex<T> >
140template<
typename T >
141struct UnderlyingElementHelper1< T,
Void_t< typename T::ElementType > >
143 using Type =
typename T::ElementType;
154template<
typename T,
typename >
155struct UnderlyingElementHelper2
160template<
typename T >
161struct UnderlyingElementHelper2< T,
Void_t< typename T::value_type > >
163 using Type =
typename T::value_type;
Header file for the complex data type.
Header file for the RemoveCV type trait.
Complex data type of the Blaze library.
typename UnderlyingElement< T >::Type UnderlyingElement_t
Auxiliary alias declaration for the UnderlyingElement type trait.
Definition: UnderlyingElement.h:119
void Void_t
Compile time type check.
Definition: Void.h:64
Evaluation of the element type of a given data type.
Definition: UnderlyingElement.h:94
Header file for the Void type trait.