All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
And.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_UTIL_MPL_AND_H_
36 #define _BLAZE_UTIL_MPL_AND_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
43 #include <blaze/util/mpl/Bool.h>
44 #include <blaze/util/NullType.h>
45 
46 
47 namespace blaze {
48 
49 //=================================================================================================
50 //
51 // CLASS DEFINITION
52 //
53 //=================================================================================================
54 
55 //*************************************************************************************************
72 template< typename T1 // Type of the first operand
73  , typename T2 // Type of the second operand
74  , typename T3 = NullType // Type of the third operand
75  , typename T4 = NullType // Type of the fourth operand
76  , typename T5 = NullType // Type of the fifth operand
77  , typename T6 = NullType > // Type of the sixth operand
78 struct And
79  : public Bool< ( T1::value && T2::value && T3::value && T4::value && T5::value && T6::value ) >
80 {};
81 //*************************************************************************************************
82 
83 
84 //*************************************************************************************************
86 template< typename T1 // Type of the first operand
88  , typename T2 > // Type of the second operand
90  : public Bool< ( T1::value && T2::value ) >
91 {};
93 //*************************************************************************************************
94 
95 
96 //*************************************************************************************************
98 template< typename T1 // Type of the first operand
100  , typename T2 // Type of the second operand
101  , typename T3 > // Type of the third operand
102 struct And<T1,T2,T3,NullType,NullType,NullType>
103  : public Bool< ( T1::value && T2::value && T3::value ) >
104 {};
106 //*************************************************************************************************
107 
108 
109 //*************************************************************************************************
111 template< typename T1 // Type of the first operand
113  , typename T2 // Type of the second operand
114  , typename T3 // Type of the third operand
115  , typename T4 > // Type of the fourth operand
116 struct And<T1,T2,T3,T4,NullType,NullType>
117  : public Bool< ( T1::value && T2::value && T3::value && T4::value ) >
118 {};
120 //*************************************************************************************************
121 
122 
123 //*************************************************************************************************
125 template< typename T1 // Type of the first operand
127  , typename T2 // Type of the second operand
128  , typename T3 // Type of the third operand
129  , typename T4 // Type of the fourth operand
130  , typename T5 > // Type of the fifth operand
131 struct And<T1,T2,T3,T4,T5,NullType>
132  : public Bool< ( T1::value && T2::value && T3::value && T4::value && T5::value ) >
133 {};
135 //*************************************************************************************************
136 
137 } // namespace blaze
138 
139 #endif
Utility type for generic codes.
Compile time integral constant wrapper for bool.The Bool class template represents an integral wrappe...
Definition: Bool.h:63
Utility type for generic codes.The NullType class represents an invalid or terminating data type for ...
Definition: NullType.h:54
Compile time logical and evaluation.The And class template performs at compile time a logical and ('&&...
Definition: And.h:78
Header file for the Bool class template.