Blaze  3.6
Constructible.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_UTIL_CONSTRAINTS_CONSTRUCTIBLE_H_
36 #define _BLAZE_UTIL_CONSTRAINTS_CONSTRUCTIBLE_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
44 
45 
46 namespace blaze {
47 
48 //=================================================================================================
49 //
50 // MUST_BE_DEFAULT_CONSTRUCTIBLE_TYPE CONSTRAINT
51 //
52 //=================================================================================================
53 
54 //*************************************************************************************************
61 #define BLAZE_CONSTRAINT_MUST_BE_DEFAULT_CONSTRUCTIBLE_TYPE(T) \
62  static_assert( ::blaze::IsDefaultConstructible_v<T>, "Non-default constructible type detected" )
63 //*************************************************************************************************
64 
65 
66 
67 
68 //=================================================================================================
69 //
70 // MUST_NOT_BE_DEFAULT_CONSTRUCTIBLE_TYPE CONSTRAINT
71 //
72 //=================================================================================================
73 
74 //*************************************************************************************************
81 #define BLAZE_CONSTRAINT_MUST_NOT_BE_DEFAULT_CONSTRUCTIBLE_TYPE(T) \
82  static_assert( !::blaze::IsDefaultConstructible_v<T>, "Default constructible type detected" )
83 //*************************************************************************************************
84 
85 
86 
87 
88 //=================================================================================================
89 //
90 // MUST_BE_NOTHROW_DEFAULT_CONSTRUCTIBLE_TYPE CONSTRAINT
91 //
92 //=================================================================================================
93 
94 //*************************************************************************************************
101 #define BLAZE_CONSTRAINT_MUST_BE_NOTHROW_DEFAULT_CONSTRUCTIBLE_TYPE(T) \
102  static_assert( ::blaze::IsNothrowDefaultConstructible_v<T>, "Non-noexcept default constructible type detected" )
103 //*************************************************************************************************
104 
105 
106 
107 
108 //=================================================================================================
109 //
110 // MUST_NOT_BE_NOTHROW_DEFAULT_CONSTRUCTIBLE_TYPE CONSTRAINT
111 //
112 //=================================================================================================
113 
114 //*************************************************************************************************
121 #define BLAZE_CONSTRAINT_MUST_NOT_BE_NOTHROW_DEFAULT_CONSTRUCTIBLE_TYPE(T) \
122  static_assert( !::blaze::IsNothrowDefaultConstructible_v<T>, "Noexcept default constructible type detected" )
123 //*************************************************************************************************
124 
125 
126 
127 
128 //=================================================================================================
129 //
130 // MUST_BE_COPY_CONSTRUCTIBLE_TYPE CONSTRAINT
131 //
132 //=================================================================================================
133 
134 //*************************************************************************************************
141 #define BLAZE_CONSTRAINT_MUST_BE_COPY_CONSTRUCTIBLE_TYPE(T) \
142  static_assert( ::blaze::IsCopyConstructible_v<T>, "Non-copy constructible type detected" )
143 //*************************************************************************************************
144 
145 
146 
147 
148 //=================================================================================================
149 //
150 // MUST_NOT_BE_COPY_CONSTRUCTIBLE_TYPE CONSTRAINT
151 //
152 //=================================================================================================
153 
154 //*************************************************************************************************
161 #define BLAZE_CONSTRAINT_MUST_NOT_BE_COPY_CONSTRUCTIBLE_TYPE(T) \
162  static_assert( !::blaze::IsCopyConstructible_v<T>, "Copy constructible type detected" )
163 //*************************************************************************************************
164 
165 
166 
167 
168 //=================================================================================================
169 //
170 // MUST_BE_NOTHROW_COPY_CONSTRUCTIBLE_TYPE CONSTRAINT
171 //
172 //=================================================================================================
173 
174 //*************************************************************************************************
181 #define BLAZE_CONSTRAINT_MUST_BE_NOTHROW_COPY_CONSTRUCTIBLE_TYPE(T) \
182  static_assert( ::blaze::IsNothrowCopyConstructible_v<T>, "Non-noexcept copy constructible type detected" )
183 //*************************************************************************************************
184 
185 
186 
187 
188 //=================================================================================================
189 //
190 // MUST_NOT_BE_NOTHROW_COPY_CONSTRUCTIBLE_TYPE CONSTRAINT
191 //
192 //=================================================================================================
193 
194 //*************************************************************************************************
201 #define BLAZE_CONSTRAINT_MUST_NOT_BE_NOTHROW_COPY_CONSTRUCTIBLE_TYPE(T) \
202  static_assert( !::blaze::IsNothrowCopyConstructible_v<T>, "Noexcept copy constructible type detected" )
203 //*************************************************************************************************
204 
205 
206 
207 
208 //=================================================================================================
209 //
210 // MUST_BE_MOVE_CONSTRUCTIBLE_TYPE CONSTRAINT
211 //
212 //=================================================================================================
213 
214 //*************************************************************************************************
221 #define BLAZE_CONSTRAINT_MUST_BE_MOVE_CONSTRUCTIBLE_TYPE(T) \
222  static_assert( ::blaze::IsMoveConstructible_v<T>, "Non-move constructible type detected" )
223 //*************************************************************************************************
224 
225 
226 
227 
228 //=================================================================================================
229 //
230 // MUST_NOT_BE_MOVE_CONSTRUCTIBLE_TYPE CONSTRAINT
231 //
232 //=================================================================================================
233 
234 //*************************************************************************************************
241 #define BLAZE_CONSTRAINT_MUST_NOT_BE_MOVE_CONSTRUCTIBLE_TYPE(T) \
242  static_assert( !::blaze::IsMoveConstructible_v<T>, "Move constructible type detected" )
243 //*************************************************************************************************
244 
245 
246 
247 
248 //=================================================================================================
249 //
250 // MUST_BE_NOTHROW_MOVE_CONSTRUCTIBLE_TYPE CONSTRAINT
251 //
252 //=================================================================================================
253 
254 //*************************************************************************************************
261 #define BLAZE_CONSTRAINT_MUST_BE_NOTHROW_MOVE_CONSTRUCTIBLE_TYPE(T) \
262  static_assert( ::blaze::IsNothrowMoveConstructible_v<T>, "Non-noexcept move constructible type detected" )
263 //*************************************************************************************************
264 
265 
266 
267 
268 //=================================================================================================
269 //
270 // MUST_NOT_BE_NOTHROW_MOVE_CONSTRUCTIBLE_TYPE CONSTRAINT
271 //
272 //=================================================================================================
273 
274 //*************************************************************************************************
281 #define BLAZE_CONSTRAINT_MUST_NOT_BE_NOTHROW_MOVE_CONSTRUCTIBLE_TYPE(T) \
282  static_assert( !::blaze::IsNothrowMoveConstructible_v<T>, "Noexcept move constructible type detected" )
283 //*************************************************************************************************
284 
285 } // namespace blaze
286 
287 #endif
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
Header file for the IsConstructible type trait.