35 #ifndef _BLAZE_MATH_CONSTRAINTS_SIZE_H_
36 #define _BLAZE_MATH_CONSTRAINTS_SIZE_H_
70 template<
bool >
struct CONSTRAINT_MUST_HAVE_EQUAL_SIZE_FAILED;
71 template<>
struct CONSTRAINT_MUST_HAVE_EQUAL_SIZE_FAILED<true> {
enum { value = 1 }; };
85 #define BLAZE_CONSTRAINT_MUST_HAVE_EQUAL_SIZE(T1,T2) \
87 blaze::CONSTRAINT_TEST< \
88 blaze::CONSTRAINT_MUST_HAVE_EQUAL_SIZE_FAILED< ( \
89 blaze::Or< blaze::Equal< blaze::Size<T1>, blaze::SizeT<0UL> > \
90 , blaze::Equal< blaze::Size<T2>, blaze::SizeT<0UL> > \
91 , blaze::Equal< blaze::Size<T1>, blaze::Size<T2> > \
92 >::value ) >::value > \
93 BLAZE_JOIN( CONSTRAINT_MUST_HAVE_EQUAL_SIZE_TYPEDEF, __LINE__ )
115 template<
bool >
struct CONSTRAINT_MUST_NOT_HAVE_EQUAL_SIZE_FAILED;
116 template<>
struct CONSTRAINT_MUST_NOT_HAVE_EQUAL_SIZE_FAILED<true> {
enum { value = 1 }; };
130 #define BLAZE_CONSTRAINT_MUST_NOT_HAVE_EQUAL_SIZE(T1,T2) \
132 blaze::CONSTRAINT_TEST< \
133 blaze::CONSTRAINT_MUST_HAVE_EQUAL_SIZE_FAILED< ( \
134 blaze::Or< blaze::Equal< blaze::Size<T1>, blaze::SizeT<0UL> > \
135 , blaze::Equal< blaze::Size<T2>, blaze::SizeT<0UL> > \
136 , blaze::Not< blaze::Equal< blaze::Size<T1>, blaze::Size<T2> > > \
137 >::value ) >::value > \
138 BLAZE_JOIN( CONSTRAINT_MUST_HAVE_EQUAL_SIZE_TYPEDEF, __LINE__ )
Header file for the SizeT class template.
Header file for the Or class template.
Header file for the Not class template.
Constraint wrapper class.
Header file for the Size type trait.
Header file for compile time constraints.
Header file for the Equal class template.