22 #ifndef _BLAZE_UTIL_CONSTRAINTS_SIZE_H_
23 #define _BLAZE_UTIL_CONSTRAINTS_SIZE_H_
53 template<
bool >
struct CONSTRAINT_MUST_HAVE_SIZE_FAILED;
54 template<>
struct CONSTRAINT_MUST_HAVE_SIZE_FAILED<true> {
enum { value = 1 }; };
65 #define BLAZE_CONSTRAINT_MUST_HAVE_SIZE(T,S) \
67 ::blaze::CONSTRAINT_TEST< \
68 ::blaze::CONSTRAINT_MUST_HAVE_SIZE_FAILED< ::blaze::HasSize<T,S>::value >::value > \
69 BLAZE_JOIN( CONSTRAINT_MUST_HAVE_SIZE_TYPEDEF, __LINE__ )
91 template<
bool >
struct CONSTRAINT_MUST_NOT_HAVE_SIZE_FAILED;
92 template<>
struct CONSTRAINT_MUST_NOT_HAVE_SIZE_FAILED<true> {
enum { value = 1 }; };
103 #define BLAZE_CONSTRAINT_MUST_NOT_HAVE_SIZE(T,S) \
105 ::blaze::CONSTRAINT_TEST< \
106 ::blaze::CONSTRAINT_MUST_NOT_HAVE_SIZE_FAILED< !::blaze::HasSize<T,S>::value >::value > \
107 BLAZE_JOIN( CONSTRAINT_MUST_NOT_HAVE_SIZE_TYPEDEF, __LINE__ )
129 template<
bool >
struct CONSTRAINT_MUST_HAVE_1_BYTE_FAILED;
130 template<>
struct CONSTRAINT_MUST_HAVE_1_BYTE_FAILED<true> {
enum { value = 1 }; };
141 #define BLAZE_CONSTRAINT_MUST_HAVE_1_BYTE(T) \
143 ::blaze::CONSTRAINT_TEST< \
144 ::blaze::CONSTRAINT_MUST_HAVE_1_BYTE_FAILED< ::blaze::Has1Byte<T>::value >::value > \
145 BLAZE_JOIN( CONSTRAINT_MUST_HAVE_1_BYTE_TYPEDEF, __LINE__ )
167 template<
bool >
struct CONSTRAINT_MUST_NOT_HAVE_1_BYTE_FAILED;
168 template<>
struct CONSTRAINT_MUST_NOT_HAVE_1_BYTE_FAILED<true> {
enum { value = 1 }; };
179 #define BLAZE_CONSTRAINT_MUST_NOT_HAVE_1_BYTE(T) \
181 ::blaze::CONSTRAINT_TEST< \
182 ::blaze::CONSTRAINT_MUST_NOT_HAVE_1_BYTE_FAILED< !::blaze::Has1Byte<T>::value >::value > \
183 BLAZE_JOIN( CONSTRAINT_MUST_NOT_HAVE_1_BYTE_TYPEDEF, __LINE__ )
205 template<
bool >
struct CONSTRAINT_MUST_HAVE_2_BYTES_FAILED;
206 template<>
struct CONSTRAINT_MUST_HAVE_2_BYTES_FAILED<true> {
enum { value = 1 }; };
217 #define BLAZE_CONSTRAINT_MUST_HAVE_2_BYTES(T) \
219 ::blaze::CONSTRAINT_TEST< \
220 ::blaze::CONSTRAINT_MUST_HAVE_2_BYTES_FAILED< ::blaze::Has2Bytes<T>::value >::value > \
221 BLAZE_JOIN( CONSTRAINT_MUST_HAVE_2_BYTES_TYPEDEF, __LINE__ )
243 template<
bool >
struct CONSTRAINT_MUST_NOT_HAVE_2_BYTES_FAILED;
244 template<>
struct CONSTRAINT_MUST_NOT_HAVE_2_BYTES_FAILED<true> {
enum { value = 1 }; };
255 #define BLAZE_CONSTRAINT_MUST_NOT_HAVE_2_BYTES(T) \
257 ::blaze::CONSTRAINT_TEST< \
258 ::blaze::CONSTRAINT_MUST_NOT_HAVE_2_BYTES_FAILED< !::blaze::Has2Bytes<T>::value >::value > \
259 BLAZE_JOIN( CONSTRAINT_MUST_NOT_HAVE_2_BYTES_TYPEDEF, __LINE__ )
281 template<
bool >
struct CONSTRAINT_MUST_HAVE_4_BYTES_FAILED;
282 template<>
struct CONSTRAINT_MUST_HAVE_4_BYTES_FAILED<true> {
enum { value = 1 }; };
293 #define BLAZE_CONSTRAINT_MUST_HAVE_4_BYTES(T) \
295 ::blaze::CONSTRAINT_TEST< \
296 ::blaze::CONSTRAINT_MUST_HAVE_4_BYTES_FAILED< ::blaze::Has4Bytes<T>::value >::value > \
297 BLAZE_JOIN( CONSTRAINT_MUST_HAVE_4_BYTES_TYPEDEF, __LINE__ )
319 template<
bool >
struct CONSTRAINT_MUST_NOT_HAVE_4_BYTES_FAILED;
320 template<>
struct CONSTRAINT_MUST_NOT_HAVE_4_BYTES_FAILED<true> {
enum { value = 1 }; };
331 #define BLAZE_CONSTRAINT_MUST_NOT_HAVE_4_BYTES(T) \
333 ::blaze::CONSTRAINT_TEST< \
334 ::blaze::CONSTRAINT_MUST_NOT_HAVE_4_BYTES_FAILED< !::blaze::Has4Bytes<T>::value >::value > \
335 BLAZE_JOIN( CONSTRAINT_MUST_NOT_HAVE_4_BYTES_TYPEDEF, __LINE__ )
357 template<
bool >
struct CONSTRAINT_MUST_HAVE_8_BYTES_FAILED;
358 template<>
struct CONSTRAINT_MUST_HAVE_8_BYTES_FAILED<true> {
enum { value = 1 }; };
369 #define BLAZE_CONSTRAINT_MUST_HAVE_8_BYTES(T) \
371 ::blaze::CONSTRAINT_TEST< \
372 ::blaze::CONSTRAINT_MUST_HAVE_8_BYTES_FAILED< ::blaze::Has8Bytes<T>::value >::value > \
373 BLAZE_JOIN( CONSTRAINT_MUST_HAVE_8_BYTES_TYPEDEF, __LINE__ )
395 template<
bool >
struct CONSTRAINT_MUST_NOT_HAVE_8_BYTES_FAILED;
396 template<>
struct CONSTRAINT_MUST_NOT_HAVE_8_BYTES_FAILED<true> {
enum { value = 1 }; };
407 #define BLAZE_CONSTRAINT_MUST_NOT_HAVE_8_BYTES(T) \
409 ::blaze::CONSTRAINT_TEST< \
410 ::blaze::CONSTRAINT_MUST_NOT_HAVE_8_BYTES_FAILED< !::blaze::Has8Bytes<T>::value >::value > \
411 BLAZE_JOIN( CONSTRAINT_MUST_NOT_HAVE_8_BYTES_TYPEDEF, __LINE__ )