35 #ifndef _BLAZE_MATH_TYPETRAITS_ARESIMDCOMBINABLE_H_
36 #define _BLAZE_MATH_TYPETRAITS_ARESIMDCOMBINABLE_H_
65 struct AreSIMDCombinableHelper
67 enum :
bool { value = AreSIMDCombinableHelper<T1,T2>::value &&
68 AreSIMDCombinableHelper<T2,Args...>::value };
76 template<
typename T >
78 struct AreSIMDCombinableHelper<T,T>
80 enum :
bool { value = IsNumeric<T>::value };
88 template<
typename T1,
typename T2 >
90 struct AreSIMDCombinableHelper<T1,T2>
92 enum :
bool { value = IsNumeric<T1>::value && IsIntegral<T1>::value &&
93 IsNumeric<T2>::value && IsIntegral<T2>::value &&
94 sizeof(T1) ==
sizeof(T2) };
120 template<
typename T1,
typename T2,
typename... Args >
122 :
public BoolConstant< AreSIMDCombinableHelper< T1, T2, Decay_<Args>... >::value >
Generic wrapper for a compile time constant integral value.The IntegralConstant class template repres...
Definition: IntegralConstant.h:71
Header file for the IsIntegral type trait.
Compile time check for data types.This type trait tests whether or not the given types can be combine...
Definition: AreSIMDCombinable.h:121
Header file for the Decay type trait.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
Header file for the IsNumeric type trait.
Header file for the IntegralConstant class template.