All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RemoveAdaptor.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_TYPETRAITS_REMOVEADAPTOR_H_
36 #define _BLAZE_MATH_TYPETRAITS_REMOVEADAPTOR_H_
37 
38 
39 namespace blaze {
40 
41 //=================================================================================================
42 //
43 // CLASS DEFINITION
44 //
45 //=================================================================================================
46 
47 //*************************************************************************************************
75 template< typename T >
77 {
78  public:
79  //**********************************************************************************************
81  typedef T Type;
83  //**********************************************************************************************
84 };
85 //*************************************************************************************************
86 
87 
88 //*************************************************************************************************
93 template< typename T >
94 struct RemoveAdaptor< const T >
95 {
96  public:
97  //**********************************************************************************************
98  typedef const typename RemoveAdaptor<T>::Type Type;
99  //**********************************************************************************************
100 };
102 //*************************************************************************************************
103 
104 
105 //*************************************************************************************************
110 template< typename T >
111 struct RemoveAdaptor< volatile T >
112 {
113  public:
114  //**********************************************************************************************
115  typedef volatile typename RemoveAdaptor<T>::Type Type;
116  //**********************************************************************************************
117 };
119 //*************************************************************************************************
120 
121 
122 //*************************************************************************************************
127 template< typename T >
128 struct RemoveAdaptor< const volatile T >
129 {
130  public:
131  //**********************************************************************************************
132  typedef const volatile typename RemoveAdaptor<T>::Type Type;
133  //**********************************************************************************************
134 };
136 //*************************************************************************************************
137 
138 } // namespace blaze
139 
140 #endif
Removal of top level adaptor types.In case the given type is an adaptor type (SymmetricMatrix, LowerMatrix, UpperMatrix, ...), the RemoveAdaptor type trait removes the adaptor and extracts the contained general matrix type. Else the given type is returned as is. Note that cv-qualifiers are preserved.
Definition: RemoveAdaptor.h:76