diff options
author | Steven Le Rouzic <steven.lerouzic@gmail.com> | 2024-08-01 00:56:05 +0200 |
---|---|---|
committer | Steven Le Rouzic <steven.lerouzic@gmail.com> | 2024-08-01 00:56:05 +0200 |
commit | 4228e82740f62b841799cfca04861fa217fb93a5 (patch) | |
tree | 30bd93b9c62e87d8b1416344d21ba84cfb66ae2a /asl/meta/internal/quals.hpp | |
parent | 4698812fdc2d9eeea03f26307d6e7e626aaec12b (diff) |
More work on taxonomy
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
+ |