22 #ifndef _BLAZE_UTIL_CONSTRAINTS_RANK_H_
23 #define _BLAZE_UTIL_CONSTRAINTS_RANK_H_
53 template<
bool >
struct CONSTRAINT_MUST_HAVE_RANK_FAILED;
54 template<>
struct CONSTRAINT_MUST_HAVE_RANK_FAILED<true> {
enum { value = 1 }; };
65 #define BLAZE_CONSTRAINT_MUST_HAVE_RANK(T,N) \
67 ::blaze::CONSTRAINT_TEST< \
68 ::blaze::CONSTRAINT_MUST_HAVE_RANK_FAILED< ::blaze::Rank<T>::value == N >::value > \
69 BLAZE_JOIN( CONSTRAINT_MUST_HAVE_RANK_TYPEDEF, __LINE__ )
91 template<
bool >
struct CONSTRAINT_MUST_NOT_HAVE_RANK_FAILED;
92 template<>
struct CONSTRAINT_MUST_NOT_HAVE_RANK_FAILED<true> {
enum { value = 1 }; };
103 #define BLAZE_CONSTRAINT_MUST_NOT_HAVE_RANK(T,N) \
105 ::blaze::CONSTRAINT_TEST< \
106 ::blaze::CONSTRAINT_MUST_NOT_HAVE_RANK_FAILED< ::blaze::Rank<T>::value != N >::value > \
107 BLAZE_JOIN( CONSTRAINT_MUST_NOT_HAVE_RANK_TYPEDEF, __LINE__ )