35#ifndef _BLAZE_MATH_TYPETRAITS_UNDERLYINGSCALAR_H_
36#define _BLAZE_MATH_TYPETRAITS_UNDERLYINGSCALAR_H_
58template<
typename,
typename =
void >
struct UnderlyingScalarHelper;
95 using Type =
typename UnderlyingScalarHelper< RemoveCV_t<T> >::Type;
115template<
typename T >
125template<
typename T,
typename >
126struct UnderlyingScalarHelper
131template<
typename T >
132struct UnderlyingScalarHelper< T,
EnableIf_t< !
IsSame_v< T, typename T::ElementType > > >
134 using Type =
typename UnderlyingScalarHelper< typename T::ElementType >::Type;
Header file for the EnableIf class template.
Header file for the IsSame and IsStrictlySame type traits.
Header file for the RemoveCV type trait.
typename UnderlyingScalar< T >::Type UnderlyingScalar_t
Auxiliary alias declaration for the UnderlyingScalar type trait.
Definition: UnderlyingScalar.h:116
constexpr bool IsSame_v
Auxiliary variable template for the IsSame type trait.
Definition: IsSame.h:159
typename EnableIf< Condition, T >::Type EnableIf_t
Auxiliary type for the EnableIf class template.
Definition: EnableIf.h:138
Evaluation of the underlying scalar element type of a given data type.
Definition: UnderlyingScalar.h:91