All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Vector.h
Go to the documentation of this file.
1 //=================================================================================================
20 //=================================================================================================
21 
22 #ifndef _BLAZE_MATH_CONSTRAINTS_VECTOR_H_
23 #define _BLAZE_MATH_CONSTRAINTS_VECTOR_H_
24 
25 
26 //*************************************************************************************************
27 // Includes
28 //*************************************************************************************************
29 
32 #include <blaze/util/Suffix.h>
33 
34 
35 namespace blaze {
36 
37 //=================================================================================================
38 //
39 // MUST_BE_VECTOR_TYPE CONSTRAINT
40 //
41 //=================================================================================================
42 
43 //*************************************************************************************************
53 template< bool > struct CONSTRAINT_MUST_BE_VECTOR_TYPE_FAILED;
54 template<> struct CONSTRAINT_MUST_BE_VECTOR_TYPE_FAILED<true> { enum { value = 1 }; };
56 //*************************************************************************************************
57 
58 
59 //*************************************************************************************************
66 #define BLAZE_CONSTRAINT_MUST_BE_VECTOR_TYPE(T) \
67  typedef \
68  blaze::CONSTRAINT_TEST< \
69  blaze::CONSTRAINT_MUST_BE_VECTOR_TYPE_FAILED< blaze::IsVector<T>::value >::value > \
70  BLAZE_JOIN( CONSTRAINT_MUST_BE_VECTOR_TYPE_TYPEDEF, __LINE__ )
71 //*************************************************************************************************
72 
73 
74 
75 
76 //=================================================================================================
77 //
78 // MUST_NOT_BE_VECTOR_TYPE CONSTRAINT
79 //
80 //=================================================================================================
81 
82 //*************************************************************************************************
92 template< bool > struct CONSTRAINT_MUST_NOT_BE_VECTOR_TYPE_FAILED;
93 template<> struct CONSTRAINT_MUST_NOT_BE_VECTOR_TYPE_FAILED<true> { enum { value = 1 }; };
95 //*************************************************************************************************
96 
97 
98 //*************************************************************************************************
105 #define BLAZE_CONSTRAINT_MUST_NOT_BE_VECTOR_TYPE(T) \
106  typedef \
107  blaze::CONSTRAINT_TEST< \
108  blaze::CONSTRAINT_MUST_NOT_BE_VECTOR_TYPE_FAILED< !blaze::IsVector<T>::value >::value > \
109  BLAZE_JOIN( CONSTRAINT_MUST_NOT_BE_VECTOR_TYPE_TYPEDEF, __LINE__ )
110 //*************************************************************************************************
111 
112 } // namespace blaze
113 
114 #endif