35 #ifndef _BLAZE_MATH_CONSTRAINTS_COLUMNS_H_
36 #define _BLAZE_MATH_CONSTRAINTS_COLUMNS_H_
70 template<
bool >
struct CONSTRAINT_MUST_HAVE_EQUAL_NUMBER_OF_COLUMNS_FAILED;
71 template<>
struct CONSTRAINT_MUST_HAVE_EQUAL_NUMBER_OF_COLUMNS_FAILED<true> {
enum { value = 1 }; };
85 #define BLAZE_CONSTRAINT_MUST_HAVE_EQUAL_NUMBER_OF_COLUMNS(T1,T2) \
87 blaze::CONSTRAINT_TEST< \
88 blaze::CONSTRAINT_MUST_HAVE_EQUAL_NUMBER_OF_COLUMNS_FAILED< ( \
89 blaze::Or< blaze::Equal< blaze::Columns<T1>, blaze::SizeT<0UL> > \
90 , blaze::Equal< blaze::Columns<T2>, blaze::SizeT<0UL> > \
91 , blaze::Equal< blaze::Columns<T1>, blaze::Columns<T2> > \
92 >::value ) >::value > \
93 BLAZE_JOIN( CONSTRAINT_MUST_HAVE_EQUAL_NUMBER_OF_COLUMNS_TYPEDEF, __LINE__ )
115 template<
bool >
struct CONSTRAINT_MUST_NOT_HAVE_EQUAL_NUMBER_OF_COLUMNS_FAILED;
116 template<>
struct CONSTRAINT_MUST_NOT_HAVE_EQUAL_NUMBER_OF_COLUMNS_FAILED<true> {
enum { value = 1 }; };
130 #define BLAZE_CONSTRAINT_MUST_NOT_HAVE_EQUAL_NUMBER_OF_COLUMNS(T1,T2) \
132 blaze::CONSTRAINT_TEST< \
133 blaze::CONSTRAINT_MUST_HAVE_EQUAL_NUMBER_OF_COLUMNS_FAILED< ( \
134 blaze::Or< blaze::Equal< blaze::Columns<T1>, blaze::SizeT<0UL> > \
135 , blaze::Equal< blaze::Columns<T2>, blaze::SizeT<0UL> > \
136 , blaze::Not< blaze::Equal< blaze::Columns<T1>, blaze::Columns<T2> > > \
137 >::value ) >::value > \
138 BLAZE_JOIN( CONSTRAINT_MUST_NOT_HAVE_EQUAL_NUMBER_OF_COLUMNS_TYPEDEF, __LINE__ )
Header file for the SizeT class template.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
Header file for the Or class template.
Header file for the Columns type trait.
Header file for the Not class template.
Constraint wrapper class.
Header file for compile time constraints.
Header file for the Equal class template.