From 4ad4091b38faa39ddd2deae7455bd3a26531994f Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Thu, 15 Aug 2024 23:35:01 +0200 Subject: Some work on object & init-related traits --- asl/meta_tests.cpp | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) (limited to 'asl/meta_tests.cpp') diff --git a/asl/meta_tests.cpp b/asl/meta_tests.cpp index 34603e6..2be5c63 100644 --- a/asl/meta_tests.cpp +++ b/asl/meta_tests.cpp @@ -1,4 +1,5 @@ #include "asl/meta.hpp" +#include "asl/test_types.hpp" struct EmptyStruct {}; struct Struct { int b: 4; }; @@ -594,4 +595,68 @@ static_assert(asl::is_same, const int*>); static_assert(asl::is_same, int(*)(float)>); static_assert(asl::is_same, int*>); +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::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::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::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::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_destructible); +static_assert(asl::trivially_destructible); +static_assert(!asl::trivially_destructible); + +static_assert(asl::is_same, int&>); +static_assert(asl::is_same, int&>); +static_assert(asl::is_same, int&>); +static_assert(asl::is_same, const void>); + +static_assert(asl::is_same, int&&>); +static_assert(asl::is_same, int&>); +static_assert(asl::is_same, int&&>); +static_assert(asl::is_same, const void>); + int main() { return 0; } -- cgit