35 #ifndef _BLAZE_MATH_TRAITS_ELEMENTSTRAIT_H_ 36 #define _BLAZE_MATH_TRAITS_ELEMENTSTRAIT_H_ 58 template<
typename,
size_t >
struct ElementsTrait;
59 template<
typename,
size_t,
typename =
void >
struct ElementsTraitEval1;
60 template<
typename,
size_t,
typename =
void >
struct ElementsTraitEval2;
67 template<
size_t N,
typename T >
68 auto evalElementsTrait( T& )
69 ->
typename ElementsTraitEval1<T,N>::Type;
71 template<
size_t N,
typename T >
72 auto evalElementsTrait(
const T& )
73 ->
typename ElementsTrait<T,N>::Type;
75 template<
size_t N,
typename T >
76 auto evalElementsTrait(
const volatile T& )
77 ->
typename ElementsTrait<T,N>::Type;
128 template<
typename VT
135 using Type = decltype( evalElementsTrait<N>( std::declval<VT&>() ) );
155 template<
typename VT
166 template<
typename VT
169 struct ElementsTraitEval1
173 using Type =
typename ElementsTraitEval2<VT,N>::Type;
185 template<
typename VT
188 struct ElementsTraitEval2
192 using Type = INVALID_TYPE;
Header file for basic type definitions.
typename ElementsTrait< VT, N >::Type ElementsTrait_t
Auxiliary alias declaration for the ElementsTrait type trait.The ElementsTrait_t alias declaration pr...
Definition: ElementsTrait.h:157
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
Base template for the ElementsTrait class.
Definition: ElementsTrait.h:130
Utility type for generic codes.