YieldsZero.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_TYPETRAITS_YIELDSZERO_H_
36 #define _BLAZE_MATH_TYPETRAITS_YIELDSZERO_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
43 #include <blaze/util/FalseType.h>
44 #include <blaze/util/TrueType.h>
45 
46 
47 namespace blaze {
48 
49 //=================================================================================================
50 //
51 // CLASS DEFINITION
52 //
53 //=================================================================================================
54 
55 //*************************************************************************************************
66 template< typename OP, typename T, typename... Ts >
67 struct YieldsZero
68  : public FalseType
69 {};
70 //*************************************************************************************************
71 
72 
73 //*************************************************************************************************
78 template< typename OP, typename T, typename... Ts >
79 struct YieldsZero< const OP, T, Ts... >
80  : public YieldsZero<OP,T,Ts...>
81 {};
83 //*************************************************************************************************
84 
85 
86 //*************************************************************************************************
91 template< typename OP, typename T, typename... Ts >
92 struct YieldsZero< volatile OP, T, Ts... >
93  : public YieldsZero<OP,T,Ts...>
94 {};
96 //*************************************************************************************************
97 
98 
99 //*************************************************************************************************
104 template< typename OP, typename T, typename... Ts >
105 struct YieldsZero< const volatile OP, T, Ts... >
106  : public YieldsZero<OP,T,Ts...>
107 {};
109 //*************************************************************************************************
110 
111 
112 //*************************************************************************************************
125 template< typename OP, typename T, typename... Ts >
126 constexpr bool YieldsZero_v = YieldsZero<OP,T,Ts...>::value;
127 //*************************************************************************************************
128 
129 } // namespace blaze
130 
131 #endif
Header file for the FalseType type/value trait base class.
Generic wrapper for a compile time constant integral value.The IntegralConstant class template repres...
Definition: IntegralConstant.h:71
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
Compile time check for operations on vectors and matrices.This type trait tests whether or not the gi...
Definition: YieldsZero.h:67
constexpr bool YieldsZero_v
Auxiliary variable template for the YieldsZero type trait.The YieldsZero_v variable template provides...
Definition: YieldsZero.h:126
Header file for the TrueType type/value trait base class.