35 #ifndef _BLAZE_MATH_TRAITS_SUBVECTORTRAIT_H_ 36 #define _BLAZE_MATH_TRAITS_SUBVECTORTRAIT_H_ 59 template<
typename,
size_t... >
struct SubvectorTrait;
60 template<
typename,
size_t,
size_t,
typename =
void >
struct SubvectorTraitEval1;
61 template<
typename,
size_t,
size_t,
typename =
void >
struct SubvectorTraitEval2;
68 template<
size_t I,
size_t N,
typename T >
69 auto evalSubvectorTrait( T& )
70 ->
typename SubvectorTraitEval1<T,I,N>::Type;
72 template<
typename T >
73 auto evalSubvectorTrait( T& )
74 ->
typename SubvectorTraitEval1<T,inf,inf>::Type;
76 template<
size_t I,
size_t N,
typename T >
77 auto evalSubvectorTrait(
const T& )
78 ->
typename SubvectorTrait<T,I,N>::Type;
80 template<
typename T >
81 auto evalSubvectorTrait(
const T& )
82 ->
typename SubvectorTrait<T>::Type;
84 template<
size_t I,
size_t N,
typename T >
85 auto evalSubvectorTrait(
const volatile T& )
86 ->
typename SubvectorTrait<T,I,N>::Type;
88 template<
typename T >
89 auto evalSubvectorTrait(
const volatile T& )
90 ->
typename SubvectorTrait<T>::Type;
142 template<
typename VT
149 using Type = decltype( evalSubvectorTrait<CSAs...>( std::declval<VT&>() ) );
169 template<
typename VT
180 template<
typename VT
184 struct SubvectorTraitEval1
188 using Type =
typename SubvectorTraitEval2<VT,I,N>::Type;
200 template<
typename VT
204 struct SubvectorTraitEval2
208 using Type = INVALID_TYPE;
Header file for basic type definitions.
Base template for the SubvectorTrait class.
Definition: SubvectorTrait.h:144
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
Numerical infinity for built-in data types.
typename SubvectorTrait< VT, CSAs... >::Type SubvectorTrait_t
Auxiliary alias declaration for the SubvectorTrait type trait.The SubvectorTrait_t alias declaration ...
Definition: SubvectorTrait.h:171
Utility type for generic codes.