35 #ifndef _BLAZE_MATH_CONSTRAINTS_COLUMNS_H_
36 #define _BLAZE_MATH_CONSTRAINTS_COLUMNS_H_
69 template<
bool >
struct CONSTRAINT_MUST_HAVE_EQUAL_NUMBER_OF_COLUMNS_FAILED;
70 template<>
struct CONSTRAINT_MUST_HAVE_EQUAL_NUMBER_OF_COLUMNS_FAILED<true> {
enum { value = 1 }; };
84 #define BLAZE_CONSTRAINT_MUST_HAVE_EQUAL_NUMBER_OF_COLUMNS(T1,T2) \
86 blaze::CONSTRAINT_TEST< \
87 blaze::CONSTRAINT_MUST_HAVE_EQUAL_NUMBER_OF_COLUMNS_FAILED< ( \
88 blaze::Or< blaze::Equal< blaze::Columns<T1>, blaze::SizeT<0UL> > \
89 , blaze::Equal< blaze::Columns<T2>, blaze::SizeT<0UL> > \
90 , blaze::Equal< blaze::Columns<T1>, blaze::Columns<T2> > \
91 >::value ) >::value > \
92 BLAZE_JOIN( CONSTRAINT_MUST_HAVE_EQUAL_NUMBER_OF_COLUMNS_TYPEDEF, __LINE__ )
114 template<
bool >
struct CONSTRAINT_MUST_NOT_HAVE_EQUAL_NUMBER_OF_COLUMNS_FAILED;
115 template<>
struct CONSTRAINT_MUST_NOT_HAVE_EQUAL_NUMBER_OF_COLUMNS_FAILED<true> {
enum { value = 1 }; };
129 #define BLAZE_CONSTRAINT_MUST_NOT_HAVE_EQUAL_NUMBER_OF_COLUMNS(T1,T2) \
131 blaze::CONSTRAINT_TEST< \
132 blaze::CONSTRAINT_MUST_HAVE_EQUAL_NUMBER_OF_COLUMNS_FAILED< ( \
133 blaze::Or< blaze::Equal< blaze::Columns<T1>, blaze::SizeT<0UL> > \
134 , blaze::Equal< blaze::Columns<T2>, blaze::SizeT<0UL> > \
135 , blaze::Not< blaze::Equal< blaze::Columns<T1>, blaze::Columns<T2> > > \
136 >::value ) >::value > \
137 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.
Constraint wrapper class.
Header file for compile time constraints.
Header file for the Equal class template.