35 #ifndef _BLAZE_MATH_TRAITS_BANDTRAIT_H_ 36 #define _BLAZE_MATH_TRAITS_BANDTRAIT_H_ 59 template<
typename, ptrdiff_t... >
struct BandTrait;
60 template<
typename, ptrdiff_t,
typename =
void >
struct BandTraitEval1;
61 template<
typename, ptrdiff_t,
typename =
void >
struct BandTraitEval2;
68 template< ptrdiff_t I,
typename T >
69 auto evalBandTrait( T& )
70 ->
typename BandTraitEval1<T,I>::Type;
72 template<
typename T >
73 auto evalBandTrait( T& )
74 ->
typename BandTraitEval2<T,inf>::Type;
76 template< ptrdiff_t I,
typename T >
77 auto evalBandTrait(
const T& )
78 ->
typename BandTrait<T,I>::Type;
80 template<
typename T >
81 auto evalBandTrait(
const T& )
82 ->
typename BandTrait<T>::Type;
84 template< ptrdiff_t I,
typename T >
85 auto evalBandTrait(
const volatile T& )
86 ->
typename BandTrait<T,I>::Type;
88 template<
typename T >
89 auto evalBandTrait(
const volatile T& )
90 ->
typename BandTrait<T>::Type;
141 template<
typename MT
142 , ptrdiff_t... CBAs >
148 using Type = decltype( evalBandTrait<CBAs...>( std::declval<MT&>() ) );
168 template<
typename MT
179 template<
typename MT
182 struct BandTraitEval1
184 using Type =
typename BandTraitEval2<MT,I>::Type;
195 template<
typename MT
198 struct BandTraitEval2
200 using Type = INVALID_TYPE;
Pointer difference type of the Blaze library.
Header file for basic type definitions.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
Numerical infinity for built-in data types.
Utility type for generic codes.
typename BandTrait< MT, CBAs... >::Type BandTrait_t
Auxiliary alias declaration for the BandTrait type trait.The BandTrait_t alias declaration provides a...
Definition: BandTrait.h:170
Base template for the BandTrait class.
Definition: BandTrait.h:143