https://gcc.gnu.org/g:219f801ef0001ce959ba231b975752f95a626e68
commit r16-8521-g219f801ef0001ce959ba231b975752f95a626e68 Author: Jakub Jelinek <[email protected]> Date: Wed Apr 8 07:50:45 2026 +0200 c++, libstdc++: Remove is_consteval_only* traits The following patch implements LWG4555. 2026-04-08 Jakub Jelinek <[email protected]> gcc/cp/ * constraint.cc (diagnose_trait_expr): Remove CPTK_IS_CONSTEVAL_ONLY handling. * metafns.gperf (enum metafn_code): Remove METAFN_IS_CONSTEVAL_ONLY_TYPE. (is_consteval_only_type): Remove. * semantics.cc (trait_expr_value, finish_trait_expr): Remove CPTK_IS_CONSTEVAL_ONLY handling. * cp-trait.def (__builtin_is_consteval_only): Remove. * metafns.h: Regenerate. * reflect.cc (eval_is_consteval_only_type): Remove. (process_metafunction): Don't handle METAFN_IS_CONSTEVAL_ONLY_TYPE. gcc/testsuite/ * g++.dg/reflect/is_consteval_only1.C: Remove. * g++.dg/reflect/eh1.C: Remove is_consteval_only_type tests. * g++.dg/reflect/eh2.C: Likewise. * g++.dg/reflect/type_trait5.C: Likewise. libstdc++-v3/ * include/std/type_traits (std::is_consteval_only, std::is_consteval_only_v): Remove. * include/std/meta (std::meta::is_consteval_only_type): Remove. * src/c++23/std.cc.in: Don't export std::is_consteval_only, std::is_consteval_only_v and std::meta::is_consteval_only_type. * testsuite/20_util/is_consteval_only/requirements/explicit_instantiation.cc: Remove. * testsuite/20_util/is_consteval_only/requirements/typedefs.cc: Remove. * testsuite/20_util/is_consteval_only/value.cc: Remove. * testsuite/20_util/variable_templates_for_traits.cc: Remove is_consteval_only_v tests. Reviewed-by: Jason Merrill <[email protected]> Reviewed-by: Jonathan Wakely <[email protected]> Diff: --- gcc/cp/constraint.cc | 3 - gcc/cp/cp-trait.def | 1 - gcc/cp/metafns.gperf | 2 - gcc/cp/metafns.h | 755 ++++++++++----------- gcc/cp/reflect.cc | 13 - gcc/cp/semantics.cc | 4 - gcc/testsuite/g++.dg/reflect/eh1.C | 4 - gcc/testsuite/g++.dg/reflect/eh2.C | 1 - gcc/testsuite/g++.dg/reflect/is_consteval_only1.C | 83 --- gcc/testsuite/g++.dg/reflect/type_trait5.C | 18 - libstdc++-v3/include/std/meta | 1 - libstdc++-v3/include/std/type_traits | 18 - libstdc++-v3/src/c++23/std.cc.in | 5 - .../requirements/explicit_instantiation.cc | 12 - .../is_consteval_only/requirements/typedefs.cc | 16 - .../testsuite/20_util/is_consteval_only/value.cc | 30 - .../20_util/variable_templates_for_traits.cc | 3 - 17 files changed, 376 insertions(+), 593 deletions(-) diff --git a/gcc/cp/constraint.cc b/gcc/cp/constraint.cc index 0e0bcb2c90fc..6fe75b6b8f0e 100644 --- a/gcc/cp/constraint.cc +++ b/gcc/cp/constraint.cc @@ -3354,9 +3354,6 @@ diagnose_trait_expr (location_t loc, tree expr, tree args) case CPTK_IS_VOLATILE: inform (loc, "%qT is not a volatile type", t1); break; - case CPTK_IS_CONSTEVAL_ONLY: - inform (decl_loc, "%qT is not consteval-only", t1); - break; case CPTK_IS_STRUCTURAL: inform (decl_loc, "%qT is not a structural type", t1); structural_type_p (t1, /*explain=*/true); diff --git a/gcc/cp/cp-trait.def b/gcc/cp/cp-trait.def index f1b40f2a6d87..73cb8fbb8639 100644 --- a/gcc/cp/cp-trait.def +++ b/gcc/cp/cp-trait.def @@ -69,7 +69,6 @@ DEFTRAIT_EXPR (IS_BASE_OF, "__is_base_of", 2) DEFTRAIT_EXPR (IS_BOUNDED_ARRAY, "__is_bounded_array", 1) DEFTRAIT_EXPR (IS_CLASS, "__is_class", 1) DEFTRAIT_EXPR (IS_CONST, "__is_const", 1) -DEFTRAIT_EXPR (IS_CONSTEVAL_ONLY, "__builtin_is_consteval_only", 1) DEFTRAIT_EXPR (IS_CONSTRUCTIBLE, "__is_constructible", -1) DEFTRAIT_EXPR (IS_CONVERTIBLE, "__is_convertible", 2) DEFTRAIT_EXPR (IS_DESTRUCTIBLE, "__is_destructible", 1) diff --git a/gcc/cp/metafns.gperf b/gcc/cp/metafns.gperf index 7fd6a6a3dd80..7e766c0a3188 100644 --- a/gcc/cp/metafns.gperf +++ b/gcc/cp/metafns.gperf @@ -174,7 +174,6 @@ enum metafn_code { METAFN_IS_ABSTRACT_TYPE, METAFN_IS_FINAL_TYPE, METAFN_IS_AGGREGATE_TYPE, - METAFN_IS_CONSTEVAL_ONLY_TYPE, METAFN_IS_STRUCTURAL_TYPE, METAFN_IS_SIGNED_TYPE, METAFN_IS_UNSIGNED_TYPE, @@ -623,7 +622,6 @@ is_polymorphic_type, METAFN_IS_POLYMORPHIC_TYPE, METAFN_KIND_BOOL_TINFO, is_abstract_type, METAFN_IS_ABSTRACT_TYPE, METAFN_KIND_BOOL_TINFO, is_final_type, METAFN_IS_FINAL_TYPE, METAFN_KIND_BOOL_TINFO, is_aggregate_type, METAFN_IS_AGGREGATE_TYPE, METAFN_KIND_BOOL_TINFO, -is_consteval_only_type, METAFN_IS_CONSTEVAL_ONLY_TYPE, METAFN_KIND_BOOL_TINFO, is_structural_type, METAFN_IS_STRUCTURAL_TYPE, METAFN_KIND_BOOL_TINFO, is_signed_type, METAFN_IS_SIGNED_TYPE, METAFN_KIND_BOOL_TINFO, is_unsigned_type, METAFN_IS_UNSIGNED_TYPE, METAFN_KIND_BOOL_TINFO, diff --git a/gcc/cp/metafns.h b/gcc/cp/metafns.h index c9644edb99ef..f62f39f90fd7 100644 --- a/gcc/cp/metafns.h +++ b/gcc/cp/metafns.h @@ -202,7 +202,6 @@ enum metafn_code { METAFN_IS_ABSTRACT_TYPE, METAFN_IS_FINAL_TYPE, METAFN_IS_AGGREGATE_TYPE, - METAFN_IS_CONSTEVAL_ONLY_TYPE, METAFN_IS_STRUCTURAL_TYPE, METAFN_IS_SIGNED_TYPE, METAFN_IS_UNSIGNED_TYPE, @@ -486,7 +485,7 @@ enum metafn_kind { = (METAFN_KIND_ARGS_INPUT_RANGE << METAFN_KIND_SHIFT) | METAFN_KIND_RET_U8STRING_VIEW }; -#line 462 "metafns.gperf" +#line 461 "metafns.gperf" struct metafn_info { /* A name within "std::meta::" (or "std::meta::access_context::"). */ @@ -522,10 +521,10 @@ metafn_lookup::hash (const char *str, size_t len) 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, - 821, 821, 821, 821, 821, 5, 45, 145, 10, 45, - 190, 5, 55, 35, 115, 20, 346, 0, 60, 110, - 0, 219, 0, 40, 35, 20, 25, 160, 5, 80, - 0, 183, 45, 821, 821, 821, 821, 821, 821, 821, + 821, 821, 821, 821, 821, 5, 10, 145, 10, 45, + 190, 5, 55, 35, 154, 20, 253, 0, 60, 110, + 0, 219, 0, 40, 35, 20, 25, 160, 5, 253, + 0, 200, 20, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, @@ -597,7 +596,7 @@ metafn_lookup::find (const char *str, size_t len) { enum { - TOTAL_KEYWORDS = 238, + TOTAL_KEYWORDS = 237, MIN_WORD_LENGTH = 4, MAX_WORD_LENGTH = 40, MIN_HASH_VALUE = 39, @@ -610,481 +609,479 @@ metafn_lookup::find (const char *str, size_t len) #endif static const struct metafn_info wordlist[] = { -#line 666 "metafns.gperf" +#line 664 "metafns.gperf" {"rank", METAFN_RANK, METAFN_KIND_SIZE_T_TINFO,}, -#line 595 "metafns.gperf" +#line 594 "metafns.gperf" {"is_void_type", METAFN_IS_VOID_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 600 "metafns.gperf" +#line 599 "metafns.gperf" {"is_pointer_type", METAFN_IS_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 503 "metafns.gperf" +#line 502 "metafns.gperf" {"is_volatile", METAFN_IS_VOLATILE, METAFN_KIND_BOOL_INFO,}, -#line 549 "metafns.gperf" +#line 548 "metafns.gperf" {"is_value", METAFN_IS_VALUE, METAFN_KIND_BOOL_INFO,}, -#line 556 "metafns.gperf" +#line 555 "metafns.gperf" {"is_base", METAFN_IS_BASE, METAFN_KIND_BOOL_INFO,}, -#line 488 "metafns.gperf" +#line 487 "metafns.gperf" {"is_private", METAFN_IS_PRIVATE, METAFN_KIND_BOOL_INFO,}, -#line 517 "metafns.gperf" +#line 516 "metafns.gperf" {"is_variable", METAFN_IS_VARIABLE, METAFN_KIND_BOOL_INFO,}, -#line 672 "metafns.gperf" +#line 670 "metafns.gperf" {"is_nothrow_convertible_type", METAFN_IS_NOTHROW_CONVERTIBLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,}, -#line 651 "metafns.gperf" +#line 649 "metafns.gperf" {"is_nothrow_constructible_type", METAFN_IS_NOTHROW_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,}, -#line 677 "metafns.gperf" +#line 675 "metafns.gperf" {"is_nothrow_invocable_type", METAFN_IS_NOTHROW_INVOCABLE_TYPE, METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,}, -#line 656 "metafns.gperf" +#line 654 "metafns.gperf" {"is_nothrow_copy_assignable_type", METAFN_IS_NOTHROW_COPY_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 678 "metafns.gperf" +#line 676 "metafns.gperf" {"is_nothrow_invocable_r_type", METAFN_IS_NOTHROW_INVOCABLE_R_TYPE, METAFN_KIND_BOOL_TINFO_TINFO_REFLECTION_RANGET,}, -#line 653 "metafns.gperf" +#line 651 "metafns.gperf" {"is_nothrow_copy_constructible_type", METAFN_IS_NOTHROW_COPY_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 669 "metafns.gperf" +#line 667 "metafns.gperf" {"is_base_of_type", METAFN_IS_BASE_OF_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,}, -#line 657 "metafns.gperf" +#line 655 "metafns.gperf" {"is_nothrow_move_assignable_type", METAFN_IS_NOTHROW_MOVE_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 668 "metafns.gperf" +#line 666 "metafns.gperf" {"is_same_type", METAFN_IS_SAME_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,}, -#line 654 "metafns.gperf" +#line 652 "metafns.gperf" {"is_nothrow_move_constructible_type", METAFN_IS_NOTHROW_MOVE_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 541 "metafns.gperf" +#line 540 "metafns.gperf" {"is_variable_template", METAFN_IS_VARIABLE_TEMPLATE, METAFN_KIND_BOOL_INFO,}, -#line 596 "metafns.gperf" +#line 702 "metafns.gperf" + {"variant_size", METAFN_VARIANT_SIZE, METAFN_KIND_SIZE_T_TINFO,}, +#line 595 "metafns.gperf" {"is_null_pointer_type", METAFN_IS_NULL_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 655 "metafns.gperf" +#line 653 "metafns.gperf" {"is_nothrow_assignable_type", METAFN_IS_NOTHROW_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,}, -#line 660 "metafns.gperf" +#line 517 "metafns.gperf" + {"is_type", METAFN_IS_TYPE, METAFN_KIND_BOOL_INFO,}, +#line 658 "metafns.gperf" {"is_nothrow_destructible_type", METAFN_IS_NOTHROW_DESTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 486 "metafns.gperf" +#line 485 "metafns.gperf" {"is_public", METAFN_IS_PUBLIC, METAFN_KIND_BOOL_INFO,}, -#line 498 "metafns.gperf" +#line 497 "metafns.gperf" {"is_noexcept", METAFN_IS_NOEXCEPT, METAFN_KIND_BOOL_INFO,}, -#line 584 "metafns.gperf" +#line 583 "metafns.gperf" {"extract", METAFN_EXTRACT, METAFN_KIND_TEMPLATE_PARM_INFO,}, -#line 705 "metafns.gperf" +#line 703 "metafns.gperf" {"variant_alternative", METAFN_VARIANT_ALTERNATIVE, METAFN_KIND_INFO_SIZE_T_TINFO,}, -#line 622 "metafns.gperf" +#line 704 "metafns.gperf" + {"type_order", METAFN_TYPE_ORDER, METAFN_KIND_STRONG_ORDERING_TINFO_TINFO,}, +#line 621 "metafns.gperf" {"is_polymorphic_type", METAFN_IS_POLYMORPHIC_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 522 "metafns.gperf" +#line 521 "metafns.gperf" {"is_function", METAFN_IS_FUNCTION, METAFN_KIND_BOOL_INFO,}, -#line 519 "metafns.gperf" +#line 518 "metafns.gperf" {"is_namespace", METAFN_IS_NAMESPACE, METAFN_KIND_BOOL_INFO,}, -#line 475 "metafns.gperf" +#line 474 "metafns.gperf" {"symbol_of", METAFN_SYMBOL_OF, METAFN_KIND_STRING_VIEW_OPERATORS,}, -#line 674 "metafns.gperf" +#line 672 "metafns.gperf" {"is_pointer_interconvertible_base_of_type", METAFN_IS_POINTER_INTERCONVERTIBLE_BASE_OF_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,}, -#line 630 "metafns.gperf" +#line 628 "metafns.gperf" {"is_bounded_array_type", METAFN_IS_BOUNDED_ARRAY_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 704 "metafns.gperf" - {"variant_size", METAFN_VARIANT_SIZE, METAFN_KIND_SIZE_T_TINFO,}, -#line 502 "metafns.gperf" +#line 580 "metafns.gperf" + {"size_of", METAFN_SIZE_OF, METAFN_KIND_SIZE_T_INFO,}, +#line 501 "metafns.gperf" {"is_const", METAFN_IS_CONST, METAFN_KIND_BOOL_INFO,}, -#line 548 "metafns.gperf" +#line 547 "metafns.gperf" {"is_concept", METAFN_IS_CONCEPT, METAFN_KIND_BOOL_INFO,}, -#line 518 "metafns.gperf" - {"is_type", METAFN_IS_TYPE, METAFN_KIND_BOOL_INFO,}, -#line 575 "metafns.gperf" +#line 482 "metafns.gperf" + {"type_of", METAFN_TYPE_OF, METAFN_KIND_INFO_INFO,}, +#line 574 "metafns.gperf" {"bases_of", METAFN_BASES_OF, METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,}, -#line 540 "metafns.gperf" +#line 539 "metafns.gperf" {"is_function_template", METAFN_IS_FUNCTION_TEMPLATE, METAFN_KIND_BOOL_INFO,}, -#line 523 "metafns.gperf" +#line 522 "metafns.gperf" {"is_conversion_function", METAFN_IS_CONVERSION_FUNCTION, METAFN_KIND_BOOL_INFO,}, -#line 638 "metafns.gperf" +#line 636 "metafns.gperf" {"is_copy_assignable_type", METAFN_IS_COPY_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 671 "metafns.gperf" +#line 669 "metafns.gperf" {"is_convertible_type", METAFN_IS_CONVERTIBLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,}, -#line 661 "metafns.gperf" +#line 659 "metafns.gperf" {"is_implicit_lifetime_type", METAFN_IS_IMPLICIT_LIFETIME_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 706 "metafns.gperf" - {"type_order", METAFN_TYPE_ORDER, METAFN_KIND_STRONG_ORDERING_TINFO_TINFO,}, -#line 539 "metafns.gperf" +#line 519 "metafns.gperf" + {"is_type_alias", METAFN_IS_TYPE_ALIAS, METAFN_KIND_BOOL_INFO,}, +#line 538 "metafns.gperf" {"is_template", METAFN_IS_TEMPLATE, METAFN_KIND_BOOL_INFO,}, -#line 652 "metafns.gperf" +#line 650 "metafns.gperf" {"is_nothrow_default_constructible_type", METAFN_IS_NOTHROW_DEFAULT_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 585 "metafns.gperf" +#line 584 "metafns.gperf" {"can_substitute", METAFN_CAN_SUBSTITUTE, METAFN_KIND_BOOL_INFO_REFLECTION_RANGE,}, -#line 544 "metafns.gperf" +#line 543 "metafns.gperf" {"is_conversion_function_template", METAFN_IS_CONVERSION_FUNCTION_TEMPLATE, METAFN_KIND_BOOL_INFO,}, -#line 532 "metafns.gperf" +#line 531 "metafns.gperf" {"is_copy_assignment", METAFN_IS_COPY_ASSIGNMENT, METAFN_KIND_BOOL_INFO,}, -#line 635 "metafns.gperf" - {"is_copy_constructible_type", METAFN_IS_COPY_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 581 "metafns.gperf" - {"size_of", METAFN_SIZE_OF, METAFN_KIND_SIZE_T_INFO,}, -#line 483 "metafns.gperf" - {"type_of", METAFN_TYPE_OF, METAFN_KIND_INFO_INFO,}, -#line 520 "metafns.gperf" - {"is_type_alias", METAFN_IS_TYPE_ALIAS, METAFN_KIND_BOOL_INFO,}, #line 633 "metafns.gperf" + {"is_copy_constructible_type", METAFN_IS_COPY_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,}, +#line 631 "metafns.gperf" {"is_constructible_type", METAFN_IS_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,}, -#line 641 "metafns.gperf" +#line 639 "metafns.gperf" {"is_swappable_type", METAFN_IS_SWAPPABLE_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 511 "metafns.gperf" - {"has_module_linkage", METAFN_HAS_MODULE_LINKAGE, METAFN_KIND_BOOL_INFO,}, -#line 538 "metafns.gperf" +#line 537 "metafns.gperf" {"is_vararg_function", METAFN_IS_VARARG_FUNCTION, METAFN_KIND_BOOL_INFO,}, -#line 529 "metafns.gperf" +#line 528 "metafns.gperf" {"is_copy_constructor", METAFN_IS_COPY_CONSTRUCTOR, METAFN_KIND_BOOL_INFO,}, -#line 702 "metafns.gperf" +#line 700 "metafns.gperf" {"tuple_size", METAFN_TUPLE_SIZE, METAFN_KIND_SIZE_T_TINFO,}, -#line 565 "metafns.gperf" +#line 564 "metafns.gperf" {"variable_of", METAFN_VARIABLE_OF, METAFN_KIND_INFO_INFO,}, -#line 609 "metafns.gperf" +#line 608 "metafns.gperf" {"is_reflection_type", METAFN_IS_REFLECTION_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 583 "metafns.gperf" +#line 582 "metafns.gperf" {"bit_size_of", METAFN_BIT_SIZE_OF, METAFN_KIND_SIZE_T_INFO,}, -#line 612 "metafns.gperf" +#line 611 "metafns.gperf" {"is_fundamental_type", METAFN_IS_FUNDAMENTAL_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 673 "metafns.gperf" +#line 671 "metafns.gperf" {"is_layout_compatible_type", METAFN_IS_LAYOUT_COMPATIBLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,}, -#line 709 "metafns.gperf" +#line 707 "metafns.gperf" {"current", METAFN_ACCESS_CONTEXT_CURRENT, METAFN_KIND_ACCESS_CONTEXT_VOID,}, -#line 571 "metafns.gperf" +#line 570 "metafns.gperf" {"current_function", METAFN_CURRENT_FUNCTION, METAFN_KIND_INFO_VOID,}, -#line 547 "metafns.gperf" +#line 546 "metafns.gperf" {"is_constructor_template", METAFN_IS_CONSTRUCTOR_TEMPLATE, METAFN_KIND_BOOL_INFO,}, -#line 696 "metafns.gperf" +#line 694 "metafns.gperf" {"common_type", METAFN_COMMON_TYPE, METAFN_KIND_INFO_REFLECTION_RANGET,}, -#line 639 "metafns.gperf" +#line 637 "metafns.gperf" {"is_move_assignable_type", METAFN_IS_MOVE_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 697 "metafns.gperf" +#line 695 "metafns.gperf" {"common_reference", METAFN_COMMON_REFERENCE, METAFN_KIND_INFO_REFLECTION_RANGET,}, -#line 703 "metafns.gperf" +#line 701 "metafns.gperf" {"tuple_element", METAFN_TUPLE_ELEMENT, METAFN_KIND_INFO_SIZE_T_TINFO,}, -#line 589 "metafns.gperf" +#line 588 "metafns.gperf" {"reflect_function", METAFN_REFLECT_FUNCTION, METAFN_KIND_INFO_TEMPLATE_PARM_REF,}, -#line 509 "metafns.gperf" - {"has_automatic_storage_duration", METAFN_HAS_AUTOMATIC_STORAGE_DURATION, METAFN_KIND_BOOL_INFO,}, -#line 533 "metafns.gperf" +#line 510 "metafns.gperf" + {"has_module_linkage", METAFN_HAS_MODULE_LINKAGE, METAFN_KIND_BOOL_INFO,}, +#line 532 "metafns.gperf" {"is_move_assignment", METAFN_IS_MOVE_ASSIGNMENT, METAFN_KIND_BOOL_INFO,}, -#line 527 "metafns.gperf" +#line 526 "metafns.gperf" {"is_constructor", METAFN_IS_CONSTRUCTOR, METAFN_KIND_BOOL_INFO,}, -#line 558 "metafns.gperf" - {"has_parent", METAFN_HAS_PARENT, METAFN_KIND_BOOL_INFO,}, -#line 636 "metafns.gperf" +#line 634 "metafns.gperf" {"is_move_constructible_type", METAFN_IS_MOVE_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 659 "metafns.gperf" +#line 657 "metafns.gperf" {"is_nothrow_swappable_type", METAFN_IS_NOTHROW_SWAPPABLE_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 619 "metafns.gperf" +#line 618 "metafns.gperf" {"is_trivially_copyable_type", METAFN_IS_TRIVIALLY_COPYABLE_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 610 "metafns.gperf" +#line 609 "metafns.gperf" {"is_reference_type", METAFN_IS_REFERENCE_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 602 "metafns.gperf" - {"is_rvalue_reference_type", METAFN_IS_RVALUE_REFERENCE_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 658 "metafns.gperf" +#line 656 "metafns.gperf" {"is_nothrow_swappable_with_type", METAFN_IS_NOTHROW_SWAPPABLE_WITH_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,}, -#line 643 "metafns.gperf" +#line 641 "metafns.gperf" {"is_trivially_constructible_type", METAFN_IS_TRIVIALLY_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,}, -#line 640 "metafns.gperf" - {"is_swappable_with_type", METAFN_IS_SWAPPABLE_WITH_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,}, -#line 648 "metafns.gperf" +#line 646 "metafns.gperf" {"is_trivially_copy_assignable_type", METAFN_IS_TRIVIALLY_COPY_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 698 "metafns.gperf" +#line 696 "metafns.gperf" {"underlying_type", METAFN_UNDERLYING_TYPE, METAFN_KIND_INFO_TINFO,}, -#line 645 "metafns.gperf" +#line 643 "metafns.gperf" {"is_trivially_copy_constructible_type", METAFN_IS_TRIVIALLY_COPY_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 616 "metafns.gperf" +#line 615 "metafns.gperf" {"is_member_pointer_type", METAFN_IS_MEMBER_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 586 "metafns.gperf" +#line 585 "metafns.gperf" {"substitute", METAFN_SUBSTITUTE, METAFN_KIND_INFO_INFO_REFLECTION_RANGE,}, -#line 564 "metafns.gperf" +#line 563 "metafns.gperf" {"parameters_of", METAFN_PARAMETERS_OF, METAFN_KIND_VECTOR_INFO_INFO,}, -#line 530 "metafns.gperf" +#line 529 "metafns.gperf" {"is_move_constructor", METAFN_IS_MOVE_CONSTRUCTOR, METAFN_KIND_BOOL_INFO,}, -#line 557 "metafns.gperf" - {"has_default_member_initializer", METAFN_HAS_DEFAULT_MEMBER_INITIALIZER, METAFN_KIND_BOOL_INFO,}, -#line 526 "metafns.gperf" +#line 525 "metafns.gperf" {"is_special_member_function", METAFN_IS_SPECIAL_MEMBER_FUNCTION, METAFN_KIND_BOOL_INFO,}, -#line 621 "metafns.gperf" - {"is_empty_type", METAFN_IS_EMPTY_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 637 "metafns.gperf" +#line 635 "metafns.gperf" {"is_assignable_type", METAFN_IS_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,}, -#line 601 "metafns.gperf" - {"is_lvalue_reference_type", METAFN_IS_LVALUE_REFERENCE_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 537 "metafns.gperf" - {"has_default_argument", METAFN_HAS_DEFAULT_ARGUMENT, METAFN_KIND_BOOL_INFO,}, -#line 700 "metafns.gperf" +#line 508 "metafns.gperf" + {"has_automatic_storage_duration", METAFN_HAS_AUTOMATIC_STORAGE_DURATION, METAFN_KIND_BOOL_INFO,}, +#line 698 "metafns.gperf" {"unwrap_reference", METAFN_UNWRAP_REFERENCE, METAFN_KIND_INFO_TINFO,}, -#line 531 "metafns.gperf" +#line 530 "metafns.gperf" {"is_assignment", METAFN_IS_ASSIGNMENT, METAFN_KIND_BOOL_INFO,}, -#line 618 "metafns.gperf" - {"is_volatile_type", METAFN_IS_VOLATILE_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 552 "metafns.gperf" +#line 557 "metafns.gperf" + {"has_parent", METAFN_HAS_PARENT, METAFN_KIND_BOOL_INFO,}, +#line 551 "metafns.gperf" {"is_class_member", METAFN_IS_CLASS_MEMBER, METAFN_KIND_BOOL_INFO,}, -#line 611 "metafns.gperf" +#line 610 "metafns.gperf" {"is_arithmetic_type", METAFN_IS_ARITHMETIC_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 553 "metafns.gperf" +#line 552 "metafns.gperf" {"is_namespace_member", METAFN_IS_NAMESPACE_MEMBER, METAFN_KIND_BOOL_INFO,}, -#line 574 "metafns.gperf" +#line 573 "metafns.gperf" {"members_of", METAFN_MEMBERS_OF, METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,}, -#line 487 "metafns.gperf" +#line 620 "metafns.gperf" + {"is_empty_type", METAFN_IS_EMPTY_TYPE, METAFN_KIND_BOOL_TINFO,}, +#line 486 "metafns.gperf" {"is_protected", METAFN_IS_PROTECTED, METAFN_KIND_BOOL_INFO,}, -#line 514 "metafns.gperf" - {"has_linkage", METAFN_HAS_LINKAGE, METAFN_KIND_BOOL_INFO,}, -#line 478 "metafns.gperf" +#line 617 "metafns.gperf" + {"is_volatile_type", METAFN_IS_VOLATILE_TYPE, METAFN_KIND_BOOL_TINFO,}, +#line 477 "metafns.gperf" {"identifier_of", METAFN_IDENTIFIER_OF, METAFN_KIND_STRING_VIEW_INFO,}, -#line 687 "metafns.gperf" +#line 685 "metafns.gperf" {"add_rvalue_reference", METAFN_ADD_RVALUE_REFERENCE, METAFN_KIND_INFO_TINFO,}, -#line 562 "metafns.gperf" +#line 561 "metafns.gperf" {"template_of", METAFN_TEMPLATE_OF, METAFN_KIND_INFO_INFO,}, -#line 521 "metafns.gperf" +#line 520 "metafns.gperf" {"is_namespace_alias", METAFN_IS_NAMESPACE_ALIAS, METAFN_KIND_BOOL_INFO,}, -#line 667 "metafns.gperf" +#line 556 "metafns.gperf" + {"has_default_member_initializer", METAFN_HAS_DEFAULT_MEMBER_INITIALIZER, METAFN_KIND_BOOL_INFO,}, +#line 665 "metafns.gperf" {"extent", METAFN_EXTENT, METAFN_KIND_SIZE_T_TINFO_UNSIGNED,}, -#line 605 "metafns.gperf" +#line 604 "metafns.gperf" {"is_enum_type", METAFN_IS_ENUM_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 542 "metafns.gperf" +#line 541 "metafns.gperf" {"is_class_template", METAFN_IS_CLASS_TEMPLATE, METAFN_KIND_BOOL_INFO,}, -#line 627 "metafns.gperf" +#line 625 "metafns.gperf" {"is_structural_type", METAFN_IS_STRUCTURAL_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 617 "metafns.gperf" - {"is_const_type", METAFN_IS_CONST_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 573 "metafns.gperf" +#line 572 "metafns.gperf" {"current_namespace", METAFN_CURRENT_NAMESPACE, METAFN_KIND_INFO_VOID,}, -#line 497 "metafns.gperf" - {"is_explicit", METAFN_IS_EXPLICIT, METAFN_KIND_BOOL_INFO,}, -#line 693 "metafns.gperf" +#line 536 "metafns.gperf" + {"has_default_argument", METAFN_HAS_DEFAULT_ARGUMENT, METAFN_KIND_BOOL_INFO,}, +#line 691 "metafns.gperf" {"add_pointer", METAFN_ADD_POINTER, METAFN_KIND_INFO_TINFO,}, -#line 649 "metafns.gperf" +#line 647 "metafns.gperf" {"is_trivially_move_assignable_type", METAFN_IS_TRIVIALLY_MOVE_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 515 "metafns.gperf" - {"is_complete_type", METAFN_IS_COMPLETE_TYPE, METAFN_KIND_BOOL_INFO,}, -#line 646 "metafns.gperf" +#line 644 "metafns.gperf" {"is_trivially_move_constructible_type", METAFN_IS_TRIVIALLY_MOVE_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 614 "metafns.gperf" +#line 613 "metafns.gperf" {"is_scalar_type", METAFN_IS_SCALAR_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 490 "metafns.gperf" +#line 489 "metafns.gperf" {"is_pure_virtual", METAFN_IS_PURE_VIRTUAL, METAFN_KIND_BOOL_INFO,}, -#line 535 "metafns.gperf" +#line 534 "metafns.gperf" {"is_function_parameter", METAFN_IS_FUNCTION_PARAMETER, METAFN_KIND_BOOL_INFO,}, -#line 516 "metafns.gperf" +#line 515 "metafns.gperf" {"is_enumerable_type", METAFN_IS_ENUMERABLE_TYPE, METAFN_KIND_BOOL_INFO,}, -#line 608 "metafns.gperf" - {"is_function_type", METAFN_IS_FUNCTION_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 559 "metafns.gperf" +#line 616 "metafns.gperf" + {"is_const_type", METAFN_IS_CONST_TYPE, METAFN_KIND_BOOL_TINFO,}, +#line 496 "metafns.gperf" + {"is_explicit", METAFN_IS_EXPLICIT, METAFN_KIND_BOOL_INFO,}, +#line 558 "metafns.gperf" {"parent_of", METAFN_PARENT_OF, METAFN_KIND_INFO_INFO,}, -#line 554 "metafns.gperf" +#line 553 "metafns.gperf" {"is_nonstatic_data_member", METAFN_IS_NONSTATIC_DATA_MEMBER, METAFN_KIND_BOOL_INFO,}, -#line 551 "metafns.gperf" +#line 513 "metafns.gperf" + {"has_linkage", METAFN_HAS_LINKAGE, METAFN_KIND_BOOL_INFO,}, +#line 514 "metafns.gperf" + {"is_complete_type", METAFN_IS_COMPLETE_TYPE, METAFN_KIND_BOOL_INFO,}, +#line 550 "metafns.gperf" {"is_structured_binding", METAFN_IS_STRUCTURED_BINDING, METAFN_KIND_BOOL_INFO,}, -#line 504 "metafns.gperf" +#line 607 "metafns.gperf" + {"is_function_type", METAFN_IS_FUNCTION_TYPE, METAFN_KIND_BOOL_TINFO,}, +#line 503 "metafns.gperf" {"is_mutable_member", METAFN_IS_MUTABLE_MEMBER, METAFN_KIND_BOOL_INFO,}, -#line 647 "metafns.gperf" +#line 645 "metafns.gperf" {"is_trivially_assignable_type", METAFN_IS_TRIVIALLY_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,}, -#line 634 "metafns.gperf" +#line 632 "metafns.gperf" {"is_default_constructible_type", METAFN_IS_DEFAULT_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 536 "metafns.gperf" - {"is_explicit_object_parameter", METAFN_IS_EXPLICIT_OBJECT_PARAMETER, METAFN_KIND_BOOL_INFO,}, -#line 683 "metafns.gperf" - {"add_volatile", METAFN_ADD_VOLATILE, METAFN_KIND_INFO_TINFO,}, -#line 572 "metafns.gperf" +#line 571 "metafns.gperf" {"current_class", METAFN_CURRENT_CLASS, METAFN_KIND_INFO_VOID,}, -#line 579 "metafns.gperf" +#line 578 "metafns.gperf" {"enumerators_of", METAFN_ENUMERATORS_OF, METAFN_KIND_VECTOR_INFO_INFO,}, -#line 500 "metafns.gperf" +#line 499 "metafns.gperf" {"is_enumerator", METAFN_IS_ENUMERATOR, METAFN_KIND_BOOL_INFO,}, -#line 550 "metafns.gperf" +#line 549 "metafns.gperf" {"is_object", METAFN_IS_OBJECT, METAFN_KIND_BOOL_INFO,}, -#line 481 "metafns.gperf" +#line 480 "metafns.gperf" {"u8display_string_of", METAFN_U8DISPLAY_STRING_OF, METAFN_KIND_U8STRING_VIEW_INFO,}, -#line 604 "metafns.gperf" +#line 603 "metafns.gperf" {"is_member_function_pointer_type", METAFN_IS_MEMBER_FUNCTION_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 662 "metafns.gperf" - {"has_virtual_destructor", METAFN_HAS_VIRTUAL_DESTRUCTOR, METAFN_KIND_BOOL_TINFO,}, -#line 665 "metafns.gperf" - {"reference_converts_from_temporary", METAFN_REFERENCE_CONVERTS_FROM_TEMPORARY, METAFN_KIND_BOOL_TINFO_TINFO,}, -#line 528 "metafns.gperf" +#line 535 "metafns.gperf" + {"is_explicit_object_parameter", METAFN_IS_EXPLICIT_OBJECT_PARAMETER, METAFN_KIND_BOOL_INFO,}, +#line 527 "metafns.gperf" {"is_default_constructor", METAFN_IS_DEFAULT_CONSTRUCTOR, METAFN_KIND_BOOL_INFO,}, -#line 613 "metafns.gperf" +#line 687 "metafns.gperf" + {"make_unsigned", METAFN_MAKE_UNSIGNED, METAFN_KIND_INFO_TINFO,}, +#line 668 "metafns.gperf" + {"is_virtual_base_of_type", METAFN_IS_VIRTUAL_BASE_OF_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,}, +#line 612 "metafns.gperf" {"is_object_type", METAFN_IS_OBJECT_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 587 "metafns.gperf" +#line 586 "metafns.gperf" {"reflect_constant", METAFN_REFLECT_CONSTANT, METAFN_KIND_INFO_TEMPLATE_PARM,}, -#line 534 "metafns.gperf" +#line 533 "metafns.gperf" {"is_destructor", METAFN_IS_DESTRUCTOR, METAFN_KIND_BOOL_INFO,}, -#line 491 "metafns.gperf" - {"is_override", METAFN_IS_OVERRIDE, METAFN_KIND_BOOL_INFO,}, -#line 664 "metafns.gperf" - {"reference_constructs_from_temporary", METAFN_REFERENCE_CONSTRUCTS_FROM_TEMPORARY, METAFN_KIND_BOOL_TINFO_TINFO,}, -#line 566 "metafns.gperf" +#line 626 "metafns.gperf" + {"is_signed_type", METAFN_IS_SIGNED_TYPE, METAFN_KIND_BOOL_TINFO,}, +#line 663 "metafns.gperf" + {"reference_converts_from_temporary", METAFN_REFERENCE_CONVERTS_FROM_TEMPORARY, METAFN_KIND_BOOL_TINFO_TINFO,}, +#line 565 "metafns.gperf" {"return_type_of", METAFN_RETURN_TYPE_OF, METAFN_KIND_INFO_INFO,}, -#line 686 "metafns.gperf" +#line 684 "metafns.gperf" {"add_lvalue_reference", METAFN_ADD_LVALUE_REFERENCE, METAFN_KIND_INFO_TINFO,}, -#line 485 "metafns.gperf" +#line 484 "metafns.gperf" {"constant_of", METAFN_CONSTANT_OF, METAFN_KIND_INFO_INFO,}, -#line 681 "metafns.gperf" - {"remove_cv", METAFN_REMOVE_CV, METAFN_KIND_INFO_TINFO,}, -#line 650 "metafns.gperf" +#line 488 "metafns.gperf" + {"is_virtual", METAFN_IS_VIRTUAL, METAFN_KIND_BOOL_INFO,}, +#line 648 "metafns.gperf" {"is_trivially_destructible_type", METAFN_IS_TRIVIALLY_DESTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 684 "metafns.gperf" +#line 682 "metafns.gperf" {"add_cv", METAFN_ADD_CV, METAFN_KIND_INFO_TINFO,}, -#line 625 "metafns.gperf" - {"is_aggregate_type", METAFN_IS_AGGREGATE_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 590 "metafns.gperf" +#line 589 "metafns.gperf" {"reflect_constant_string", METAFN_REFLECT_CONSTANT_STRING, METAFN_KIND_INFO_INPUT_RANGE,}, -#line 563 "metafns.gperf" +#line 562 "metafns.gperf" {"template_arguments_of", METAFN_TEMPLATE_ARGUMENTS_OF, METAFN_KIND_VECTOR_INFO_INFO,}, -#line 578 "metafns.gperf" +#line 577 "metafns.gperf" {"subobjects_of", METAFN_SUBOBJECTS_OF, METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,}, -#line 580 "metafns.gperf" +#line 579 "metafns.gperf" {"offset_of", METAFN_OFFSET_OF, METAFN_KIND_MEMBER_OFFSET_INFO,}, -#line 644 "metafns.gperf" +#line 642 "metafns.gperf" {"is_trivially_default_constructible_type", METAFN_IS_TRIVIALLY_DEFAULT_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 685 "metafns.gperf" - {"remove_reference", METAFN_REMOVE_REFERENCE, METAFN_KIND_INFO_TINFO,}, -#line 543 "metafns.gperf" +#line 662 "metafns.gperf" + {"reference_constructs_from_temporary", METAFN_REFERENCE_CONSTRUCTS_FROM_TEMPORARY, METAFN_KIND_BOOL_TINFO_TINFO,}, +#line 542 "metafns.gperf" {"is_alias_template", METAFN_IS_ALIAS_TEMPLATE, METAFN_KIND_BOOL_INFO,}, -#line 689 "metafns.gperf" - {"make_unsigned", METAFN_MAKE_UNSIGNED, METAFN_KIND_INFO_TINFO,}, -#line 675 "metafns.gperf" +#line 673 "metafns.gperf" {"is_invocable_type", METAFN_IS_INVOCABLE_TYPE, METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,}, -#line 632 "metafns.gperf" +#line 630 "metafns.gperf" {"is_scoped_enum_type", METAFN_IS_SCOPED_ENUM_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 555 "metafns.gperf" +#line 554 "metafns.gperf" {"is_static_member", METAFN_IS_STATIC_MEMBER, METAFN_KIND_BOOL_INFO,}, -#line 682 "metafns.gperf" +#line 680 "metafns.gperf" {"add_const", METAFN_ADD_CONST, METAFN_KIND_INFO_TINFO,}, -#line 642 "metafns.gperf" +#line 640 "metafns.gperf" {"is_destructible_type", METAFN_IS_DESTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 607 "metafns.gperf" - {"is_class_type", METAFN_IS_CLASS_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 690 "metafns.gperf" - {"remove_extent", METAFN_REMOVE_EXTENT, METAFN_KIND_INFO_TINFO,}, -#line 676 "metafns.gperf" +#line 545 "metafns.gperf" + {"is_literal_operator_template", METAFN_IS_LITERAL_OPERATOR_TEMPLATE, METAFN_KIND_BOOL_INFO,}, +#line 601 "metafns.gperf" + {"is_rvalue_reference_type", METAFN_IS_RVALUE_REFERENCE_TYPE, METAFN_KIND_BOOL_TINFO,}, +#line 674 "metafns.gperf" {"is_invocable_r_type", METAFN_IS_INVOCABLE_R_TYPE, METAFN_KIND_BOOL_TINFO_TINFO_REFLECTION_RANGET,}, -#line 567 "metafns.gperf" +#line 638 "metafns.gperf" + {"is_swappable_with_type", METAFN_IS_SWAPPABLE_WITH_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,}, +#line 566 "metafns.gperf" {"is_accessible", METAFN_IS_ACCESSIBLE, METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,}, -#line 474 "metafns.gperf" +#line 473 "metafns.gperf" {"operator_of", METAFN_OPERATOR_OF, METAFN_KIND_OPERATORS_INFO,}, -#line 599 "metafns.gperf" +#line 624 "metafns.gperf" + {"is_aggregate_type", METAFN_IS_AGGREGATE_TYPE, METAFN_KIND_BOOL_TINFO,}, +#line 606 "metafns.gperf" + {"is_class_type", METAFN_IS_CLASS_TYPE, METAFN_KIND_BOOL_TINFO,}, +#line 491 "metafns.gperf" + {"is_final", METAFN_IS_FINAL, METAFN_KIND_BOOL_INFO,}, +#line 524 "metafns.gperf" + {"is_literal_operator", METAFN_IS_LITERAL_OPERATOR, METAFN_KIND_BOOL_INFO,}, +#line 600 "metafns.gperf" + {"is_lvalue_reference_type", METAFN_IS_LVALUE_REFERENCE_TYPE, METAFN_KIND_BOOL_TINFO,}, +#line 598 "metafns.gperf" {"is_array_type", METAFN_IS_ARRAY_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 679 "metafns.gperf" - {"remove_const", METAFN_REMOVE_CONST, METAFN_KIND_INFO_TINFO,}, -#line 506 "metafns.gperf" - {"is_rvalue_reference_qualified", METAFN_IS_RVALUE_REFERENCE_QUALIFIED, METAFN_KIND_BOOL_INFO,}, -#line 507 "metafns.gperf" - {"has_static_storage_duration", METAFN_HAS_STATIC_STORAGE_DURATION, METAFN_KIND_BOOL_INFO,}, -#line 691 "metafns.gperf" - {"remove_all_extents", METAFN_REMOVE_ALL_EXTENTS, METAFN_KIND_INFO_TINFO,}, -#line 512 "metafns.gperf" - {"has_external_linkage", METAFN_HAS_EXTERNAL_LINKAGE, METAFN_KIND_BOOL_INFO,}, -#line 694 "metafns.gperf" - {"remove_cvref", METAFN_REMOVE_CVREF, METAFN_KIND_INFO_TINFO,}, -#line 501 "metafns.gperf" +#line 500 "metafns.gperf" {"is_annotation", METAFN_IS_ANNOTATION, METAFN_KIND_BOOL_INFO,}, -#line 692 "metafns.gperf" - {"remove_pointer", METAFN_REMOVE_POINTER, METAFN_KIND_INFO_TINFO,}, -#line 505 "metafns.gperf" - {"is_lvalue_reference_qualified", METAFN_IS_LVALUE_REFERENCE_QUALIFIED, METAFN_KIND_BOOL_INFO,}, -#line 670 "metafns.gperf" - {"is_virtual_base_of_type", METAFN_IS_VIRTUAL_BASE_OF_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,}, -#line 593 "metafns.gperf" +#line 592 "metafns.gperf" {"is_data_member_spec", METAFN_IS_DATA_MEMBER_SPEC, METAFN_KIND_BOOL_INFO,}, -#line 628 "metafns.gperf" - {"is_signed_type", METAFN_IS_SIGNED_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 623 "metafns.gperf" - {"is_abstract_type", METAFN_IS_ABSTRACT_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 489 "metafns.gperf" - {"is_virtual", METAFN_IS_VIRTUAL, METAFN_KIND_BOOL_INFO,}, -#line 480 "metafns.gperf" +#line 506 "metafns.gperf" + {"has_static_storage_duration", METAFN_HAS_STATIC_STORAGE_DURATION, METAFN_KIND_BOOL_INFO,}, +#line 591 "metafns.gperf" + {"data_member_spec", METAFN_DATA_MEMBER_SPEC, METAFN_KIND_INFO_TINFO_DATA_MEMBER_OPTIONS,}, +#line 479 "metafns.gperf" {"display_string_of", METAFN_DISPLAY_STRING_OF, METAFN_KIND_STRING_VIEW_INFO,}, -#line 603 "metafns.gperf" +#line 602 "metafns.gperf" {"is_member_object_pointer_type", METAFN_IS_MEMBER_OBJECT_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 701 "metafns.gperf" - {"unwrap_ref_decay", METAFN_UNWRAP_REF_DECAY, METAFN_KIND_INFO_TINFO,}, -#line 626 "metafns.gperf" - {"is_consteval_only_type", METAFN_IS_CONSTEVAL_ONLY_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 615 "metafns.gperf" - {"is_compound_type", METAFN_IS_COMPOUND_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 476 "metafns.gperf" - {"u8symbol_of", METAFN_U8SYMBOL_OF, METAFN_KIND_U8STRING_VIEW_OPERATORS,}, -#line 493 "metafns.gperf" +#line 511 "metafns.gperf" + {"has_external_linkage", METAFN_HAS_EXTERNAL_LINKAGE, METAFN_KIND_BOOL_INFO,}, +#line 622 "metafns.gperf" + {"is_abstract_type", METAFN_IS_ABSTRACT_TYPE, METAFN_KIND_BOOL_TINFO,}, +#line 492 "metafns.gperf" {"is_deleted", METAFN_IS_DELETED, METAFN_KIND_BOOL_INFO,}, -#line 598 "metafns.gperf" +#line 597 "metafns.gperf" {"is_floating_point_type", METAFN_IS_FLOATING_POINT_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 546 "metafns.gperf" - {"is_literal_operator_template", METAFN_IS_LITERAL_OPERATOR_TEMPLATE, METAFN_KIND_BOOL_INFO,}, -#line 494 "metafns.gperf" +#line 587 "metafns.gperf" + {"reflect_object", METAFN_REFLECT_OBJECT, METAFN_KIND_INFO_TEMPLATE_PARM_REF,}, +#line 699 "metafns.gperf" + {"unwrap_ref_decay", METAFN_UNWRAP_REF_DECAY, METAFN_KIND_INFO_TINFO,}, +#line 493 "metafns.gperf" {"is_defaulted", METAFN_IS_DEFAULTED, METAFN_KIND_BOOL_INFO,}, -#line 592 "metafns.gperf" - {"data_member_spec", METAFN_DATA_MEMBER_SPEC, METAFN_KIND_INFO_TINFO_DATA_MEMBER_OPTIONS,}, -#line 484 "metafns.gperf" +#line 661 "metafns.gperf" + {"has_unique_object_representations", METAFN_HAS_UNIQUE_OBJECT_REPRESENTATIONS, METAFN_KIND_BOOL_TINFO,}, +#line 614 "metafns.gperf" + {"is_compound_type", METAFN_IS_COMPOUND_TYPE, METAFN_KIND_BOOL_TINFO,}, +#line 483 "metafns.gperf" {"object_of", METAFN_OBJECT_OF, METAFN_KIND_INFO_INFO,}, -#line 710 "metafns.gperf" - {"_S_exception_cvt_to_utf8", METAFN_EXCEPTION__S_EXCEPTION_CVT_TO_UTF8, METAFN_KIND_U8STRING_VIEW_INPUT_RANGE,}, -#line 711 "metafns.gperf" - {"_S_exception_cvt_from_utf8", METAFN_EXCEPTION__S_EXCEPTION_CVT_FROM_UTF8, METAFN_KIND_STRING_VIEW_INPUT_RANGE,}, -#line 492 "metafns.gperf" - {"is_final", METAFN_IS_FINAL, METAFN_KIND_BOOL_INFO,}, -#line 525 "metafns.gperf" - {"is_literal_operator", METAFN_IS_LITERAL_OPERATOR, METAFN_KIND_BOOL_INFO,}, -#line 496 "metafns.gperf" +#line 681 "metafns.gperf" + {"add_volatile", METAFN_ADD_VOLATILE, METAFN_KIND_INFO_TINFO,}, +#line 475 "metafns.gperf" + {"u8symbol_of", METAFN_U8SYMBOL_OF, METAFN_KIND_U8STRING_VIEW_OPERATORS,}, +#line 568 "metafns.gperf" + {"has_inaccessible_bases", METAFN_HAS_INACCESSIBLE_BASES, METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,}, +#line 569 "metafns.gperf" + {"has_inaccessible_subobjects", METAFN_HAS_INACCESSIBLE_SUBOBJECTS, METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,}, +#line 495 "metafns.gperf" {"is_user_declared", METAFN_IS_USER_DECLARED, METAFN_KIND_BOOL_INFO,}, -#line 561 "metafns.gperf" - {"has_template_arguments", METAFN_HAS_TEMPLATE_ARGUMENTS, METAFN_KIND_BOOL_INFO,}, -#line 524 "metafns.gperf" +#line 523 "metafns.gperf" {"is_operator_function", METAFN_IS_OPERATOR_FUNCTION, METAFN_KIND_BOOL_INFO,}, -#line 699 "metafns.gperf" +#line 697 "metafns.gperf" {"invoke_result", METAFN_INVOKE_RESULT, METAFN_KIND_INFO_TINFO_REFLECTION_RANGET,}, -#line 591 "metafns.gperf" - {"reflect_constant_array", METAFN_REFLECT_CONSTANT_ARRAY, METAFN_KIND_INFO_INPUT_RANGE,}, -#line 513 "metafns.gperf" - {"has_c_language_linkage", METAFN_HAS_C_LANGUAGE_LINKAGE, METAFN_KIND_BOOL_INFO,}, -#line 545 "metafns.gperf" +#line 708 "metafns.gperf" + {"_S_exception_cvt_to_utf8", METAFN_EXCEPTION__S_EXCEPTION_CVT_TO_UTF8, METAFN_KIND_U8STRING_VIEW_INPUT_RANGE,}, +#line 709 "metafns.gperf" + {"_S_exception_cvt_from_utf8", METAFN_EXCEPTION__S_EXCEPTION_CVT_FROM_UTF8, METAFN_KIND_STRING_VIEW_INPUT_RANGE,}, +#line 567 "metafns.gperf" + {"has_inaccessible_nonstatic_data_members", METAFN_HAS_INACCESSIBLE_NONSTATIC_DATA_MEMBERS, METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,}, +#line 544 "metafns.gperf" {"is_operator_function_template", METAFN_IS_OPERATOR_FUNCTION_TEMPLATE, METAFN_KIND_BOOL_INFO,}, -#line 597 "metafns.gperf" +#line 490 "metafns.gperf" + {"is_override", METAFN_IS_OVERRIDE, METAFN_KIND_BOOL_INFO,}, +#line 686 "metafns.gperf" + {"make_signed", METAFN_MAKE_SIGNED, METAFN_KIND_INFO_TINFO,}, +#line 590 "metafns.gperf" + {"reflect_constant_array", METAFN_REFLECT_CONSTANT_ARRAY, METAFN_KIND_INFO_INPUT_RANGE,}, +#line 679 "metafns.gperf" + {"remove_cv", METAFN_REMOVE_CV, METAFN_KIND_INFO_TINFO,}, +#line 575 "metafns.gperf" + {"static_data_members_of", METAFN_STATIC_DATA_MEMBERS_OF, METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,}, +#line 559 "metafns.gperf" + {"dealias", METAFN_DEALIAS, METAFN_KIND_INFO_INFO,}, +#line 560 "metafns.gperf" + {"has_template_arguments", METAFN_HAS_TEMPLATE_ARGUMENTS, METAFN_KIND_BOOL_INFO,}, +#line 683 "metafns.gperf" + {"remove_reference", METAFN_REMOVE_REFERENCE, METAFN_KIND_INFO_TINFO,}, +#line 660 "metafns.gperf" + {"has_virtual_destructor", METAFN_HAS_VIRTUAL_DESTRUCTOR, METAFN_KIND_BOOL_TINFO,}, +#line 596 "metafns.gperf" {"is_integral_type", METAFN_IS_INTEGRAL_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 663 "metafns.gperf" - {"has_unique_object_representations", METAFN_HAS_UNIQUE_OBJECT_REPRESENTATIONS, METAFN_KIND_BOOL_TINFO,}, -#line 508 "metafns.gperf" - {"has_thread_storage_duration", METAFN_HAS_THREAD_STORAGE_DURATION, METAFN_KIND_BOOL_INFO,}, -#line 569 "metafns.gperf" - {"has_inaccessible_bases", METAFN_HAS_INACCESSIBLE_BASES, METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,}, -#line 570 "metafns.gperf" - {"has_inaccessible_subobjects", METAFN_HAS_INACCESSIBLE_SUBOBJECTS, METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,}, +#line 512 "metafns.gperf" + {"has_c_language_linkage", METAFN_HAS_C_LANGUAGE_LINKAGE, METAFN_KIND_BOOL_INFO,}, +#line 498 "metafns.gperf" + {"is_bit_field", METAFN_IS_BIT_FIELD, METAFN_KIND_BOOL_INFO,}, +#line 623 "metafns.gperf" + {"is_final_type", METAFN_IS_FINAL_TYPE, METAFN_KIND_BOOL_TINFO,}, #line 688 "metafns.gperf" - {"make_signed", METAFN_MAKE_SIGNED, METAFN_KIND_INFO_TINFO,}, -#line 568 "metafns.gperf" - {"has_inaccessible_nonstatic_data_members", METAFN_HAS_INACCESSIBLE_NONSTATIC_DATA_MEMBERS, METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,}, -#line 680 "metafns.gperf" - {"remove_volatile", METAFN_REMOVE_VOLATILE, METAFN_KIND_INFO_TINFO,}, -#line 588 "metafns.gperf" - {"reflect_object", METAFN_REFLECT_OBJECT, METAFN_KIND_INFO_TEMPLATE_PARM_REF,}, -#line 620 "metafns.gperf" - {"is_standard_layout_type", METAFN_IS_STANDARD_LAYOUT_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 695 "metafns.gperf" + {"remove_extent", METAFN_REMOVE_EXTENT, METAFN_KIND_INFO_TINFO,}, +#line 476 "metafns.gperf" + {"has_identifier", METAFN_HAS_IDENTIFIER, METAFN_KIND_BOOL_INFO,}, +#line 693 "metafns.gperf" {"decay", METAFN_DECAY, METAFN_KIND_INFO_TINFO,}, -#line 631 "metafns.gperf" +#line 619 "metafns.gperf" + {"is_standard_layout_type", METAFN_IS_STANDARD_LAYOUT_TYPE, METAFN_KIND_BOOL_TINFO,}, +#line 677 "metafns.gperf" + {"remove_const", METAFN_REMOVE_CONST, METAFN_KIND_INFO_TINFO,}, +#line 505 "metafns.gperf" + {"is_rvalue_reference_qualified", METAFN_IS_RVALUE_REFERENCE_QUALIFIED, METAFN_KIND_BOOL_INFO,}, +#line 507 "metafns.gperf" + {"has_thread_storage_duration", METAFN_HAS_THREAD_STORAGE_DURATION, METAFN_KIND_BOOL_INFO,}, +#line 689 "metafns.gperf" + {"remove_all_extents", METAFN_REMOVE_ALL_EXTENTS, METAFN_KIND_INFO_TINFO,}, +#line 629 "metafns.gperf" {"is_unbounded_array_type", METAFN_IS_UNBOUNDED_ARRAY_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 577 "metafns.gperf" +#line 692 "metafns.gperf" + {"remove_cvref", METAFN_REMOVE_CVREF, METAFN_KIND_INFO_TINFO,}, +#line 690 "metafns.gperf" + {"remove_pointer", METAFN_REMOVE_POINTER, METAFN_KIND_INFO_TINFO,}, +#line 504 "metafns.gperf" + {"is_lvalue_reference_qualified", METAFN_IS_LVALUE_REFERENCE_QUALIFIED, METAFN_KIND_BOOL_INFO,}, +#line 576 "metafns.gperf" {"nonstatic_data_members_of", METAFN_NONSTATIC_DATA_MEMBERS_OF, METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,}, -#line 606 "metafns.gperf" +#line 605 "metafns.gperf" {"is_union_type", METAFN_IS_UNION_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 477 "metafns.gperf" - {"has_identifier", METAFN_HAS_IDENTIFIER, METAFN_KIND_BOOL_INFO,}, -#line 576 "metafns.gperf" - {"static_data_members_of", METAFN_STATIC_DATA_MEMBERS_OF, METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,}, -#line 624 "metafns.gperf" - {"is_final_type", METAFN_IS_FINAL_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 560 "metafns.gperf" - {"dealias", METAFN_DEALIAS, METAFN_KIND_INFO_INFO,}, -#line 708 "metafns.gperf" +#line 706 "metafns.gperf" {"annotations_of_with_type", METAFN_ANNOTATIONS_OF_WITH_TYPE, METAFN_KIND_VECTOR_INFO_INFO_INFO,}, -#line 594 "metafns.gperf" +#line 593 "metafns.gperf" {"define_aggregate", METAFN_DEFINE_AGGREGATE, METAFN_KIND_INFO_INFO_REFLECTION_RANGE,}, -#line 499 "metafns.gperf" - {"is_bit_field", METAFN_IS_BIT_FIELD, METAFN_KIND_BOOL_INFO,}, -#line 707 "metafns.gperf" +#line 509 "metafns.gperf" + {"has_internal_linkage", METAFN_HAS_INTERNAL_LINKAGE, METAFN_KIND_BOOL_INFO,}, +#line 705 "metafns.gperf" {"annotations_of", METAFN_ANNOTATIONS_OF, METAFN_KIND_VECTOR_INFO_INFO,}, -#line 482 "metafns.gperf" +#line 481 "metafns.gperf" {"source_location_of", METAFN_SOURCE_LOCATION_OF, METAFN_KIND_SOURCE_LOCATION_INFO,}, -#line 582 "metafns.gperf" +#line 581 "metafns.gperf" {"alignment_of", METAFN_ALIGNMENT_OF, METAFN_KIND_SIZE_T_INFO,}, -#line 510 "metafns.gperf" - {"has_internal_linkage", METAFN_HAS_INTERNAL_LINKAGE, METAFN_KIND_BOOL_INFO,}, -#line 479 "metafns.gperf" +#line 478 "metafns.gperf" {"u8identifier_of", METAFN_U8IDENTIFIER_OF, METAFN_KIND_U8STRING_VIEW_INFO,}, -#line 629 "metafns.gperf" +#line 678 "metafns.gperf" + {"remove_volatile", METAFN_REMOVE_VOLATILE, METAFN_KIND_INFO_TINFO,}, +#line 627 "metafns.gperf" {"is_unsigned_type", METAFN_IS_UNSIGNED_TYPE, METAFN_KIND_BOOL_TINFO,}, -#line 495 "metafns.gperf" +#line 494 "metafns.gperf" {"is_user_provided", METAFN_IS_USER_PROVIDED, METAFN_KIND_BOOL_INFO,} }; #if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3) @@ -1100,82 +1097,82 @@ metafn_lookup::find (const char *str, size_t len) -1, -1, 1, -1, -1, 2, 3, -1, 4, -1, -1, -1, 5, -1, -1, 6, 7, 8, -1, 9, 10, 11, 12, -1, 13, 14, 15, 16, -1, 17, - 18, -1, -1, -1, -1, 19, 20, -1, 21, 22, - -1, 23, 24, -1, 25, -1, -1, -1, -1, 26, - -1, 27, 28, -1, 29, 30, 31, 32, 33, -1, - 34, -1, 35, 36, -1, -1, -1, -1, -1, -1, - 37, -1, 38, 39, 40, 41, -1, -1, -1, -1, - 42, 43, 44, -1, 45, -1, 46, -1, 47, -1, - -1, 48, 49, -1, -1, -1, -1, 50, -1, -1, - -1, -1, -1, 51, -1, -1, 52, 53, 54, -1, - -1, -1, -1, 55, 56, 57, 58, -1, 59, -1, - -1, 60, -1, -1, 61, 62, -1, 63, -1, -1, - -1, 64, -1, 65, -1, -1, 66, -1, 67, -1, - -1, 68, -1, 69, -1, -1, 70, -1, -1, -1, - 71, -1, -1, 72, 73, 74, 75, -1, -1, -1, - 76, 77, 78, -1, 79, 80, 81, 82, 83, -1, - 84, 85, 86, -1, -1, 87, -1, -1, 88, 89, - 90, 91, -1, -1, -1, -1, 92, -1, 93, 94, - 95, 96, -1, 97, 98, 99, -1, -1, 100, 101, - 102, -1, -1, -1, -1, -1, -1, 103, -1, -1, - -1, 104, -1, 105, -1, 106, 107, -1, 108, -1, - 109, 110, 111, 112, -1, -1, 113, 114, -1, 115, - -1, 116, -1, 117, 118, -1, 119, -1, -1, 120, - 121, 122, 123, -1, 124, -1, -1, -1, 125, 126, - -1, -1, -1, -1, -1, -1, 127, -1, -1, -1, - -1, -1, 128, 129, 130, -1, 131, 132, -1, -1, - -1, -1, -1, 133, 134, -1, -1, 135, 136, 137, - -1, 138, 139, -1, -1, -1, 140, 141, -1, -1, - -1, -1, -1, 142, -1, -1, 143, -1, 144, -1, - 145, -1, -1, 146, 147, 148, 149, -1, 150, -1, - 151, 152, 153, 154, -1, -1, 155, 156, 157, 158, - 159, -1, 160, 161, -1, -1, 162, -1, -1, 163, - -1, 164, -1, -1, 165, 166, 167, 168, 169, -1, - -1, -1, -1, 170, -1, 171, 172, -1, -1, -1, - -1, 173, -1, -1, 174, -1, 175, -1, -1, -1, - -1, -1, 176, -1, -1, 177, 178, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 179, 180, 181, - -1, -1, -1, -1, 182, -1, -1, -1, -1, 183, - -1, -1, -1, -1, -1, 184, -1, -1, -1, 185, - -1, 186, 187, 188, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 189, -1, 190, -1, -1, 191, - -1, -1, -1, -1, 192, 193, 194, -1, -1, 195, - -1, -1, 196, -1, -1, -1, 197, -1, 198, -1, - -1, 199, -1, 200, -1, -1, -1, -1, -1, 201, - 202, 203, 204, -1, 205, -1, -1, 206, -1, -1, - 207, -1, 208, -1, -1, -1, -1, -1, 209, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 210, -1, -1, -1, -1, -1, 211, - -1, 212, -1, -1, -1, -1, -1, -1, 213, -1, - -1, -1, -1, 214, -1, -1, -1, -1, -1, -1, - -1, 215, -1, -1, -1, 216, -1, -1, -1, 217, - 218, -1, -1, 219, -1, -1, -1, -1, 220, -1, - -1, -1, -1, -1, -1, -1, -1, 221, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 222, -1, -1, -1, -1, - 223, -1, -1, -1, -1, 224, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 225, -1, - -1, -1, 226, 227, -1, -1, -1, -1, 228, -1, - 229, -1, -1, -1, -1, -1, -1, -1, 230, -1, + 18, -1, 19, -1, -1, 20, 21, 22, 23, 24, + -1, 25, 26, -1, 27, 28, -1, -1, -1, 29, + -1, 30, 31, -1, 32, 33, 34, 35, 36, -1, + 37, -1, 38, 39, -1, -1, -1, -1, -1, -1, + 40, -1, 41, 42, 43, 44, -1, -1, 45, -1, + -1, 46, 47, -1, 48, -1, 49, -1, 50, -1, + -1, 51, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 52, 53, -1, -1, + -1, -1, -1, 54, 55, 56, 57, -1, 58, -1, + -1, 59, -1, -1, 60, 61, -1, 62, -1, -1, + -1, 63, -1, 64, -1, -1, 65, -1, 66, -1, + -1, 67, -1, 68, -1, -1, 69, 70, -1, -1, + -1, -1, -1, 71, 72, -1, 73, -1, -1, -1, + 74, 75, 76, -1, -1, 77, 78, -1, 79, -1, + 80, 81, 82, -1, -1, 83, -1, -1, 84, 85, + -1, 86, -1, -1, -1, -1, -1, -1, 87, 88, + -1, 89, -1, 90, 91, 92, -1, -1, 93, 94, + 95, -1, -1, 96, -1, -1, -1, 97, -1, -1, + -1, 98, -1, 99, -1, 100, 101, -1, 102, 103, + 104, 105, 106, 107, -1, -1, -1, 108, -1, 109, + -1, 110, -1, 111, -1, -1, 112, -1, -1, 113, + 114, 115, 116, 117, -1, -1, 118, -1, 119, 120, + 121, 122, -1, -1, -1, -1, 123, -1, -1, -1, + -1, 124, 125, 126, 127, -1, -1, -1, -1, -1, + -1, -1, -1, 128, 129, -1, -1, 130, 131, 132, + -1, 133, -1, 134, -1, -1, -1, 135, 136, -1, + -1, 137, -1, 138, -1, -1, 139, -1, 140, -1, + -1, -1, 141, 142, 143, 144, 145, -1, 146, -1, + 147, 148, -1, 149, -1, -1, 150, 151, 152, 153, + 154, -1, 155, -1, -1, -1, 156, -1, -1, 157, + -1, 158, -1, -1, 159, 160, 161, 162, 163, -1, + 164, -1, -1, 165, -1, 166, -1, -1, -1, -1, + -1, 167, -1, 168, -1, -1, 169, 170, -1, -1, + -1, -1, 171, 172, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 173, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 174, + -1, -1, -1, -1, -1, 175, -1, -1, -1, -1, + -1, 176, 177, 178, 179, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 180, -1, -1, -1, + -1, -1, -1, -1, -1, 181, 182, 183, -1, -1, + -1, 184, 185, -1, -1, 186, 187, -1, 188, -1, + 189, 190, -1, -1, 191, -1, -1, -1, -1, 192, + -1, 193, -1, -1, 194, -1, -1, 195, 196, -1, + 197, 198, -1, -1, -1, -1, -1, -1, 199, -1, + -1, -1, -1, 200, -1, -1, 201, 202, -1, -1, + -1, 203, -1, -1, -1, 204, -1, -1, -1, -1, + 205, 206, -1, 207, 208, -1, -1, -1, -1, -1, + 209, 210, -1, -1, -1, 211, 212, -1, -1, -1, + 213, 214, -1, -1, -1, -1, -1, -1, -1, -1, + 215, -1, -1, 216, 217, -1, -1, 218, -1, -1, + 219, -1, -1, -1, -1, 220, -1, 221, -1, 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 223, 224, -1, -1, 225, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 231, -1, + -1, -1, -1, -1, -1, -1, -1, 226, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 227, -1, + 228, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 229, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 232, -1, -1, 233, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 234, -1, -1, 235, + -1, -1, -1, -1, -1, -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 231, -1, -1, 232, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 233, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 234, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 236, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 237 + 235, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 236 }; if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) diff --git a/gcc/cp/reflect.cc b/gcc/cp/reflect.cc index 127438019130..93d2affbd194 100644 --- a/gcc/cp/reflect.cc +++ b/gcc/cp/reflect.cc @@ -4384,17 +4384,6 @@ eval_is_aggregate_type (tree type) return boolean_false_node; } -/* Process std::meta::is_consteval_only_type. */ - -static tree -eval_is_consteval_only_type (tree type) -{ - if (consteval_only_p (type)) - return boolean_true_node; - else - return boolean_false_node; -} - /* Process std::meta::is_structural_type. */ static tree @@ -8192,8 +8181,6 @@ process_metafunction (const constexpr_ctx *ctx, tree fun, tree call, return eval_is_final_type (loc, h); case METAFN_IS_AGGREGATE_TYPE: return eval_is_aggregate_type (h); - case METAFN_IS_CONSTEVAL_ONLY_TYPE: - return eval_is_consteval_only_type (h); case METAFN_IS_STRUCTURAL_TYPE: return eval_is_structural_type (loc, h); case METAFN_IS_SIGNED_TYPE: diff --git a/gcc/cp/semantics.cc b/gcc/cp/semantics.cc index abd1156a2dc1..5fddd771991c 100644 --- a/gcc/cp/semantics.cc +++ b/gcc/cp/semantics.cc @@ -14170,9 +14170,6 @@ trait_expr_value (cp_trait_kind kind, tree type1, tree type2) case CPTK_IS_DEDUCIBLE: return type_targs_deducible_from (type1, type2); - case CPTK_IS_CONSTEVAL_ONLY: - return consteval_only_p (type1); - case CPTK_IS_STRUCTURAL: return structural_type_p (type1); @@ -14356,7 +14353,6 @@ finish_trait_expr (location_t loc, cp_trait_kind kind, tree type1, tree type2) case CPTK_IS_STD_LAYOUT: case CPTK_IS_TRIVIAL: case CPTK_IS_TRIVIALLY_COPYABLE: - case CPTK_IS_CONSTEVAL_ONLY: case CPTK_IS_STRUCTURAL: case CPTK_HAS_UNIQUE_OBJ_REPRESENTATIONS: if (!check_trait_type (type1, /* kind = */ 2)) diff --git a/gcc/testsuite/g++.dg/reflect/eh1.C b/gcc/testsuite/g++.dg/reflect/eh1.C index ed4eeb087617..00c9c43e021d 100644 --- a/gcc/testsuite/g++.dg/reflect/eh1.C +++ b/gcc/testsuite/g++.dg/reflect/eh1.C @@ -146,9 +146,6 @@ eval (int n) case 46: is_aggregate_type (^^n); break; - case 47: - is_consteval_only_type (^^n); - break; case 48: is_signed_type (^^n); break; @@ -319,7 +316,6 @@ static_assert (test (43)); static_assert (test (44)); static_assert (test (45)); static_assert (test (46)); -static_assert (test (47)); static_assert (test (48)); static_assert (test (49)); static_assert (test (50)); diff --git a/gcc/testsuite/g++.dg/reflect/eh2.C b/gcc/testsuite/g++.dg/reflect/eh2.C index bb601f186498..dde5e5b6ad5a 100644 --- a/gcc/testsuite/g++.dg/reflect/eh2.C +++ b/gcc/testsuite/g++.dg/reflect/eh2.C @@ -52,7 +52,6 @@ static_assert ((is_polymorphic_type (^^i), true)); // { dg-error "non-constant|u static_assert ((is_abstract_type (^^i), true)); // { dg-error "non-constant|uncaught exception" } static_assert ((is_final_type (^^i), true)); // { dg-error "non-constant|uncaught exception" } static_assert ((is_aggregate_type (^^i), true)); // { dg-error "non-constant|uncaught exception" } -static_assert ((is_consteval_only_type (^^i), true)); // { dg-error "non-constant|uncaught exception" } static_assert ((is_signed_type (^^i), true)); // { dg-error "non-constant|uncaught exception" } static_assert ((is_unsigned_type (^^i), true)); // { dg-error "non-constant|uncaught exception" } static_assert ((is_bounded_array_type (^^i), true)); // { dg-error "non-constant|uncaught exception" } diff --git a/gcc/testsuite/g++.dg/reflect/is_consteval_only1.C b/gcc/testsuite/g++.dg/reflect/is_consteval_only1.C deleted file mode 100644 index 268aaaa72dce..000000000000 --- a/gcc/testsuite/g++.dg/reflect/is_consteval_only1.C +++ /dev/null @@ -1,83 +0,0 @@ -// { dg-do compile { target c++26 } } -// { dg-additional-options "-freflection" } -// Test std::meta::is_consteval_only. - -#include <meta> -using namespace std::meta; - -struct A { - info i; -}; -struct B : A { }; -struct C : virtual A { }; -struct D : B { }; -struct E { }; -struct F : E { - info i; -}; -template<typename T> -struct G { - T t; - using size_type = int; -}; -struct H { - G<info>::size_type sz; -}; -struct I { - std::initializer_list<std::meta::info>::size_type sz; -}; -template<typename T> -struct J : T { }; - -template<typename T> -using U = J<T>; - -template<typename T> -struct K { - J<T> j; -}; - -template<typename T> -struct L { - U<T> u; -}; - -template<typename T> -struct M : J<T> { }; - -template<typename> -struct N { }; - -static_assert (is_consteval_only_type (^^A)); -static_assert (is_consteval_only_type (^^B)); -static_assert (is_consteval_only_type (^^C)); -static_assert (is_consteval_only_type (^^D)); -static_assert (!is_consteval_only_type (^^E)); -static_assert (is_consteval_only_type (^^F)); -static_assert (!is_consteval_only_type (^^G<int>)); -static_assert (is_consteval_only_type (^^G<info>)); -static_assert (!is_consteval_only_type (^^H)); -static_assert (!is_consteval_only_type (^^I)); -static_assert (!is_consteval_only_type (^^J<E>)); -static_assert (is_consteval_only_type (^^J<A>)); -static_assert (!is_consteval_only_type (^^U<E>)); -static_assert (is_consteval_only_type (^^U<A>)); -static_assert (!is_consteval_only_type (^^K<E>)); -static_assert (is_consteval_only_type (^^K<A>)); -static_assert (!is_consteval_only_type (^^L<E>)); -static_assert (is_consteval_only_type (^^L<A>)); -static_assert (!is_consteval_only_type (^^M<E>)); -static_assert (is_consteval_only_type (^^M<A>)); -static_assert (!is_consteval_only_type (^^N<E>)); -static_assert (!is_consteval_only_type (^^N<A>)); - -static_assert (is_consteval_only_type (^^std::meta::exception)); -static_assert (is_consteval_only_type (^^std::meta::access_context)); -static_assert (!is_consteval_only_type (^^std::meta::member_offset)); -static_assert (is_consteval_only_type (^^std::meta::data_member_options)); -static_assert (is_consteval_only_type (type_of (^^std::meta::data_member_options::name))); - -struct O; -static_assert (!is_consteval_only_type (^^O)); -struct O { info i; }; -static_assert (is_consteval_only_type (^^O)); diff --git a/gcc/testsuite/g++.dg/reflect/type_trait5.C b/gcc/testsuite/g++.dg/reflect/type_trait5.C index ff025882b4fc..19132b5c9215 100644 --- a/gcc/testsuite/g++.dg/reflect/type_trait5.C +++ b/gcc/testsuite/g++.dg/reflect/type_trait5.C @@ -207,13 +207,6 @@ namespace N void foo (); } -int v = 1; -struct S1 { decltype (^^long) a; }; -union U2 { int a; decltype (^^N::foo) b; }; -struct S3 { const decltype (^^N) *c; }; -struct S4 : public S3 {}; -struct S5 { int a; long *b; }; - static_assert (is_const_type (^^const int)); static_assert (is_const_type (^^const volatile int)); static_assert (is_const_type (^^cClassType)); @@ -339,17 +332,6 @@ static_assert (!is_aggregate_type (^^EnumType)); static_assert (!is_aggregate_type (^^void)); static_assert (!is_aggregate_type (^^NoexceptMoveAssignClass)); -static_assert (is_consteval_only_type (^^decltype (^^long))); -static_assert (is_consteval_only_type (^^const decltype (^^N::foo))); -static_assert (is_consteval_only_type (^^volatile decltype (^^N))); -static_assert (is_consteval_only_type (^^const volatile decltype (^^v))); -static_assert (is_consteval_only_type (^^const S1)); -static_assert (is_consteval_only_type (^^U2)); -static_assert (is_consteval_only_type (^^S3)); -static_assert (is_consteval_only_type (^^S4)); -static_assert (!is_consteval_only_type (^^int)); -static_assert (!is_consteval_only_type (^^S5)); - static_assert (!is_signed_type (^^void)); static_assert (char (-1) < char (0) ? is_signed_type (^^char) : !is_signed_type (^^char)); static_assert (is_signed_type (^^signed char)); diff --git a/libstdc++-v3/include/std/meta b/libstdc++-v3/include/std/meta index e855a31900e5..86c15bbaa216 100644 --- a/libstdc++-v3/include/std/meta +++ b/libstdc++-v3/include/std/meta @@ -470,7 +470,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION consteval bool is_abstract_type(info); consteval bool is_final_type(info); consteval bool is_aggregate_type(info); - consteval bool is_consteval_only_type(info); #if __glibcxx_is_structural >= 202603L consteval bool is_structural_type(info); #endif diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/std/type_traits index 38be1b0e09d3..30214194da03 100644 --- a/libstdc++-v3/include/std/type_traits +++ b/libstdc++-v3/include/std/type_traits @@ -3907,24 +3907,6 @@ template<typename _Ret, typename _Fn, typename... _Args> # endif #endif -#if __cpp_impl_reflection >= 202506L \ - && _GLIBCXX_USE_BUILTIN_TRAIT(__builtin_is_consteval_only) // C++ >= 26 - /// is_consteval_only - true if the type is consteval-only. - /// @since C++26 - template<typename _Tp> - struct is_consteval_only - : bool_constant<__builtin_is_consteval_only(_Tp)> - { }; - - /** is_consteval_only_v - true if the type is consteval-only. - * @ingroup variable_templates - * @since C++26 - */ - template<typename _Tp> - inline constexpr bool is_consteval_only_v - = __builtin_is_consteval_only(_Tp); -#endif - #if __cpp_lib_is_structural >= 202603L // C++ >= 26 /// is_structural - true if the type is a structural type. /// @since C++26 diff --git a/libstdc++-v3/src/c++23/std.cc.in b/libstdc++-v3/src/c++23/std.cc.in index 662f4405456e..db66677d55ba 100644 --- a/libstdc++-v3/src/c++23/std.cc.in +++ b/libstdc++-v3/src/c++23/std.cc.in @@ -2254,7 +2254,6 @@ export namespace std using std::meta::is_abstract_type; using std::meta::is_final_type; using std::meta::is_aggregate_type; - using std::meta::is_consteval_only_type; #if __glibcxx_is_structural >= 202603L using std::meta::is_structural_type; #endif @@ -3576,10 +3575,6 @@ export namespace std #if __cpp_impl_reflection >= 202506L using std::is_reflection; using std::is_reflection_v; -#if _GLIBCXX_USE_BUILTIN_TRAIT(__builtin_is_consteval_only) - using std::is_consteval_only; - using std::is_consteval_only_v; -#endif #endif #if __glibcxx_is_structural >= 202603L using std::is_structural; diff --git a/libstdc++-v3/testsuite/20_util/is_consteval_only/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/20_util/is_consteval_only/requirements/explicit_instantiation.cc deleted file mode 100644 index d890f144ef92..000000000000 --- a/libstdc++-v3/testsuite/20_util/is_consteval_only/requirements/explicit_instantiation.cc +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-do compile { target c++26 } } -// { dg-additional-options "-freflection" } - -// NB: This file is for testing type_traits with NO OTHER INCLUDES. - -#include <type_traits> - -namespace std -{ - typedef short test_type; - template struct is_consteval_only<test_type>; -} diff --git a/libstdc++-v3/testsuite/20_util/is_consteval_only/requirements/typedefs.cc b/libstdc++-v3/testsuite/20_util/is_consteval_only/requirements/typedefs.cc deleted file mode 100644 index 29fb44c0dc1b..000000000000 --- a/libstdc++-v3/testsuite/20_util/is_consteval_only/requirements/typedefs.cc +++ /dev/null @@ -1,16 +0,0 @@ -// { dg-do compile { target c++26 } } -// { dg-additional-options "-freflection" } - -// NB: This file is for testing type_traits with NO OTHER INCLUDES. - -#include <type_traits> - -void test01() -{ - // Check for required typedefs - typedef std::is_consteval_only<decltype (^^int)> test_type; - typedef test_type::value_type value_type; - typedef test_type::type type; - typedef test_type::type::value_type type_value_type; - typedef test_type::type::type type_type; -} diff --git a/libstdc++-v3/testsuite/20_util/is_consteval_only/value.cc b/libstdc++-v3/testsuite/20_util/is_consteval_only/value.cc deleted file mode 100644 index 7852a618d316..000000000000 --- a/libstdc++-v3/testsuite/20_util/is_consteval_only/value.cc +++ /dev/null @@ -1,30 +0,0 @@ -// { dg-do compile { target c++26 } } -// { dg-additional-options "-freflection" } - -#include <type_traits> -#include <testsuite_tr1.h> - -void test01() -{ - using std::is_consteval_only; - using namespace __gnu_test; - int v = 1; - struct S1 { decltype(^^long) a; }; - union U2 { int a; decltype(^^test01) b; }; - struct S3 { const decltype(^^__gnu_test) *c; }; - struct S4 : public S3 {}; - struct S5 { int a; long *b; }; - - static_assert(test_category<is_consteval_only, decltype(^^long)>(true), ""); - static_assert(test_category<is_consteval_only, const decltype(^^test01)>(true), ""); - static_assert(test_category<is_consteval_only, volatile decltype(^^__gnu_test)>(true), ""); - static_assert(test_category<is_consteval_only, const volatile decltype(^^v)>(true), ""); - static_assert(test_category<is_consteval_only, const S1>(true), ""); - static_assert(test_category<is_consteval_only, U2>(true), ""); - static_assert(test_category<is_consteval_only, S3>(true), ""); - static_assert(test_category<is_consteval_only, S4>(true), ""); - - // Sanity check. - static_assert(test_category<is_consteval_only, int>(false), ""); - static_assert(test_category<is_consteval_only, S5>(false), ""); -} diff --git a/libstdc++-v3/testsuite/20_util/variable_templates_for_traits.cc b/libstdc++-v3/testsuite/20_util/variable_templates_for_traits.cc index 0ef2bc95f780..19cb43aa0994 100644 --- a/libstdc++-v3/testsuite/20_util/variable_templates_for_traits.cc +++ b/libstdc++-v3/testsuite/20_util/variable_templates_for_traits.cc @@ -335,9 +335,6 @@ static_assert(!is_convertible_v<const int&, int&> static_assert(is_reflection_v<decltype(^^int)> && is_reflection<decltype(^^int)>::value, ""); static_assert(!is_reflection_v<int> && !is_reflection<int>::value, ""); -static_assert(is_consteval_only_v<decltype(^^int)> - && is_consteval_only<decltype(^^int)>::value, ""); -static_assert(!is_consteval_only_v<int> && !is_consteval_only<int>::value, ""); #endif #if __cpp_lib_is_structural >= 202603L
