SameType.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_UTIL_CONSTRAINTS_SAMETYPE_H_
36 #define _BLAZE_UTIL_CONSTRAINTS_SAMETYPE_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
44 
45 
46 namespace blaze {
47 
48 //=================================================================================================
49 //
50 // MUST_BE_SAME_TYPE CONSTRAINT
51 //
52 //=================================================================================================
53 
54 //*************************************************************************************************
71 #define BLAZE_CONSTRAINT_MUST_BE_SAME_TYPE(A,B) \
72  static_assert( ::blaze::IsSame<A,B>::value, "Non-matching types detected" )
73 //*************************************************************************************************
74 
75 
76 
77 
78 //=================================================================================================
79 //
80 // MUST_NOT_BE_SAME_TYPE CONSTRAINT
81 //
82 //=================================================================================================
83 
84 //*************************************************************************************************
102 #define BLAZE_CONSTRAINT_MUST_NOT_BE_SAME_TYPE(A,B) \
103  static_assert( !::blaze::IsSame<A,B>::value, "Matching types detected" )
104 //*************************************************************************************************
105 
106 
107 
108 
109 //=================================================================================================
110 //
111 // MUST_BE_STRICTLY_SAME_TYPE CONSTRAINT
112 //
113 //=================================================================================================
114 
115 //*************************************************************************************************
131 #define BLAZE_CONSTRAINT_MUST_BE_STRICTLY_SAME_TYPE(A,B) \
132  static_assert( ::blaze::IsStrictlySame<A,B>::value, "Non-matching types detected" )
133 //*************************************************************************************************
134 
135 
136 
137 
138 //=================================================================================================
139 //
140 // MUST_NOT_BE_STRICTLY_SAME_TYPE CONSTRAINT
141 //
142 //=================================================================================================
143 
144 //*************************************************************************************************
160 #define BLAZE_CONSTRAINT_MUST_NOT_BE_STRICTLY_SAME_TYPE(A,B) \
161  static_assert( !::blaze::IsStrictlySame<A,B>::value, "Matching types detected" )
162 //*************************************************************************************************
163 
164 } // namespace blaze
165 
166 #endif
Header file for the IsSame and IsStrictlySame type traits.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58