Double.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_UTIL_CONSTRAINTS_DOUBLE_H_
36 #define _BLAZE_UTIL_CONSTRAINTS_DOUBLE_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
44 #include <blaze/util/Suffix.h>
46 
47 
48 namespace blaze {
49 
50 //=================================================================================================
51 //
52 // MUST_BE_DOUBLE_TYPE CONSTRAINT
53 //
54 //=================================================================================================
55 
56 //*************************************************************************************************
66 template< bool > struct CONSTRAINT_MUST_BE_DOUBLE_TYPE_FAILED;
67 template<> struct CONSTRAINT_MUST_BE_DOUBLE_TYPE_FAILED<true> { enum { value = 1 }; };
69 //*************************************************************************************************
70 
71 
72 //*************************************************************************************************
80 #define BLAZE_CONSTRAINT_MUST_BE_DOUBLE_TYPE(T) \
81  typedef \
82  ::blaze::CONSTRAINT_TEST< \
83  ::blaze::CONSTRAINT_MUST_BE_DOUBLE_TYPE_FAILED< ::blaze::IsDouble<T>::value >::value > \
84  BLAZE_JOIN( CONSTRAINT_MUST_BE_DOUBLE_TYPE_TYPEDEF, __LINE__ )
85 //*************************************************************************************************
86 
87 
88 
89 
90 //=================================================================================================
91 //
92 // MUST_NOT_BE_DOUBLE_TYPE CONSTRAINT
93 //
94 //=================================================================================================
95 
96 //*************************************************************************************************
106 template< bool > struct CONSTRAINT_MUST_NOT_BE_DOUBLE_TYPE_FAILED;
107 template<> struct CONSTRAINT_MUST_NOT_BE_DOUBLE_TYPE_FAILED<true> { enum { value = 1 }; };
109 //*************************************************************************************************
110 
111 
112 //*************************************************************************************************
120 #define BLAZE_CONSTRAINT_MUST_NOT_BE_DOUBLE_TYPE(T) \
121  typedef \
122  ::blaze::CONSTRAINT_TEST< \
123  ::blaze::CONSTRAINT_MUST_NOT_BE_DOUBLE_TYPE_FAILED< !::blaze::IsDouble<T>::value >::value > \
124  BLAZE_JOIN( CONSTRAINT_MUST_NOT_BE_DOUBLE_TYPE_TYPEDEF, __LINE__ )
125 //*************************************************************************************************
126 
127 } // namespace blaze
128 
129 #endif
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
Header file for the IsDouble type trait.
Constraint wrapper class.
Header file for compile time constraints.