summaryrefslogtreecommitdiff
path: root/asl/tests/meta_tests.cpp
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/tests/meta_tests.cpp
parent2a10eaae094e48a157d55ec886aaa07b0d0be6c9 (diff)
More work on option
Diffstat (limited to 'asl/tests/meta_tests.cpp')
-rw-r--r--asl/tests/meta_tests.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/asl/tests/meta_tests.cpp b/asl/tests/meta_tests.cpp
index 5de4f8d..4397763 100644
--- a/asl/tests/meta_tests.cpp
+++ b/asl/tests/meta_tests.cpp
@@ -168,3 +168,15 @@ static_assert(!asl::trivially_copyable<HasDestructor>);
static_assert(!asl::trivially_copyable<CopyAssignable>);
static_assert(asl::trivially_copyable<DefaultConstructible>);
static_assert(asl::trivially_copyable<TriviallyDefaultConstructible>);
+
+class Base {};
+class Derived : public Base {};
+class C {};
+class D { public: operator C() { return c; } C c; };
+class E { public: template<class T> E(T&&) {} };
+
+static_assert(asl::convertible<Derived*, Base*>);
+static_assert(!asl::convertible<Base*, Derived*>);
+static_assert(asl::convertible<D, C>);
+static_assert(!asl::convertible<Derived*, C*>);
+static_assert(asl::convertible<Base, E>);