summaryrefslogtreecommitdiff
path: root/asl/meta.hpp
diff options
context:
space:
mode:
authorSteven Le Rouzic <steven.lerouzic@gmail.com>2024-11-01 22:56:06 +0100
committerSteven Le Rouzic <steven.lerouzic@gmail.com>2024-12-20 15:35:58 +0100
commit343d872be9f91e5fcb9167021790831458cbf19c (patch)
tree97b233cd71ec254978135eb5847abe514589ceee /asl/meta.hpp
parent2a10eaae094e48a157d55ec886aaa07b0d0be6c9 (diff)
More work on option
Diffstat (limited to 'asl/meta.hpp')
-rw-r--r--asl/meta.hpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/asl/meta.hpp b/asl/meta.hpp
index d05b095..d253dda 100644
--- a/asl/meta.hpp
+++ b/asl/meta.hpp
@@ -67,6 +67,9 @@ template<typename T> concept trivially_destructible = __is_trivially_destructibl
template<typename T> concept trivially_copyable = __is_trivially_copyable(T);
+template<typename From, typename To>
+concept convertible = __is_convertible(From, To);
+
using nullptr_t = decltype(nullptr);
template<typename T> struct _un_const_helper { using type = T; };
@@ -81,6 +84,8 @@ template<typename T> using un_volatile_t = _un_volatile_helper<T>::type;
template<typename T> using un_cv_t = un_volatile_t<un_const_t<T>>;
+template<typename T> using un_cvref_t = un_ref_t<un_cv_t<T>>;
+
template<typename T> concept is_void = is_same<void, un_cv_t<T>>;
template<typename T> struct _is_ref_helper { static constexpr bool l = false; static constexpr bool r = false; };