HasMutableDataAccess.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_TYPETRAITS_HASMUTABLEDATAACCESS_H_
36 #define _BLAZE_MATH_TYPETRAITS_HASMUTABLEDATAACCESS_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 //*************************************************************************************************
74 template< typename T >
76 {
77  public:
78  //**********************************************************************************************
80  enum { value = 0 };
81  typedef FalseType Type;
83  //**********************************************************************************************
84 };
85 //*************************************************************************************************
86 
87 
88 //*************************************************************************************************
93 template< typename T >
94 struct HasMutableDataAccess< const T > : public HasMutableDataAccess<T>::Type
95 {
96  public:
97  //**********************************************************************************************
98  enum { value = HasMutableDataAccess<T>::value };
99  typedef typename HasMutableDataAccess<T>::Type Type;
100  //**********************************************************************************************
101 };
103 //*************************************************************************************************
104 
105 
106 //*************************************************************************************************
111 template< typename T >
112 struct HasMutableDataAccess< volatile T > : public HasMutableDataAccess<T>::Type
113 {
114  public:
115  //**********************************************************************************************
116  enum { value = HasMutableDataAccess<T>::value };
117  typedef typename HasMutableDataAccess<T>::Type Type;
118  //**********************************************************************************************
119 };
121 //*************************************************************************************************
122 
123 
124 //*************************************************************************************************
129 template< typename T >
130 struct HasMutableDataAccess< const volatile T > : public HasMutableDataAccess<T>::Type
131 {
132  public:
133  //**********************************************************************************************
134  enum { value = HasMutableDataAccess<T>::value };
135  typedef typename HasMutableDataAccess<T>::Type Type;
136  //**********************************************************************************************
137 };
139 //*************************************************************************************************
140 
141 } // namespace blaze
142 
143 #endif
Header file for the FalseType type/value trait base class.
Compile time check for low-level access to mutable data.This type trait tests whether the given data ...
Definition: HasMutableDataAccess.h:75
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.