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/object_tests.cpp | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) (limited to 'asl/object_tests.cpp') diff --git a/asl/object_tests.cpp b/asl/object_tests.cpp index 794c540..e3d7d8d 100644 --- a/asl/object_tests.cpp +++ b/asl/object_tests.cpp @@ -1,4 +1,5 @@ #include "asl/object.hpp" +#include "asl/test_types.hpp" static_assert(asl::is_object>); static_assert(asl::is_object>); @@ -6,9 +7,64 @@ static_assert(asl::is_object>); static_assert(asl::is_object>); static_assert(asl::is_empty>); +static_assert(asl::is_empty>); static_assert(sizeof(asl::object) == 4); static_assert(sizeof(asl::object) == sizeof(void*)); static_assert(sizeof(asl::object) == sizeof(void*)); static_assert(sizeof(asl::object) == sizeof(void*)); +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>); + int main() { return 0; } -- cgit