IsRestricted.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_TYPETRAITS_ISRESTRICTED_H_
36 #define _BLAZE_MATH_TYPETRAITS_ISRESTRICTED_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 //*************************************************************************************************
81 template< typename T >
82 struct IsRestricted : public FalseType
83 {
84  public:
85  //**********************************************************************************************
87  enum { value = 0 };
88  typedef FalseType Type;
90  //**********************************************************************************************
91 };
92 //*************************************************************************************************
93 
94 
95 //*************************************************************************************************
100 template< typename T >
101 struct IsRestricted< const T > : public IsRestricted<T>::Type
102 {
103  public:
104  //**********************************************************************************************
105  enum { value = IsRestricted<T>::value };
106  typedef typename IsRestricted<T>::Type Type;
107  //**********************************************************************************************
108 };
110 //*************************************************************************************************
111 
112 
113 //*************************************************************************************************
118 template< typename T >
119 struct IsRestricted< volatile T > : public IsRestricted<T>::Type
120 {
121  public:
122  //**********************************************************************************************
123  enum { value = IsRestricted<T>::value };
124  typedef typename IsRestricted<T>::Type Type;
125  //**********************************************************************************************
126 };
128 //*************************************************************************************************
129 
130 
131 //*************************************************************************************************
136 template< typename T >
137 struct IsRestricted< const volatile T > : public IsRestricted<T>::Type
138 {
139  public:
140  //**********************************************************************************************
141  enum { value = IsRestricted<T>::value };
142  typedef typename IsRestricted<T>::Type Type;
143  //**********************************************************************************************
144 };
146 //*************************************************************************************************
147 
148 } // namespace blaze
149 
150 #endif
Header file for the FalseType type/value trait base class.
Compile time check for data types with restricted data access.This type trait tests whether the given...
Definition: IsRestricted.h:82
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
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.