#include "asl/meta.hpp" #include "asl/test_types.hpp" struct Struct {}; union Union {}; enum Enum { EnumVariant = 0, }; enum class EnumClass { Variant = 0, }; static_assert(!asl::is_same); static_assert(asl::is_same); static_assert(asl::is_same, 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>); static_assert(asl::is_same>); static_assert(asl::is_same>); static_assert(asl::is_same>); static_assert(asl::is_same>); static_assert(asl::is_same>); static_assert(asl::is_same>); static_assert(asl::is_same>); static_assert(asl::is_same>); static_assert(asl::is_same>); static_assert(asl::is_void); static_assert(asl::is_void); static_assert(asl::is_void); static_assert(asl::is_void); static_assert(!asl::is_void); static_assert(!asl::is_void); static_assert(!asl::is_void); static_assert(!asl::is_void); static_assert(!asl::is_void); static_assert(!asl::is_void); static_assert(asl::is_ref); static_assert(asl::is_ref); static_assert(asl::is_ref); static_assert(asl::is_ref); static_assert(!asl::is_ref); static_assert(!asl::is_ref); static_assert(!asl::is_ref); static_assert(!asl::is_ref); static_assert(asl::is_ptr); static_assert(asl::is_ptr); static_assert(asl::is_ptr); static_assert(!asl::is_ptr); static_assert(!asl::is_ptr); static_assert(!asl::is_ptr); static_assert(!asl::is_ptr); static_assert(asl::is_same>); static_assert(asl::is_same>); static_assert(asl::is_same>); static_assert(asl::is_same>); static_assert(asl::is_same>); static_assert(asl::is_same>); static_assert(asl::is_same>); static_assert(asl::is_same>); static_assert(asl::is_func); static_assert(asl::is_func); static_assert(asl::is_func); static_assert(asl::is_func); static_assert(asl::is_func); static_assert(asl::is_func); static_assert(!asl::is_func); static_assert(!asl::is_func); static_assert(!asl::is_func); static_assert(!asl::is_func); static_assert(asl::is_object); static_assert(asl::is_object); static_assert(asl::is_object); static_assert(asl::is_object); static_assert(asl::is_object); static_assert(asl::is_object); static_assert(asl::is_object); static_assert(asl::is_object); static_assert(!asl::is_object); static_assert(!asl::is_object); static_assert(!asl::is_object); static_assert(!asl::is_object); static_assert(!asl::is_array); static_assert(!asl::is_array); static_assert(!asl::is_array); static_assert(!asl::is_array); static_assert(!asl::is_array); static_assert(asl::is_array); static_assert(asl::is_array); static_assert(!asl::is_array); static_assert(!asl::is_array); static_assert(!asl::is_array); static_assert(!asl::is_array); static_assert(!asl::is_array); static_assert(asl::is_same>); static_assert(asl::is_same>); static_assert(asl::is_same>); static_assert(asl::is_same>); static_assert(asl::is_same>); static_assert(asl::is_same>); int main() { return 0; }