diff options
Diffstat (limited to 'asl/meta/internal/quals.hpp')
-rw-r--r-- | asl/meta/internal/quals.hpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/asl/meta/internal/quals.hpp b/asl/meta/internal/quals.hpp new file mode 100644 index 0000000..869cc89 --- /dev/null +++ b/asl/meta/internal/quals.hpp @@ -0,0 +1,16 @@ +#pragma once
+
+#include "asl/meta/types.hpp"
+
+namespace asl::internal {
+
+template<typename T> struct const_helper { using add = const T; using remove = T; };
+template<typename T> struct const_helper<const T> { using add = const T; using remove = T; };
+
+template<typename T> concept is_const = same<T, typename internal::const_helper<T>::add>;
+
+template<typename T> struct volatile_helper { using add = volatile T; using remove = T; };
+template<typename T> struct volatile_helper<volatile T> { using add = volatile T; using remove = T; };
+
+} // namespace asl::internal
+ |