From 5642cba31b5f7610eddf552b1acd984cf718340d Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Fri, 27 Dec 2024 19:19:40 +0100 Subject: Rework some metaprogramming stuff --- asl/tests/meta_tests.cpp | 101 +++++++++++++++++++++++++++++------------------ 1 file changed, 62 insertions(+), 39 deletions(-) (limited to 'asl/tests/meta_tests.cpp') diff --git a/asl/tests/meta_tests.cpp b/asl/tests/meta_tests.cpp index fcafe1c..24e9754 100644 --- a/asl/tests/meta_tests.cpp +++ b/asl/tests/meta_tests.cpp @@ -13,59 +13,88 @@ static_assert(asl::same_as, float>); static_assert(asl::same_as, int>); static_assert(asl::default_constructible); -static_assert(asl::default_constructible); -static_assert(asl::default_constructible); -static_assert(!asl::default_constructible); +static_assert(asl::default_constructible); +static_assert(asl::default_constructible); static_assert(asl::trivially_default_constructible); -static_assert(asl::trivially_default_constructible); -static_assert(!asl::trivially_default_constructible); -static_assert(!asl::trivially_default_constructible); +static_assert(asl::trivially_default_constructible); +static_assert(!asl::trivially_default_constructible); static_assert(asl::copy_constructible); -static_assert(asl::copy_constructible); -static_assert(asl::copy_constructible); -static_assert(!asl::copy_constructible); +static_assert(asl::copy_constructible); +static_assert(asl::copy_constructible); +static_assert(!asl::copy_constructible); +static_assert(!asl::copy_constructible); static_assert(asl::trivially_copy_constructible); -static_assert(asl::trivially_copy_constructible); -static_assert(!asl::trivially_copy_constructible); -static_assert(!asl::trivially_copy_constructible); +static_assert(asl::trivially_copy_constructible); +static_assert(asl::trivially_copy_constructible); +static_assert(!asl::trivially_copy_constructible); +static_assert(!asl::trivially_copy_constructible); +static_assert(!asl::trivially_copy_constructible); +static_assert(!asl::trivially_copy_constructible); static_assert(asl::move_constructible); -static_assert(asl::move_constructible); -static_assert(asl::move_constructible); -static_assert(asl::move_constructible); -static_assert(!asl::move_constructible); +static_assert(asl::move_constructible); +static_assert(asl::move_constructible); +static_assert(asl::move_constructible); +static_assert(!asl::move_constructible); static_assert(asl::trivially_move_constructible); -static_assert(asl::trivially_move_constructible); -static_assert(!asl::trivially_move_constructible); -static_assert(!asl::trivially_move_constructible); +static_assert(asl::trivially_move_constructible); +static_assert(asl::trivially_move_constructible); +static_assert(!asl::trivially_move_constructible); +static_assert(!asl::trivially_move_constructible); +static_assert(!asl::trivially_move_constructible); +static_assert(!asl::trivially_move_constructible); static_assert(asl::copy_assignable); -static_assert(asl::copy_assignable); -static_assert(asl::copy_assignable); -static_assert(!asl::copy_assignable); +static_assert(asl::copy_assignable); +static_assert(asl::copy_assignable); +static_assert(!asl::copy_assignable); +static_assert(!asl::copy_assignable); static_assert(asl::trivially_copy_assignable); -static_assert(!asl::trivially_copy_assignable); -static_assert(asl::trivially_copy_assignable); -static_assert(!asl::trivially_copy_assignable); +static_assert(asl::trivially_copy_assignable); +static_assert(asl::trivially_copy_assignable); +static_assert(asl::trivially_copy_assignable); +static_assert(!asl::trivially_copy_assignable); +static_assert(!asl::trivially_copy_assignable); +static_assert(!asl::trivially_copy_assignable); + +static_assert(asl::copyable); +static_assert(asl::copyable); +static_assert(asl::copyable); +static_assert(!asl::copyable); +static_assert(!asl::copyable); + +static_assert(asl::moveable); +static_assert(asl::moveable); +static_assert(asl::moveable); +static_assert(asl::moveable); +static_assert(!asl::moveable); static_assert(asl::move_assignable); -static_assert(asl::move_assignable); -static_assert(asl::move_assignable); -static_assert(!asl::move_assignable); +static_assert(asl::move_assignable); +static_assert(asl::move_assignable); +static_assert(asl::move_assignable); +static_assert(!asl::move_assignable); static_assert(asl::trivially_move_assignable); -static_assert(!asl::trivially_move_assignable); -static_assert(asl::trivially_move_assignable); -static_assert(!asl::trivially_move_assignable); +static_assert(asl::trivially_move_assignable); +static_assert(asl::trivially_move_assignable); +static_assert(asl::trivially_move_assignable); +static_assert(!asl::trivially_move_assignable); +static_assert(!asl::trivially_move_assignable); +static_assert(!asl::trivially_move_assignable); static_assert(asl::trivially_destructible); -static_assert(asl::trivially_destructible); -static_assert(!asl::trivially_destructible); +static_assert(asl::trivially_destructible); +static_assert(asl::trivially_destructible); +static_assert(!asl::trivially_destructible); +static_assert(asl::trivially_destructible); +static_assert(asl::trivially_destructible); +static_assert(asl::trivially_destructible); static_assert(asl::same_as>); static_assert(asl::same_as>); @@ -164,12 +193,6 @@ static_assert(asl::types_count == 2); static_assert(asl::types_count == 1); static_assert(asl::types_count<> == 0); -static_assert(asl::trivially_copyable); -static_assert(!asl::trivially_copyable); -static_assert(!asl::trivially_copyable); -static_assert(asl::trivially_copyable); -static_assert(asl::trivially_copyable); - class Base {}; class Derived : public Base {}; class C {}; -- cgit