#include "asl/meta.hpp" struct Struct { int b: 4; }; union Union {}; enum Enum { EnumVariant = 0, }; enum EnumClass { Variant = 0, }; static_assert(!asl::is_same); static_assert(asl::is_same); static_assert(asl::is_same, int>); static_assert(asl::is_same, int>); static_assert(asl::is_same, int>); static_assert(asl::is_same, int>); static_assert(asl::is_same, int>); static_assert(asl::is_same, int>); static_assert(asl::is_same, int>); static_assert(asl::is_same, int>); static_assert(asl::is_same, int>); static_assert(asl::is_same, int>); static_assert(asl::is_same, int>); static_assert(asl::is_same, int>); static_assert(asl::is_same, int>); static_assert(asl::is_same, int>); static_assert(asl::is_same, int>); static_assert(!asl::is_const); static_assert(asl::is_const); static_assert(!asl::is_const); static_assert(asl::is_const); static_assert(asl::is_void); static_assert(asl::is_void); static_assert(!asl::is_void); static_assert(asl::is_nullptr); static_assert(asl::is_nullptr); static_assert(!asl::is_nullptr); static_assert(!asl::is_nullptr); static_assert(!asl::is_ptr); static_assert(asl::is_integral); static_assert(asl::is_integral); static_assert(asl::is_integral); static_assert(asl::is_integral); static_assert(!asl::is_integral); static_assert(!asl::is_integral); static_assert(!asl::is_integral); static_assert(!asl::is_integral); static_assert(!asl::is_integral); static_assert(!asl::is_integral); static_assert(!asl::is_integral); static_assert(!asl::is_integral); static_assert(!asl::is_integral); static_assert(!asl::is_integral); static_assert(!asl::is_integral); static_assert(!asl::is_integral); static_assert(!asl::is_integral); static_assert(asl::is_floating_point); static_assert(!asl::is_floating_point); static_assert(!asl::is_floating_point); static_assert(!asl::is_floating_point); static_assert(!asl::is_floating_point); static_assert(!asl::is_floating_point); static_assert(!asl::is_floating_point); static_assert(!asl::is_floating_point); static_assert(!asl::is_floating_point); static_assert(!asl::is_floating_point); static_assert(!asl::is_floating_point); static_assert(!asl::is_floating_point); static_assert(!asl::is_floating_point); static_assert(!asl::is_floating_point); static_assert(!asl::is_floating_point); static_assert(!asl::is_floating_point); static_assert(!asl::is_floating_point); static_assert(asl::is_arithmetic); static_assert(!asl::is_arithmetic); static_assert(!asl::is_arithmetic); static_assert(asl::is_arithmetic); static_assert(asl::is_arithmetic); static_assert(asl::is_arithmetic); static_assert(asl::is_arithmetic); static_assert(!asl::is_arithmetic); static_assert(!asl::is_arithmetic); static_assert(!asl::is_arithmetic); static_assert(!asl::is_arithmetic); static_assert(!asl::is_arithmetic); static_assert(!asl::is_arithmetic); static_assert(!asl::is_arithmetic); static_assert(!asl::is_arithmetic); static_assert(!asl::is_arithmetic); static_assert(!asl::is_arithmetic); static_assert(asl::is_fundamental); static_assert(asl::is_fundamental); static_assert(asl::is_fundamental); static_assert(asl::is_fundamental); static_assert(asl::is_fundamental); static_assert(asl::is_fundamental); static_assert(asl::is_fundamental); static_assert(!asl::is_fundamental); static_assert(!asl::is_fundamental); static_assert(!asl::is_fundamental); static_assert(!asl::is_fundamental); static_assert(!asl::is_fundamental); static_assert(!asl::is_fundamental); static_assert(!asl::is_fundamental); static_assert(!asl::is_fundamental); static_assert(!asl::is_fundamental); static_assert(!asl::is_fundamental); 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_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_class); static_assert(!asl::is_class); static_assert(!asl::is_class); static_assert(!asl::is_class); static_assert(!asl::is_class); static_assert(!asl::is_class); static_assert(!asl::is_class); static_assert(!asl::is_class); static_assert(!asl::is_class); static_assert(!asl::is_class); static_assert(!asl::is_class); static_assert(!asl::is_class); static_assert(!asl::is_class); static_assert(!asl::is_class); static_assert(!asl::is_class); static_assert(!asl::is_class); static_assert(!asl::is_class); static_assert(!asl::is_class); static_assert(!asl::is_class); static_assert(!asl::is_class); static_assert(asl::is_class); static_assert(asl::is_class); static_assert(!asl::is_class); static_assert(!asl::is_class); static_assert(!asl::is_class); static_assert(!asl::is_class); static_assert(!asl::is_class); static_assert(!asl::is_union); static_assert(!asl::is_union); static_assert(!asl::is_union); static_assert(!asl::is_union); static_assert(!asl::is_union); static_assert(!asl::is_union); static_assert(!asl::is_union); static_assert(!asl::is_union); static_assert(!asl::is_union); static_assert(!asl::is_union); static_assert(!asl::is_union); static_assert(!asl::is_union); static_assert(!asl::is_union); static_assert(!asl::is_union); static_assert(!asl::is_union); static_assert(!asl::is_union); static_assert(!asl::is_union); static_assert(!asl::is_union); static_assert(!asl::is_union); static_assert(!asl::is_union); static_assert(!asl::is_union); static_assert(asl::is_union); static_assert(asl::is_union); static_assert(!asl::is_union); static_assert(!asl::is_union); static_assert(!asl::is_union); static_assert(!asl::is_union); static_assert(!asl::is_enum); static_assert(!asl::is_enum); static_assert(!asl::is_enum); static_assert(!asl::is_enum); static_assert(!asl::is_enum); static_assert(!asl::is_enum); static_assert(!asl::is_enum); static_assert(!asl::is_enum); static_assert(!asl::is_enum); static_assert(!asl::is_enum); static_assert(!asl::is_enum); static_assert(!asl::is_enum); static_assert(!asl::is_enum); static_assert(!asl::is_enum); static_assert(!asl::is_enum); static_assert(!asl::is_enum); static_assert(!asl::is_enum); static_assert(!asl::is_enum); static_assert(!asl::is_enum); static_assert(!asl::is_enum); static_assert(!asl::is_enum); static_assert(!asl::is_enum); static_assert(!asl::is_enum); static_assert(!asl::is_enum); static_assert(!asl::is_enum); static_assert(asl::is_enum); static_assert(asl::is_enum); static_assert(!asl::is_enum); static_assert(!asl::is_enum); static_assert(asl::is_enum); static_assert(asl::is_enum); 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_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_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_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_ptr); static_assert(!asl::is_ptr); static_assert(!asl::is_ptr); static_assert(!asl::is_ptr); 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_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_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_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_ref); static_assert(!asl::is_lref); static_assert(!asl::is_lref); static_assert(!asl::is_lref); static_assert(!asl::is_lref); static_assert(!asl::is_lref); static_assert(!asl::is_lref); static_assert(!asl::is_lref); static_assert(!asl::is_lref); static_assert(!asl::is_lref); static_assert(!asl::is_lref); static_assert(!asl::is_lref); static_assert(!asl::is_lref); static_assert(!asl::is_lref); static_assert(asl::is_lref); static_assert(asl::is_lref); static_assert(!asl::is_lref); static_assert(!asl::is_lref); static_assert(!asl::is_lref); static_assert(!asl::is_lref); static_assert(asl::is_lref); static_assert(!asl::is_lref); static_assert(!asl::is_lref); static_assert(!asl::is_lref); static_assert(!asl::is_lref); static_assert(!asl::is_lref); static_assert(!asl::is_lref); static_assert(!asl::is_lref); static_assert(!asl::is_lref); static_assert(asl::is_lref); static_assert(!asl::is_lref); static_assert(!asl::is_lref); static_assert(!asl::is_lref); static_assert(!asl::is_lref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_rref); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(asl::is_member_ptr); static_assert(asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_object_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_member_func_ptr); static_assert(!asl::is_compound); static_assert(!asl::is_compound); static_assert(!asl::is_compound); static_assert(!asl::is_compound); static_assert(!asl::is_compound); static_assert(!asl::is_compound); static_assert(!asl::is_compound); static_assert(asl::is_compound); static_assert(asl::is_compound); static_assert(asl::is_compound); static_assert(asl::is_compound); static_assert(asl::is_compound); static_assert(asl::is_compound); static_assert(asl::is_compound); static_assert(asl::is_compound); static_assert(asl::is_compound); static_assert(asl::is_compound); static_assert(asl::is_compound); static_assert(asl::is_compound); static_assert(asl::is_compound); static_assert(asl::is_compound); static_assert(asl::is_compound); static_assert(asl::is_compound); static_assert(asl::is_compound); static_assert(asl::is_compound); static_assert(asl::is_compound); static_assert(asl::is_compound); static_assert(asl::is_compound); static_assert(asl::is_compound); static_assert(asl::is_compound); static_assert(asl::is_compound); static_assert(asl::is_compound); static_assert(asl::is_compound); static_assert(asl::is_scalar); static_assert(!asl::is_scalar); static_assert(asl::is_scalar); static_assert(asl::is_scalar); static_assert(asl::is_scalar); static_assert(asl::is_scalar); static_assert(asl::is_scalar); static_assert(asl::is_scalar); static_assert(asl::is_scalar); static_assert(asl::is_scalar); static_assert(asl::is_scalar); static_assert(asl::is_scalar); static_assert(asl::is_scalar); static_assert(asl::is_scalar); static_assert(!asl::is_scalar); static_assert(!asl::is_scalar); static_assert(!asl::is_scalar); static_assert(!asl::is_scalar); static_assert(!asl::is_scalar); static_assert(!asl::is_scalar); static_assert(asl::is_scalar); static_assert(!asl::is_scalar); static_assert(!asl::is_scalar); static_assert(!asl::is_scalar); static_assert(!asl::is_scalar); static_assert(!asl::is_scalar); static_assert(!asl::is_scalar); static_assert(!asl::is_scalar); static_assert(!asl::is_scalar); static_assert(asl::is_scalar); static_assert(!asl::is_scalar); static_assert(asl::is_scalar); static_assert(asl::is_scalar); 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_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_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); int main() { return 0; }