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  using Type = T;
83  //**********************************************************************************************
84 };
85 //*************************************************************************************************
86 
87 
88 //*************************************************************************************************
93 template< typename T >
94 struct RemoveAdaptor< const T >
95 {
96  public:
97  //**********************************************************************************************
98  using Type = const typename RemoveAdaptor<T>::Type;
99  //**********************************************************************************************
100 };
102 //*************************************************************************************************
103 
104 
105 //*************************************************************************************************
110 template< typename T >
111 struct RemoveAdaptor< volatile T >
112 {
113  public:
114  //**********************************************************************************************
115  using Type = volatile typename RemoveAdaptor<T>::Type;
116  //**********************************************************************************************
117 };
119 //*************************************************************************************************
120 
121 
122 //*************************************************************************************************
127 template< typename T >
128 struct RemoveAdaptor< const volatile T >
129 {
130  public:
131  //**********************************************************************************************
132  using Type = const volatile typename RemoveAdaptor<T>::Type;
133  //**********************************************************************************************
134 };
136 //*************************************************************************************************
137 
138 
139 //*************************************************************************************************
152 template< typename T >
154 //*************************************************************************************************
155 
156 } // namespace blaze
157 
158 #endif
typename RemoveAdaptor< T >::Type RemoveAdaptor_
Auxiliary alias declaration for the RemoveAdaptor type trait.The RemoveAdaptor_ alias declaration pro...
Definition: RemoveAdaptor.h:153
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
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