35 #ifndef _BLAZE_UTIL_CONSTRAINTS_SIZE_H_
36 #define _BLAZE_UTIL_CONSTRAINTS_SIZE_H_
66 template<
bool >
struct CONSTRAINT_MUST_HAVE_SIZE_FAILED;
67 template<>
struct CONSTRAINT_MUST_HAVE_SIZE_FAILED<true> {
enum { value = 1 }; };
78 #define BLAZE_CONSTRAINT_MUST_HAVE_SIZE(T,S) \
80 ::blaze::CONSTRAINT_TEST< \
81 ::blaze::CONSTRAINT_MUST_HAVE_SIZE_FAILED< ::blaze::HasSize<T,S>::value >::value > \
82 BLAZE_JOIN( CONSTRAINT_MUST_HAVE_SIZE_TYPEDEF, __LINE__ )
104 template<
bool >
struct CONSTRAINT_MUST_NOT_HAVE_SIZE_FAILED;
105 template<>
struct CONSTRAINT_MUST_NOT_HAVE_SIZE_FAILED<true> {
enum { value = 1 }; };
116 #define BLAZE_CONSTRAINT_MUST_NOT_HAVE_SIZE(T,S) \
118 ::blaze::CONSTRAINT_TEST< \
119 ::blaze::CONSTRAINT_MUST_NOT_HAVE_SIZE_FAILED< !::blaze::HasSize<T,S>::value >::value > \
120 BLAZE_JOIN( CONSTRAINT_MUST_NOT_HAVE_SIZE_TYPEDEF, __LINE__ )
142 template<
bool >
struct CONSTRAINT_MUST_HAVE_1_BYTE_FAILED;
143 template<>
struct CONSTRAINT_MUST_HAVE_1_BYTE_FAILED<true> {
enum { value = 1 }; };
154 #define BLAZE_CONSTRAINT_MUST_HAVE_1_BYTE(T) \
156 ::blaze::CONSTRAINT_TEST< \
157 ::blaze::CONSTRAINT_MUST_HAVE_1_BYTE_FAILED< ::blaze::Has1Byte<T>::value >::value > \
158 BLAZE_JOIN( CONSTRAINT_MUST_HAVE_1_BYTE_TYPEDEF, __LINE__ )
180 template<
bool >
struct CONSTRAINT_MUST_NOT_HAVE_1_BYTE_FAILED;
181 template<>
struct CONSTRAINT_MUST_NOT_HAVE_1_BYTE_FAILED<true> {
enum { value = 1 }; };
192 #define BLAZE_CONSTRAINT_MUST_NOT_HAVE_1_BYTE(T) \
194 ::blaze::CONSTRAINT_TEST< \
195 ::blaze::CONSTRAINT_MUST_NOT_HAVE_1_BYTE_FAILED< !::blaze::Has1Byte<T>::value >::value > \
196 BLAZE_JOIN( CONSTRAINT_MUST_NOT_HAVE_1_BYTE_TYPEDEF, __LINE__ )
218 template<
bool >
struct CONSTRAINT_MUST_HAVE_2_BYTES_FAILED;
219 template<>
struct CONSTRAINT_MUST_HAVE_2_BYTES_FAILED<true> {
enum { value = 1 }; };
230 #define BLAZE_CONSTRAINT_MUST_HAVE_2_BYTES(T) \
232 ::blaze::CONSTRAINT_TEST< \
233 ::blaze::CONSTRAINT_MUST_HAVE_2_BYTES_FAILED< ::blaze::Has2Bytes<T>::value >::value > \
234 BLAZE_JOIN( CONSTRAINT_MUST_HAVE_2_BYTES_TYPEDEF, __LINE__ )
256 template<
bool >
struct CONSTRAINT_MUST_NOT_HAVE_2_BYTES_FAILED;
257 template<>
struct CONSTRAINT_MUST_NOT_HAVE_2_BYTES_FAILED<true> {
enum { value = 1 }; };
268 #define BLAZE_CONSTRAINT_MUST_NOT_HAVE_2_BYTES(T) \
270 ::blaze::CONSTRAINT_TEST< \
271 ::blaze::CONSTRAINT_MUST_NOT_HAVE_2_BYTES_FAILED< !::blaze::Has2Bytes<T>::value >::value > \
272 BLAZE_JOIN( CONSTRAINT_MUST_NOT_HAVE_2_BYTES_TYPEDEF, __LINE__ )
294 template<
bool >
struct CONSTRAINT_MUST_HAVE_4_BYTES_FAILED;
295 template<>
struct CONSTRAINT_MUST_HAVE_4_BYTES_FAILED<true> {
enum { value = 1 }; };
306 #define BLAZE_CONSTRAINT_MUST_HAVE_4_BYTES(T) \
308 ::blaze::CONSTRAINT_TEST< \
309 ::blaze::CONSTRAINT_MUST_HAVE_4_BYTES_FAILED< ::blaze::Has4Bytes<T>::value >::value > \
310 BLAZE_JOIN( CONSTRAINT_MUST_HAVE_4_BYTES_TYPEDEF, __LINE__ )
332 template<
bool >
struct CONSTRAINT_MUST_NOT_HAVE_4_BYTES_FAILED;
333 template<>
struct CONSTRAINT_MUST_NOT_HAVE_4_BYTES_FAILED<true> {
enum { value = 1 }; };
344 #define BLAZE_CONSTRAINT_MUST_NOT_HAVE_4_BYTES(T) \
346 ::blaze::CONSTRAINT_TEST< \
347 ::blaze::CONSTRAINT_MUST_NOT_HAVE_4_BYTES_FAILED< !::blaze::Has4Bytes<T>::value >::value > \
348 BLAZE_JOIN( CONSTRAINT_MUST_NOT_HAVE_4_BYTES_TYPEDEF, __LINE__ )
370 template<
bool >
struct CONSTRAINT_MUST_HAVE_8_BYTES_FAILED;
371 template<>
struct CONSTRAINT_MUST_HAVE_8_BYTES_FAILED<true> {
enum { value = 1 }; };
382 #define BLAZE_CONSTRAINT_MUST_HAVE_8_BYTES(T) \
384 ::blaze::CONSTRAINT_TEST< \
385 ::blaze::CONSTRAINT_MUST_HAVE_8_BYTES_FAILED< ::blaze::Has8Bytes<T>::value >::value > \
386 BLAZE_JOIN( CONSTRAINT_MUST_HAVE_8_BYTES_TYPEDEF, __LINE__ )
408 template<
bool >
struct CONSTRAINT_MUST_NOT_HAVE_8_BYTES_FAILED;
409 template<>
struct CONSTRAINT_MUST_NOT_HAVE_8_BYTES_FAILED<true> {
enum { value = 1 }; };
420 #define BLAZE_CONSTRAINT_MUST_NOT_HAVE_8_BYTES(T) \
422 ::blaze::CONSTRAINT_TEST< \
423 ::blaze::CONSTRAINT_MUST_NOT_HAVE_8_BYTES_FAILED< !::blaze::Has8Bytes<T>::value >::value > \
424 BLAZE_JOIN( CONSTRAINT_MUST_NOT_HAVE_8_BYTES_TYPEDEF, __LINE__ )
Header file for the HasSize type trait.
Constraint wrapper class.
Header file for compile time constraints.