From c8b73031d8a9f7770410c9d0e6da5b230e501e85 Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Wed, 12 Mar 2025 00:08:18 +0100 Subject: Remove convertible_from --- asl/base/meta.hpp | 7 ++----- asl/base/meta_tests.cpp | 26 +++++++++++++------------- 2 files changed, 15 insertions(+), 18 deletions(-) (limited to 'asl/base') diff --git a/asl/base/meta.hpp b/asl/base/meta.hpp index 8376d5c..8bebf2f 100644 --- a/asl/base/meta.hpp +++ b/asl/base/meta.hpp @@ -87,14 +87,11 @@ template concept trivially_destructible = __is_trivially_destructibl template concept copyable = copy_constructible && copy_assignable; template concept moveable = move_constructible && move_assignable; -template -concept convertible_from = __is_convertible(From, To); - template concept convertible_to = __is_convertible(From, To); template -concept derived_from = __is_class(Derived) && __is_class(Base) && convertible_from; +concept derived_from = __is_class(Derived) && __is_class(Base) && convertible_to; using nullptr_t = decltype(nullptr); @@ -258,7 +255,7 @@ concept derefs_as = is_object && (convertible_to&, To&> || _dereferenceable_as_convertible, To>); template From> -constexpr auto&& deref(From&& from) // NOLINT(*forward*) +constexpr auto&& deref(From&& from) // NOLINT(*-missing-std-forward) { if constexpr (_dereferenceable_as_convertible) { diff --git a/asl/base/meta_tests.cpp b/asl/base/meta_tests.cpp index 6c8efab..490b453 100644 --- a/asl/base/meta_tests.cpp +++ b/asl/base/meta_tests.cpp @@ -205,19 +205,19 @@ class C {}; class D { public: operator C() { return c; } C c; }; // NOLINT class E { public: template E(T&&) {} }; // NOLINT -static_assert(asl::convertible_from); -static_assert(!asl::convertible_from); -static_assert(asl::convertible_from); -static_assert(!asl::convertible_from); -static_assert(asl::convertible_from); - -static_assert(!asl::convertible_from); -static_assert(asl::convertible_from); -static_assert(asl::convertible_from); -static_assert(asl::convertible_from); -static_assert(!asl::convertible_from); -static_assert(!asl::convertible_from); -static_assert(!asl::convertible_from); +static_assert(asl::convertible_to); +static_assert(!asl::convertible_to); +static_assert(asl::convertible_to); +static_assert(!asl::convertible_to); +static_assert(asl::convertible_to); + +static_assert(!asl::convertible_to); +static_assert(asl::convertible_to); +static_assert(asl::convertible_to); +static_assert(asl::convertible_to); +static_assert(!asl::convertible_to); +static_assert(!asl::convertible_to); +static_assert(!asl::convertible_to); static_assert(asl::derived_from); static_assert(!asl::derived_from); -- cgit