IsCustom.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_TYPETRAITS_ISCUSTOM_H_
36 #define _BLAZE_MATH_TYPETRAITS_ISCUSTOM_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
43 #include <blaze/util/FalseType.h>
44 #include <blaze/util/TrueType.h>
45 
46 
47 namespace blaze {
48 
49 //=================================================================================================
50 //
51 // CLASS DEFINITION
52 //
53 //=================================================================================================
54 
55 //*************************************************************************************************
83 template< typename T >
84 struct IsCustom : public FalseType
85 {
86  public:
87  //**********************************************************************************************
89  enum { value = 0 };
90  typedef FalseType Type;
92  //**********************************************************************************************
93 };
94 //*************************************************************************************************
95 
96 
97 //*************************************************************************************************
102 template< typename T >
103 struct IsCustom< const T > : public IsCustom<T>::Type
104 {
105  public:
106  //**********************************************************************************************
107  enum { value = IsCustom<T>::value };
108  typedef typename IsCustom<T>::Type Type;
109  //**********************************************************************************************
110 };
112 //*************************************************************************************************
113 
114 
115 //*************************************************************************************************
120 template< typename T >
121 struct IsCustom< volatile T > : public IsCustom<T>::Type
122 {
123  public:
124  //**********************************************************************************************
125  enum { value = IsCustom<T>::value };
126  typedef typename IsCustom<T>::Type Type;
127  //**********************************************************************************************
128 };
130 //*************************************************************************************************
131 
132 
133 //*************************************************************************************************
138 template< typename T >
139 struct IsCustom< const volatile T > : public IsCustom<T>::Type
140 {
141  public:
142  //**********************************************************************************************
143  enum { value = IsCustom<T>::value };
144  typedef typename IsCustom<T>::Type Type;
145  //**********************************************************************************************
146 };
148 //*************************************************************************************************
149 
150 } // namespace blaze
151 
152 #endif
Header file for the FalseType type/value trait base class.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
Compile time check for custom data types.This type trait tests whether the given data type is a custo...
Definition: IsCustom.h:84
boost::false_type FalseType
Type/value traits base class.The FalseType class is used as base class for type traits and value trai...
Definition: FalseType.h:61
Header file for the TrueType type/value trait base class.