35 #ifndef _BLAZE_MATH_TRAITS_SCHURTRAIT_H_ 36 #define _BLAZE_MATH_TRAITS_SCHURTRAIT_H_ 60 template<
typename,
typename,
typename =
void >
struct SchurTrait;
61 template<
typename,
typename,
typename =
void >
struct SchurTraitEval1;
62 template<
typename,
typename,
typename =
void >
struct SchurTraitEval2;
69 template<
typename T1,
typename T2 >
70 auto evalSchurTrait( T1&, T2& )
71 ->
typename SchurTraitEval1<T1,T2>::Type;
73 template<
typename T1,
typename T2 >
74 auto evalSchurTrait(
const T1&,
const T2& )
75 ->
typename SchurTrait<T1,T2>::Type;
77 template<
typename T1,
typename T2 >
78 auto evalSchurTrait(
const volatile T1&,
const T2& )
79 ->
typename SchurTrait<T1,T2>::Type;
81 template<
typename T1,
typename T2 >
82 auto evalSchurTrait(
const T1&,
const volatile T2& )
83 ->
typename SchurTrait<T1,T2>::Type;
85 template<
typename T1,
typename T2 >
86 auto evalSchurTrait(
const volatile T1&,
const volatile T2& )
87 ->
typename SchurTrait<T1,T2>::Type;
135 template<
typename T1
143 using Type = decltype( evalSchurTrait( std::declval<T1&>(), std::declval<T2&>() ) );
163 template<
typename T1,
typename T2 >
173 template<
typename T1
176 struct SchurTraitEval1
180 using Type =
typename SchurTraitEval2<T1,T2>::Type;
192 template<
typename T1
195 struct SchurTraitEval2
199 using Type = INVALID_TYPE;
Base template for the SchurTrait class.
Definition: SchurTrait.h:138
Header file for the Decay type trait.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
Header file for the If class template.
Header file for the EnableIf class template.
Utility type for generic codes.
typename SchurTrait< T1, T2 >::Type SchurTrait_t
Auxiliary alias declaration for the SchurTrait class template.The SchurTrait_t alias declaration prov...
Definition: SchurTrait.h:164