From 4228e82740f62b841799cfca04861fa217fb93a5 Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Thu, 1 Aug 2024 00:56:05 +0200 Subject: More work on taxonomy --- asl/meta/refs.hpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 asl/meta/refs.hpp (limited to 'asl/meta/refs.hpp') diff --git a/asl/meta/refs.hpp b/asl/meta/refs.hpp new file mode 100644 index 0000000..b72458a --- /dev/null +++ b/asl/meta/refs.hpp @@ -0,0 +1,21 @@ +#pragma once + +#include "asl/meta/internal/refs.hpp" + +namespace asl { + +template concept referenceable = internal::is_referenceable; + +template concept is_ref = internal::is_ref_helper::lref; +template concept is_rref = internal::is_ref_helper::rref; +template concept is_any_ref = is_ref || is_rref; + +template using as_ref_t = internal::as_ref_helper::lvalue; +template using as_rref_t = internal::as_ref_helper::rvalue; + +template using un_ref_t = internal::un_ref_helper::type; + +#define AslMove(expr_) (static_cast<::asl::as_rref_t<::asl::un_ref_t>>(expr_)) +#define AslForward(expr_) (static_cast<::asl::as_rref_t>(expr_)) + +} // namespace asl -- cgit