On Sat, 28 Mar 2026 at 16:59, Jakub Jelinek <[email protected]> wrote:
>
> On Thu, Mar 26, 2026 at 06:07:43PM +0100, Jakub Jelinek wrote:
> > On Thu, Mar 26, 2026 at 01:03:17PM -0400, Marek Polacek wrote:
> > > Since this patch is adding the trait, this could be just
> > >
> > > return eval_type_trait (loc, type, CPTK_IS_STRUCTURAL);
> > >
> > > Not that it matters in this case...
> > >
> > > The cp/ bits look good to me otherwise.
> >
> > Changed in my copy.
>
> Here is that updated patch.
>
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
>
> 2026-03-28 Jakub Jelinek <[email protected]>
>
> gcc/cp/
> * cp-trait.def (__builtin_is_structural): New trait.
> * semantics.cc (trait_expr_value): Handle CPTK_IS_STRUCTURAL.
> (finish_trait_expr): Likewise.
> * constraint.cc (diagnose_trait_expr): Likewise.
> * metafns.gperf (enum metafn_code): Add METAFN_IS_STRUCTURAL_TYPE.
> (is_structural_type): New metafn.
> * metafns.h: Regenerate.
> * reflect.cc (eval_is_structural_type): New function.
> (process_metafunction): Handle METAFN_IS_STRUCTURAL_TYPE.
> gcc/testsuite/
> * g++.dg/reflect/type_trait14.C: New test.
> * g++.dg/reflect/eh1.C: Add test for is_structural_type.
> * g++.dg/reflect/eh2.C: Likewise.
> libstdc++-v3/
> * include/bits/version.def (is_structural): New.
> * include/bits/version.h: Regenerate.
> * include/std/type_traits (__glibcxx_want_is_structural): Define.
> (std::is_structural): New type trait.
> (std::is_structural_v): New type trait variable template.
> * include/std/meta (std::meta::is_structural_type): New declaration.
> * src/c++23/std.cc.in: Export std::is_structural, std::is_structural_v
> and std::meta::is_structural_type.
> *
> testsuite/20_util/is_structural/requirements/explicit_instantiation.cc: New
> test.
> * testsuite/20_util/is_structural/requirements/typedefs.cc: New test.
> * testsuite/20_util/is_structural/value.cc: New test.
> * testsuite/20_util/variable_templates_for_traits.cc: Test
> is_structural_v.
>
> --- gcc/cp/cp-trait.def.jj 2026-01-15 16:33:46.972098555 +0100
> +++ gcc/cp/cp-trait.def 2026-03-26 16:57:51.414942417 +0100
> @@ -98,6 +98,7 @@ DEFTRAIT_EXPR (IS_REFERENCE, "__is_refer
> DEFTRAIT_EXPR (IS_SAME, "__is_same", 2)
> DEFTRAIT_EXPR (IS_SCOPED_ENUM, "__is_scoped_enum", 1)
> DEFTRAIT_EXPR (IS_STD_LAYOUT, "__is_standard_layout", 1)
> +DEFTRAIT_EXPR (IS_STRUCTURAL, "__builtin_is_structural", 1)
> DEFTRAIT_EXPR (IS_TRIVIAL, "__is_trivial", 1)
> DEFTRAIT_EXPR (IS_TRIVIALLY_ASSIGNABLE, "__is_trivially_assignable", 2)
> DEFTRAIT_EXPR (IS_TRIVIALLY_CONSTRUCTIBLE, "__is_trivially_constructible",
> -1)
> --- gcc/cp/semantics.cc.jj 2026-03-12 15:27:17.698072317 +0100
> +++ gcc/cp/semantics.cc 2026-03-26 16:58:37.177163606 +0100
> @@ -14173,6 +14173,9 @@ trait_expr_value (cp_trait_kind kind, tr
> case CPTK_IS_CONSTEVAL_ONLY:
> return consteval_only_p (type1);
>
> + case CPTK_IS_STRUCTURAL:
> + return structural_type_p (type1);
> +
> /* __array_rank, __builtin_type_order and
> __builtin_structured_binding_size
> are handled in finish_trait_expr. */
> case CPTK_RANK:
> @@ -14354,6 +14357,7 @@ finish_trait_expr (location_t loc, cp_tr
> 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))
> return error_mark_node;
> --- gcc/cp/constraint.cc.jj 2026-03-03 09:43:54.564370259 +0100
> +++ gcc/cp/constraint.cc 2026-03-26 16:58:06.583684262 +0100
> @@ -3357,6 +3357,10 @@ diagnose_trait_expr (location_t loc, tre
> 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);
> + break;
> case CPTK_RANK:
> inform (loc, "%qT cannot yield a rank", t1);
> break;
> --- gcc/cp/metafns.gperf.jj 2026-03-25 20:19:10.715163161 +0100
> +++ gcc/cp/metafns.gperf 2026-03-26 14:31:11.313544554 +0100
> @@ -172,6 +172,7 @@ enum metafn_code {
> 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,
> METAFN_IS_BOUNDED_ARRAY_TYPE,
> @@ -607,6 +608,7 @@ is_abstract_type, METAFN_IS_ABSTRACT_TYP
> 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,
> is_bounded_array_type, METAFN_IS_BOUNDED_ARRAY_TYPE, METAFN_KIND_BOOL_TINFO,
> --- gcc/cp/reflect.cc.jj 2026-03-26 12:30:48.440143055 +0100
> +++ gcc/cp/reflect.cc 2026-03-26 14:33:07.038568698 +0100
> @@ -4362,6 +4362,14 @@ eval_is_consteval_only_type (tree type)
> return boolean_false_node;
> }
>
> +/* Process std::meta::is_structural_type. */
> +
> +static tree
> +eval_is_structural_type (location_t loc, tree type)
> +{
> + return eval_type_trait (loc, type, CPTK_IS_STRUCTURAL);
> +}
> +
> /* Process std::meta::is_signed_type. */
>
> static tree
> @@ -7917,6 +7925,8 @@ process_metafunction (const constexpr_ct
> 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:
> return eval_is_signed_type (h);
> case METAFN_IS_UNSIGNED_TYPE:
> --- gcc/testsuite/g++.dg/reflect/type_trait14.C.jj 2026-03-26
> 17:15:25.881997122 +0100
> +++ gcc/testsuite/g++.dg/reflect/type_trait14.C 2026-03-26 17:36:55.509059740
> +0100
> @@ -0,0 +1,61 @@
> +// { dg-do compile { target c++26 } }
> +// { dg-additional-options "-freflection" }
> +// Test reflection type traits [meta.reflection.traits], type properties.
> +
> +#include <meta>
> +using namespace std::meta;
> +
> +struct A { constexpr A () : a (42) {} mutable int a; };
> +struct B { constexpr B () {} A b; };
> +struct C : public A { constexpr C () {} };
> +struct D {};
> +struct E : protected D { constexpr E () {} };
> +struct F { constexpr F () : f (42) {} int f; };
> +struct G { F a; int b[2]; constexpr G () : b{0,1} {} };
> +enum EnumType { e0 };
> +class ClassType { };
> +struct NType { int i; int j; virtual ~NType (); };
> +struct TType { int i; private: int j; };
> +struct SLType { int i; int j; ~SLType (); };
> +struct PODType { int i; int j; };
> +struct LType { int _M_i; constexpr LType (int __i) : _M_i(__i) { } };
> +struct LTypeDerived : public LType { constexpr LTypeDerived (int __i) :
> LType(__i) { } };
> +struct NLType {
> + int _M_i;
> + NLType () : _M_i(0) { }
> + constexpr NLType (int __i) : _M_i(__i) { }
> + NLType (const NLType &__other) : _M_i(__other._M_i) { }
> + ~NLType () { _M_i = 0; }
> +};
> +
> +static_assert (is_structural_type (^^int));
> +static_assert (is_structural_type (^^float));
> +static_assert (is_structural_type (^^const float));
> +static_assert (is_structural_type (^^EnumType));
> +static_assert (is_structural_type (^^int*));
> +static_assert (is_structural_type (^^int(*)(int)));
> +static_assert (is_structural_type (^^int (ClassType::*)));
> +static_assert (is_structural_type (^^int (ClassType::*) (int)));
> +static_assert (is_structural_type (^^std::nullptr_t));
> +static_assert (is_structural_type (^^info));
> +static_assert (is_structural_type (^^int&));
> +static_assert (is_structural_type (^^NLType&));
> +static_assert (is_structural_type (^^PODType));
> +static_assert (is_structural_type (^^const LType));
> +static_assert (is_structural_type (^^LTypeDerived));
> +static_assert (is_structural_type (^^D));
> +static_assert (is_structural_type (^^F));
> +static_assert (is_structural_type (^^G));
> +
> +static_assert (!is_structural_type (^^int&&));
> +static_assert (!is_structural_type (^^int[2]));
> +static_assert (!is_structural_type (^^TType));
> +static_assert (!is_structural_type (^^NType));
> +static_assert (!is_structural_type (^^SLType));
> +static_assert (!is_structural_type (^^LType[5]));
> +static_assert (!is_structural_type (^^NLType));
> +static_assert (!is_structural_type (^^NLType[5]));
> +static_assert (!is_structural_type (^^A));
> +static_assert (!is_structural_type (^^const B));
> +static_assert (!is_structural_type (^^C));
> +static_assert (!is_structural_type (^^E));
> --- gcc/testsuite/g++.dg/reflect/eh1.C.jj 2026-01-15 16:33:47.007097959
> +0100
> +++ gcc/testsuite/g++.dg/reflect/eh1.C 2026-03-26 17:37:37.932338418 +0100
> @@ -257,6 +257,9 @@ eval (int n)
> case 84:
> unwrap_ref_decay (^^n);
> break;
> + case 85:
> + is_structural_type (^^n);
> + break;
> default:
> break;
> }
> @@ -353,3 +356,4 @@ static_assert (test (81));
> static_assert (test (82));
> static_assert (test (83));
> static_assert (test (84));
> +static_assert (test (85));
> --- gcc/testsuite/g++.dg/reflect/eh2.C.jj 2026-01-15 16:33:47.007097959
> +0100
> +++ gcc/testsuite/g++.dg/reflect/eh2.C 2026-03-26 17:37:59.760967264 +0100
> @@ -89,3 +89,4 @@ static_assert ((is_swappable_type (^^i),
> static_assert ((is_nothrow_swappable_type (^^i), true)); // { dg-error
> "non-constant|uncaught exception" }
> static_assert ((unwrap_reference (^^i), true)); // { dg-error
> "non-constant|uncaught exception" }
> static_assert ((unwrap_ref_decay (^^i), true)); // { dg-error
> "non-constant|uncaught exception" }
> +static_assert ((is_structural_type (^^i), true)); // { dg-error
> "non-constant|uncaught exception" }
> --- libstdc++-v3/include/bits/version.def.jj 2026-03-23 11:26:48.919334705
> +0100
> +++ libstdc++-v3/include/bits/version.def 2026-03-26 17:00:53.572842375
> +0100
> @@ -2346,6 +2346,15 @@ ftms = {
> };
> };
>
> +ftms = {
> + name = is_structural;
> + values = {
> + v = 202603;
> + cxxmin = 26;
> + extra_cond = "__has_builtin(__builtin_is_structural)";
Hmm, we always use __has_builtin directly in <version>, which I guess
isn't ideal. But it's consistent with the other feature test macros.
> + };
> +};
> +
> // Standard test specifications.
> stds[97] = ">= 199711L";
> stds[03] = ">= 199711L";
> --- libstdc++-v3/include/bits/version.h.jj 2026-03-23 11:26:48.920334688
> +0100
> +++ libstdc++-v3/include/bits/version.h 2026-03-26 17:01:26.364581790 +0100
> @@ -2625,4 +2625,14 @@
> #endif /* !defined(__cpp_lib_simd) */
> #undef __glibcxx_want_simd
>
> +#if !defined(__cpp_lib_is_structural)
> +# if (__cplusplus > 202302L) && (__has_builtin(__builtin_is_structural))
> +# define __glibcxx_is_structural 202603L
> +# if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_structural)
> +# define __cpp_lib_is_structural 202603L
> +# endif
> +# endif
> +#endif /* !defined(__cpp_lib_is_structural) */
> +#undef __glibcxx_want_is_structural
> +
> #undef __glibcxx_want_all
> --- libstdc++-v3/include/std/type_traits.jj 2026-03-02 07:43:12.637783197
> +0100
> +++ libstdc++-v3/include/std/type_traits 2026-03-26 14:26:49.147242525
> +0100
> @@ -55,6 +55,7 @@
> #define __glibcxx_want_is_null_pointer
> #define __glibcxx_want_is_pointer_interconvertible
> #define __glibcxx_want_is_scoped_enum
> +#define __glibcxx_want_is_structural
> #define __glibcxx_want_is_swappable
> #define __glibcxx_want_is_virtual_base_of
> #define __glibcxx_want_logical_traits
> @@ -3924,6 +3925,23 @@ template<typename _Ret, typename _Fn, ty
> = __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
> + template<typename _Tp>
> + struct is_structural
> + : bool_constant<__builtin_is_structural(_Tp)>
> + { };
> +
> + /** is_structural_v - true if the type is a structural only type.
> + * @ingroup variable_templates
> + * @since C++26
> + */
> + template<typename _Tp>
> + inline constexpr bool is_structural_v
> + = __builtin_is_structural(_Tp);
> +#endif
> +
> /** * Remove references and cv-qualifiers.
> * @since C++20
> * @{
> --- libstdc++-v3/include/std/meta.jj 2026-03-25 20:19:53.791992428 +0100
> +++ libstdc++-v3/include/std/meta 2026-03-26 17:39:52.979042203 +0100
> @@ -466,6 +466,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> consteval bool is_final_type(info);
> consteval bool is_aggregate_type(info);
> consteval bool is_consteval_only_type(info);
> + consteval bool is_structural_type(info);
Does this not check the feature test macro because <meta> is coupled
to the compiler, and only works with GCC not Clang, and we know GCC
supports this metafunction?
> consteval bool is_signed_type(info);
> consteval bool is_unsigned_type(info);
> consteval bool is_bounded_array_type(info);
> --- libstdc++-v3/src/c++23/std.cc.in.jj 2026-03-19 17:37:36.261809242 +0100
> +++ libstdc++-v3/src/c++23/std.cc.in 2026-03-26 15:18:55.819857691 +0100
> @@ -2251,6 +2251,7 @@ export namespace std
> using std::meta::is_final_type;
> using std::meta::is_aggregate_type;
> using std::meta::is_consteval_only_type;
> + using std::meta::is_structural_type;
> using std::meta::is_signed_type;
> using std::meta::is_unsigned_type;
> using std::meta::is_bounded_array_type;
> @@ -3574,6 +3575,10 @@ export namespace std
> using std::is_consteval_only_v;
> #endif
> #endif
> +#if __glibcxx_is_structural >= 202603L
> + using std::is_structural;
> + using std::is_structural_v;
> +#endif
> }
>
> // <typeindex>
> ---
> libstdc++-v3/testsuite/20_util/is_structural/requirements/explicit_instantiation.cc.jj
> 2026-03-26 16:22:54.410627358 +0100
> +++
> libstdc++-v3/testsuite/20_util/is_structural/requirements/explicit_instantiation.cc
> 2026-03-26 16:23:11.321339614 +0100
> @@ -0,0 +1,12 @@
> +// { 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_structural<test_type>;
> +}
> --- libstdc++-v3/testsuite/20_util/is_structural/requirements/typedefs.cc.jj
> 2026-03-26 16:23:15.741264410 +0100
> +++ libstdc++-v3/testsuite/20_util/is_structural/requirements/typedefs.cc
> 2026-03-26 16:23:45.465758638 +0100
> @@ -0,0 +1,16 @@
> +// { 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_structural<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;
> +}
> --- libstdc++-v3/testsuite/20_util/is_structural/value.cc.jj 2026-03-26
> 16:22:22.921163159 +0100
> +++ libstdc++-v3/testsuite/20_util/is_structural/value.cc 2026-03-26
> 17:13:23.316082968 +0100
> @@ -0,0 +1,51 @@
> +// { dg-do compile { target c++26 } }
> +
> +#include <type_traits>
> +#include <testsuite_tr1.h>
> +
> +void test01()
> +{
> + using std::is_structural;
> + using namespace __gnu_test;
> + struct A { constexpr A () : a (42) {} mutable int a; };
> + struct B { constexpr B () {} A b; };
> + struct C : public A { constexpr C () {} };
> + struct D {};
> + struct E : protected D { constexpr E () {} };
> + struct F { constexpr F () : f (42) {} int f; };
> + struct G { F a; int b[2]; constexpr G () : b{0,1} {} };
> +
> + static_assert(test_category<is_structural, int>(true), "");
> + static_assert(test_category<is_structural, float>(true), "");
> + static_assert(test_category<is_structural, const float>(true), "");
> + static_assert(test_category<is_structural, EnumType>(true), "");
> + static_assert(test_category<is_structural, int*>(true), "");
> + static_assert(test_category<is_structural, int(*)(int)>(true), "");
> + static_assert(test_category<is_structural, int (ClassType::*)>(true), "");
> + static_assert(test_category<is_structural, int (ClassType::*)
> (int)>(true), "");
> + static_assert(test_category<is_structural, std::nullptr_t>(true), "");
> +#if __cpp_impl_reflection >= 202506L
> + static_assert(test_category<is_structural, decltype(^^::)>(true), "");
> +#endif
> + static_assert(test_category<is_structural, int&>(true), "");
> + static_assert(test_category<is_structural, NLType&>(true), "");
> + static_assert(test_category<is_structural, PODType>(true), "");
> + static_assert(test_category<is_structural, const LType>(true), "");
> + static_assert(test_category<is_structural, LTypeDerived>(true), "");
> + static_assert(test_category<is_structural, D>(true), "");
> + static_assert(test_category<is_structural, F>(true), "");
> + static_assert(test_category<is_structural, G>(true), "");
> +
> + static_assert(test_category<is_structural, int&&>(false), "");
> + static_assert(test_category<is_structural, int[2]>(false), "");
> + static_assert(test_category<is_structural, TType>(false), "");
> + static_assert(test_category<is_structural, NType>(false), "");
> + static_assert(test_category<is_structural, SLType>(false), "");
> + static_assert(test_category<is_structural, LType[5]>(false), "");
> + static_assert(test_category<is_structural, NLType>(false), "");
> + static_assert(test_category<is_structural, NLType[5]>(false), "");
> + static_assert(test_category<is_structural, A>(false), "");
> + static_assert(test_category<is_structural, const B>(false), "");
> + static_assert(test_category<is_structural, C>(false), "");
> + static_assert(test_category<is_structural, E>(false), "");
> +}
> --- libstdc++-v3/testsuite/20_util/variable_templates_for_traits.cc.jj
> 2026-03-02 07:43:12.638783181 +0100
> +++ libstdc++-v3/testsuite/20_util/variable_templates_for_traits.cc
> 2026-03-26 16:26:15.363208079 +0100
> @@ -340,6 +340,11 @@ static_assert(is_consteval_only_v<declty
> static_assert(!is_consteval_only_v<int> && !is_consteval_only<int>::value,
> "");
> #endif
>
> +#if __cpp_lib_is_structural >= 202603L
> +static_assert(is_structural_v<int> && is_structural<int>::value, "");
> +static_assert(!is_structural_v<int &&> && !is_structural<int &&>::value, "");
> +#endif
> +
> static_assert(negation_v<false_type>, "");
> static_assert(!negation_v<true_type>, "");
> static_assert(conjunction_v<>, "");
> --- gcc/cp/metafns.h.jj 2026-03-25 20:19:10.715163161 +0100
> +++ gcc/cp/metafns.h 2026-03-26 14:31:28.304836854 +0100
> @@ -200,6 +200,7 @@ enum metafn_code {
> 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,
> METAFN_IS_BOUNDED_ARRAY_TYPE,
> @@ -472,7 +473,7 @@ enum metafn_kind {
> = (METAFN_KIND_ARGS_INPUT_RANGE << METAFN_KIND_SHIFT)
> | METAFN_KIND_RET_U8STRING_VIEW
> };
> -#line 448 "metafns.gperf"
> +#line 449 "metafns.gperf"
> struct metafn_info
> {
> /* A name within "std::meta::" (or "std::meta::access_context::"). */
> @@ -484,7 +485,7 @@ struct metafn_info
> /* METAFN_KIND_ kind of arguments and return type. */
> metafn_kind kind;
> };
> -/* maximum key range = 879, duplicates = 0 */
> +/* maximum key range = 872, duplicates = 0 */
>
> class metafn_lookup
> {
> @@ -499,32 +500,32 @@ metafn_lookup::hash (const char *str, si
> {
> static const unsigned short asso_values[] =
> {
> - 918, 918, 918, 918, 918, 918, 918, 918, 918, 918,
> - 918, 918, 918, 918, 918, 918, 918, 918, 918, 918,
> - 918, 918, 918, 918, 918, 918, 918, 918, 918, 918,
> - 918, 918, 918, 918, 918, 918, 918, 918, 918, 918,
> - 918, 918, 918, 918, 918, 918, 918, 918, 918, 918,
> - 918, 918, 918, 918, 918, 918, 0, 918, 918, 918,
> - 918, 918, 918, 918, 918, 918, 918, 918, 918, 918,
> - 918, 918, 918, 918, 918, 918, 918, 918, 918, 918,
> - 918, 918, 918, 918, 918, 918, 918, 918, 918, 918,
> - 918, 918, 918, 918, 918, 5, 100, 145, 10, 45,
> - 165, 5, 55, 50, 72, 20, 248, 0, 55, 105,
> - 0, 205, 0, 45, 35, 55, 25, 195, 5, 199,
> - 20, 311, 20, 918, 918, 918, 918, 918, 918, 918,
> - 918, 918, 918, 918, 918, 918, 918, 918, 918, 918,
> - 918, 918, 918, 918, 918, 918, 918, 918, 918, 918,
> - 918, 918, 918, 918, 918, 918, 918, 918, 918, 918,
> - 918, 918, 918, 918, 918, 918, 918, 918, 918, 918,
> - 918, 918, 918, 918, 918, 918, 918, 918, 918, 918,
> - 918, 918, 918, 918, 918, 918, 918, 918, 918, 918,
> - 918, 918, 918, 918, 918, 918, 918, 918, 918, 918,
> - 918, 918, 918, 918, 918, 918, 918, 918, 918, 918,
> - 918, 918, 918, 918, 918, 918, 918, 918, 918, 918,
> - 918, 918, 918, 918, 918, 918, 918, 918, 918, 918,
> - 918, 918, 918, 918, 918, 918, 918, 918, 918, 918,
> - 918, 918, 918, 918, 918, 918, 918, 918, 918, 918,
> - 918, 918, 918, 918, 918, 918, 918
> + 908, 908, 908, 908, 908, 908, 908, 908, 908, 908,
> + 908, 908, 908, 908, 908, 908, 908, 908, 908, 908,
> + 908, 908, 908, 908, 908, 908, 908, 908, 908, 908,
> + 908, 908, 908, 908, 908, 908, 908, 908, 908, 908,
> + 908, 908, 908, 908, 908, 908, 908, 908, 908, 908,
> + 908, 908, 908, 908, 908, 908, 0, 908, 908, 908,
> + 908, 908, 908, 908, 908, 908, 908, 908, 908, 908,
> + 908, 908, 908, 908, 908, 908, 908, 908, 908, 908,
> + 908, 908, 908, 908, 908, 908, 908, 908, 908, 908,
> + 908, 908, 908, 908, 908, 5, 55, 145, 10, 45,
> + 165, 5, 55, 15, 3, 20, 386, 0, 55, 105,
> + 0, 205, 0, 45, 35, 55, 25, 225, 5, 119,
> + 10, 271, 20, 908, 908, 908, 908, 908, 908, 908,
> + 908, 908, 908, 908, 908, 908, 908, 908, 908, 908,
> + 908, 908, 908, 908, 908, 908, 908, 908, 908, 908,
> + 908, 908, 908, 908, 908, 908, 908, 908, 908, 908,
> + 908, 908, 908, 908, 908, 908, 908, 908, 908, 908,
> + 908, 908, 908, 908, 908, 908, 908, 908, 908, 908,
> + 908, 908, 908, 908, 908, 908, 908, 908, 908, 908,
> + 908, 908, 908, 908, 908, 908, 908, 908, 908, 908,
> + 908, 908, 908, 908, 908, 908, 908, 908, 908, 908,
> + 908, 908, 908, 908, 908, 908, 908, 908, 908, 908,
> + 908, 908, 908, 908, 908, 908, 908, 908, 908, 908,
> + 908, 908, 908, 908, 908, 908, 908, 908, 908, 908,
> + 908, 908, 908, 908, 908, 908, 908, 908, 908, 908,
> + 908, 908, 908, 908, 908, 908, 908
> };
> unsigned int hval = len;
>
> @@ -583,11 +584,11 @@ metafn_lookup::find (const char *str, si
> {
> enum
> {
> - TOTAL_KEYWORDS = 234,
> + TOTAL_KEYWORDS = 235,
> MIN_WORD_LENGTH = 4,
> MAX_WORD_LENGTH = 40,
> - MIN_HASH_VALUE = 39,
> - MAX_HASH_VALUE = 917
> + MIN_HASH_VALUE = 36,
> + MAX_HASH_VALUE = 907
> };
>
> #if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined
> __clang__ && __clang_major__ >= 3)
> @@ -596,473 +597,475 @@ metafn_lookup::find (const char *str, si
> #endif
> static const struct metafn_info wordlist[] =
> {
> -#line 648 "metafns.gperf"
> +#line 498 "metafns.gperf"
> + {"has_module_linkage", METAFN_HAS_MODULE_LINKAGE,
> METAFN_KIND_BOOL_INFO,},
> +#line 650 "metafns.gperf"
> {"rank", METAFN_RANK, METAFN_KIND_SIZE_T_TINFO,},
> -#line 578 "metafns.gperf"
> +#line 579 "metafns.gperf"
> {"is_void_type", METAFN_IS_VOID_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 583 "metafns.gperf"
> +#line 584 "metafns.gperf"
> {"is_pointer_type", METAFN_IS_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 489 "metafns.gperf"
> +#line 490 "metafns.gperf"
> {"is_volatile", METAFN_IS_VOLATILE, METAFN_KIND_BOOL_INFO,},
> -#line 535 "metafns.gperf"
> +#line 536 "metafns.gperf"
> {"is_value", METAFN_IS_VALUE, METAFN_KIND_BOOL_INFO,},
> -#line 542 "metafns.gperf"
> +#line 543 "metafns.gperf"
> {"is_base", METAFN_IS_BASE, METAFN_KIND_BOOL_INFO,},
> -#line 503 "metafns.gperf"
> +#line 504 "metafns.gperf"
> {"is_variable", METAFN_IS_VARIABLE, METAFN_KIND_BOOL_INFO,},
> -#line 654 "metafns.gperf"
> +#line 656 "metafns.gperf"
> {"is_nothrow_convertible_type", METAFN_IS_NOTHROW_CONVERTIBLE_TYPE,
> METAFN_KIND_BOOL_TINFO_TINFO,},
> -#line 633 "metafns.gperf"
> +#line 635 "metafns.gperf"
> {"is_nothrow_constructible_type",
> METAFN_IS_NOTHROW_CONSTRUCTIBLE_TYPE,
> METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,},
> -#line 659 "metafns.gperf"
> +#line 661 "metafns.gperf"
> {"is_nothrow_invocable_type", METAFN_IS_NOTHROW_INVOCABLE_TYPE,
> METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,},
> -#line 638 "metafns.gperf"
> +#line 640 "metafns.gperf"
> {"is_nothrow_copy_assignable_type",
> METAFN_IS_NOTHROW_COPY_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 660 "metafns.gperf"
> +#line 662 "metafns.gperf"
> {"is_nothrow_invocable_r_type", METAFN_IS_NOTHROW_INVOCABLE_R_TYPE,
> METAFN_KIND_BOOL_TINFO_TINFO_REFLECTION_RANGET,},
> -#line 635 "metafns.gperf"
> +#line 637 "metafns.gperf"
> {"is_nothrow_copy_constructible_type",
> METAFN_IS_NOTHROW_COPY_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 651 "metafns.gperf"
> +#line 653 "metafns.gperf"
> {"is_base_of_type", METAFN_IS_BASE_OF_TYPE,
> METAFN_KIND_BOOL_TINFO_TINFO,},
> -#line 639 "metafns.gperf"
> +#line 641 "metafns.gperf"
> {"is_nothrow_move_assignable_type",
> METAFN_IS_NOTHROW_MOVE_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 636 "metafns.gperf"
> +#line 638 "metafns.gperf"
> {"is_nothrow_move_constructible_type",
> METAFN_IS_NOTHROW_MOVE_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 527 "metafns.gperf"
> +#line 528 "metafns.gperf"
> {"is_variable_template", METAFN_IS_VARIABLE_TEMPLATE,
> METAFN_KIND_BOOL_INFO,},
> -#line 686 "metafns.gperf"
> +#line 688 "metafns.gperf"
> {"variant_size", METAFN_VARIANT_SIZE, METAFN_KIND_SIZE_T_TINFO,},
> -#line 579 "metafns.gperf"
> +#line 580 "metafns.gperf"
> {"is_null_pointer_type", METAFN_IS_NULL_POINTER_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> -#line 504 "metafns.gperf"
> +#line 505 "metafns.gperf"
> {"is_type", METAFN_IS_TYPE, METAFN_KIND_BOOL_INFO,},
> -#line 472 "metafns.gperf"
> +#line 496 "metafns.gperf"
> + {"has_automatic_storage_duration",
> METAFN_HAS_AUTOMATIC_STORAGE_DURATION, METAFN_KIND_BOOL_INFO,},
> +#line 473 "metafns.gperf"
> {"is_public", METAFN_IS_PUBLIC, METAFN_KIND_BOOL_INFO,},
> -#line 484 "metafns.gperf"
> +#line 485 "metafns.gperf"
> {"is_noexcept", METAFN_IS_NOEXCEPT, METAFN_KIND_BOOL_INFO,},
> -#line 567 "metafns.gperf"
> +#line 568 "metafns.gperf"
> {"extract", METAFN_EXTRACT, METAFN_KIND_TEMPLATE_PARM_INFO,},
> -#line 687 "metafns.gperf"
> +#line 689 "metafns.gperf"
> {"variant_alternative", METAFN_VARIANT_ALTERNATIVE,
> METAFN_KIND_INFO_SIZE_T_TINFO,},
> -#line 605 "metafns.gperf"
> +#line 545 "metafns.gperf"
> + {"has_parent", METAFN_HAS_PARENT, METAFN_KIND_BOOL_INFO,},
> +#line 606 "metafns.gperf"
> {"is_polymorphic_type", METAFN_IS_POLYMORPHIC_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> -#line 474 "metafns.gperf"
> +#line 475 "metafns.gperf"
> {"is_private", METAFN_IS_PRIVATE, METAFN_KIND_BOOL_INFO,},
> -#line 508 "metafns.gperf"
> +#line 509 "metafns.gperf"
> {"is_function", METAFN_IS_FUNCTION, METAFN_KIND_BOOL_INFO,},
> -#line 505 "metafns.gperf"
> +#line 506 "metafns.gperf"
> {"is_namespace", METAFN_IS_NAMESPACE, METAFN_KIND_BOOL_INFO,},
> -#line 656 "metafns.gperf"
> +#line 658 "metafns.gperf"
> {"is_pointer_interconvertible_base_of_type",
> METAFN_IS_POINTER_INTERCONVERTIBLE_BASE_OF_TYPE,
> METAFN_KIND_BOOL_TINFO_TINFO,},
> -#line 612 "metafns.gperf"
> +#line 614 "metafns.gperf"
> {"is_bounded_array_type", METAFN_IS_BOUNDED_ARRAY_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> -#line 488 "metafns.gperf"
> +#line 489 "metafns.gperf"
> {"is_const", METAFN_IS_CONST, METAFN_KIND_BOOL_INFO,},
> -#line 534 "metafns.gperf"
> +#line 535 "metafns.gperf"
> {"is_concept", METAFN_IS_CONCEPT, METAFN_KIND_BOOL_INFO,},
> -#line 650 "metafns.gperf"
> +#line 652 "metafns.gperf"
> {"is_same_type", METAFN_IS_SAME_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
> -#line 558 "metafns.gperf"
> +#line 559 "metafns.gperf"
> {"bases_of", METAFN_BASES_OF,
> METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,},
> -#line 497 "metafns.gperf"
> - {"has_module_linkage", METAFN_HAS_MODULE_LINKAGE,
> METAFN_KIND_BOOL_INFO,},
> -#line 526 "metafns.gperf"
> +#line 544 "metafns.gperf"
> + {"has_default_member_initializer",
> METAFN_HAS_DEFAULT_MEMBER_INITIALIZER, METAFN_KIND_BOOL_INFO,},
> +#line 527 "metafns.gperf"
> {"is_function_template", METAFN_IS_FUNCTION_TEMPLATE,
> METAFN_KIND_BOOL_INFO,},
> -#line 637 "metafns.gperf"
> +#line 639 "metafns.gperf"
> {"is_nothrow_assignable_type", METAFN_IS_NOTHROW_ASSIGNABLE_TYPE,
> METAFN_KIND_BOOL_TINFO_TINFO,},
> -#line 509 "metafns.gperf"
> +#line 510 "metafns.gperf"
> {"is_conversion_function", METAFN_IS_CONVERSION_FUNCTION,
> METAFN_KIND_BOOL_INFO,},
> -#line 642 "metafns.gperf"
> +#line 644 "metafns.gperf"
> {"is_nothrow_destructible_type", METAFN_IS_NOTHROW_DESTRUCTIBLE_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> -#line 653 "metafns.gperf"
> +#line 655 "metafns.gperf"
> {"is_convertible_type", METAFN_IS_CONVERTIBLE_TYPE,
> METAFN_KIND_BOOL_TINFO_TINFO,},
> -#line 643 "metafns.gperf"
> +#line 645 "metafns.gperf"
> {"is_implicit_lifetime_type", METAFN_IS_IMPLICIT_LIFETIME_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> -#line 525 "metafns.gperf"
> +#line 524 "metafns.gperf"
> + {"has_default_argument", METAFN_HAS_DEFAULT_ARGUMENT,
> METAFN_KIND_BOOL_INFO,},
> +#line 526 "metafns.gperf"
> {"is_template", METAFN_IS_TEMPLATE, METAFN_KIND_BOOL_INFO,},
> -#line 634 "metafns.gperf"
> +#line 636 "metafns.gperf"
> {"is_nothrow_default_constructible_type",
> METAFN_IS_NOTHROW_DEFAULT_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 568 "metafns.gperf"
> +#line 569 "metafns.gperf"
> {"can_substitute", METAFN_CAN_SUBSTITUTE,
> METAFN_KIND_INFO_INFO_REFLECTION_RANGE,},
> -#line 530 "metafns.gperf"
> +#line 531 "metafns.gperf"
> {"is_conversion_function_template",
> METAFN_IS_CONVERSION_FUNCTION_TEMPLATE, METAFN_KIND_BOOL_INFO,},
> -#line 461 "metafns.gperf"
> +#line 462 "metafns.gperf"
> {"symbol_of", METAFN_SYMBOL_OF, METAFN_KIND_STRING_VIEW_OPERATORS,},
> -#line 617 "metafns.gperf"
> +#line 690 "metafns.gperf"
> + {"type_order", METAFN_TYPE_ORDER,
> METAFN_KIND_STRONG_ORDERING_TINFO_TINFO,},
> +#line 619 "metafns.gperf"
> {"is_copy_constructible_type", METAFN_IS_COPY_CONSTRUCTIBLE_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> -#line 615 "metafns.gperf"
> +#line 501 "metafns.gperf"
> + {"has_linkage", METAFN_HAS_LINKAGE, METAFN_KIND_BOOL_INFO,},
> +#line 525 "metafns.gperf"
> + {"has_ellipsis_parameter", METAFN_HAS_ELLIPSIS_PARAMETER,
> METAFN_KIND_BOOL_INFO,},
> +#line 617 "metafns.gperf"
> {"is_constructible_type", METAFN_IS_CONSTRUCTIBLE_TYPE,
> METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,},
> -#line 495 "metafns.gperf"
> - {"has_automatic_storage_duration",
> METAFN_HAS_AUTOMATIC_STORAGE_DURATION, METAFN_KIND_BOOL_INFO,},
> -#line 620 "metafns.gperf"
> +#line 470 "metafns.gperf"
> + {"type_of", METAFN_TYPE_OF, METAFN_KIND_INFO_INFO,},
> +#line 622 "metafns.gperf"
> {"is_copy_assignable_type", METAFN_IS_COPY_ASSIGNABLE_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> -#line 684 "metafns.gperf"
> +#line 686 "metafns.gperf"
> {"tuple_size", METAFN_TUPLE_SIZE, METAFN_KIND_SIZE_T_TINFO,},
> -#line 506 "metafns.gperf"
> +#line 507 "metafns.gperf"
> {"is_type_alias", METAFN_IS_TYPE_ALIAS, METAFN_KIND_BOOL_INFO,},
> -#line 515 "metafns.gperf"
> +#line 516 "metafns.gperf"
> {"is_copy_constructor", METAFN_IS_COPY_CONSTRUCTOR,
> METAFN_KIND_BOOL_INFO,},
> -#line 551 "metafns.gperf"
> +#line 552 "metafns.gperf"
> {"variable_of", METAFN_VARIABLE_OF, METAFN_KIND_INFO_INFO,},
> -#line 544 "metafns.gperf"
> - {"has_parent", METAFN_HAS_PARENT, METAFN_KIND_BOOL_INFO,},
> -#line 592 "metafns.gperf"
> +#line 593 "metafns.gperf"
> {"is_reflection_type", METAFN_IS_REFLECTION_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> -#line 595 "metafns.gperf"
> +#line 596 "metafns.gperf"
> {"is_fundamental_type", METAFN_IS_FUNDAMENTAL_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> -#line 655 "metafns.gperf"
> +#line 657 "metafns.gperf"
> {"is_layout_compatible_type", METAFN_IS_LAYOUT_COMPATIBLE_TYPE,
> METAFN_KIND_BOOL_TINFO_TINFO,},
> -#line 566 "metafns.gperf"
> +#line 567 "metafns.gperf"
> {"bit_size_of", METAFN_BIT_SIZE_OF, METAFN_KIND_SIZE_T_INFO,},
> -#line 518 "metafns.gperf"
> +#line 519 "metafns.gperf"
> {"is_copy_assignment", METAFN_IS_COPY_ASSIGNMENT,
> METAFN_KIND_BOOL_INFO,},
> -#line 691 "metafns.gperf"
> +#line 693 "metafns.gperf"
> {"current", METAFN_ACCESS_CONTEXT_CURRENT,
> METAFN_KIND_ACCESS_CONTEXT_VOID,},
> -#line 678 "metafns.gperf"
> +#line 680 "metafns.gperf"
> {"common_type", METAFN_COMMON_TYPE,
> METAFN_KIND_INFO_REFLECTION_RANGET,},
> -#line 533 "metafns.gperf"
> +#line 534 "metafns.gperf"
> {"is_constructor_template", METAFN_IS_CONSTRUCTOR_TEMPLATE,
> METAFN_KIND_BOOL_INFO,},
> -#line 688 "metafns.gperf"
> - {"type_order", METAFN_TYPE_ORDER,
> METAFN_KIND_STRONG_ORDERING_TINFO_TINFO,},
> -#line 679 "metafns.gperf"
> +#line 681 "metafns.gperf"
> {"common_reference", METAFN_COMMON_REFERENCE,
> METAFN_KIND_INFO_REFLECTION_RANGET,},
> -#line 543 "metafns.gperf"
> - {"has_default_member_initializer",
> METAFN_HAS_DEFAULT_MEMBER_INITIALIZER, METAFN_KIND_BOOL_INFO,},
> -#line 685 "metafns.gperf"
> +#line 565 "metafns.gperf"
> + {"size_of", METAFN_SIZE_OF, METAFN_KIND_SIZE_T_INFO,},
> +#line 687 "metafns.gperf"
> {"tuple_element", METAFN_TUPLE_ELEMENT,
> METAFN_KIND_INFO_SIZE_T_TINFO,},
> -#line 572 "metafns.gperf"
> +#line 573 "metafns.gperf"
> {"reflect_function", METAFN_REFLECT_FUNCTION,
> METAFN_KIND_INFO_TEMPLATE_PARM_REF,},
> -#line 523 "metafns.gperf"
> - {"has_default_argument", METAFN_HAS_DEFAULT_ARGUMENT,
> METAFN_KIND_BOOL_INFO,},
> -#line 618 "metafns.gperf"
> +#line 625 "metafns.gperf"
> + {"is_swappable_type", METAFN_IS_SWAPPABLE_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> +#line 620 "metafns.gperf"
> {"is_move_constructible_type", METAFN_IS_MOVE_CONSTRUCTIBLE_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> -#line 469 "metafns.gperf"
> - {"type_of", METAFN_TYPE_OF, METAFN_KIND_INFO_INFO,},
> -#line 513 "metafns.gperf"
> +#line 514 "metafns.gperf"
> {"is_constructor", METAFN_IS_CONSTRUCTOR, METAFN_KIND_BOOL_INFO,},
> -#line 623 "metafns.gperf"
> - {"is_swappable_type", METAFN_IS_SWAPPABLE_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> -#line 641 "metafns.gperf"
> +#line 643 "metafns.gperf"
> {"is_nothrow_swappable_type", METAFN_IS_NOTHROW_SWAPPABLE_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> -#line 593 "metafns.gperf"
> +#line 594 "metafns.gperf"
> {"is_reference_type", METAFN_IS_REFERENCE_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> -#line 500 "metafns.gperf"
> - {"has_linkage", METAFN_HAS_LINKAGE, METAFN_KIND_BOOL_INFO,},
> -#line 640 "metafns.gperf"
> +#line 642 "metafns.gperf"
> {"is_nothrow_swappable_with_type",
> METAFN_IS_NOTHROW_SWAPPABLE_WITH_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
> -#line 599 "metafns.gperf"
> +#line 600 "metafns.gperf"
> {"is_member_pointer_type", METAFN_IS_MEMBER_POINTER_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> -#line 621 "metafns.gperf"
> +#line 623 "metafns.gperf"
> {"is_move_assignable_type", METAFN_IS_MOVE_ASSIGNABLE_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> -#line 524 "metafns.gperf"
> - {"has_ellipsis_parameter", METAFN_HAS_ELLIPSIS_PARAMETER,
> METAFN_KIND_BOOL_INFO,},
> -#line 516 "metafns.gperf"
> +#line 517 "metafns.gperf"
> {"is_move_constructor", METAFN_IS_MOVE_CONSTRUCTOR,
> METAFN_KIND_BOOL_INFO,},
> -#line 550 "metafns.gperf"
> +#line 551 "metafns.gperf"
> {"parameters_of", METAFN_PARAMETERS_OF, METAFN_KIND_VECTOR_INFO_INFO,},
> -#line 564 "metafns.gperf"
> - {"size_of", METAFN_SIZE_OF, METAFN_KIND_SIZE_T_INFO,},
> -#line 519 "metafns.gperf"
> +#line 520 "metafns.gperf"
> {"is_move_assignment", METAFN_IS_MOVE_ASSIGNMENT,
> METAFN_KIND_BOOL_INFO,},
> -#line 619 "metafns.gperf"
> +#line 621 "metafns.gperf"
> {"is_assignable_type", METAFN_IS_ASSIGNABLE_TYPE,
> METAFN_KIND_BOOL_TINFO_TINFO,},
> -#line 538 "metafns.gperf"
> +#line 539 "metafns.gperf"
> {"is_class_member", METAFN_IS_CLASS_MEMBER, METAFN_KIND_BOOL_INFO,},
> -#line 602 "metafns.gperf"
> +#line 603 "metafns.gperf"
> {"is_trivially_copyable_type", METAFN_IS_TRIVIALLY_COPYABLE_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> -#line 517 "metafns.gperf"
> +#line 518 "metafns.gperf"
> {"is_assignment", METAFN_IS_ASSIGNMENT, METAFN_KIND_BOOL_INFO,},
> -#line 539 "metafns.gperf"
> +#line 540 "metafns.gperf"
> {"is_namespace_member", METAFN_IS_NAMESPACE_MEMBER,
> METAFN_KIND_BOOL_INFO,},
> -#line 557 "metafns.gperf"
> +#line 558 "metafns.gperf"
> {"members_of", METAFN_MEMBERS_OF,
> METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,},
> -#line 625 "metafns.gperf"
> +#line 627 "metafns.gperf"
> {"is_trivially_constructible_type",
> METAFN_IS_TRIVIALLY_CONSTRUCTIBLE_TYPE,
> METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,},
> -#line 630 "metafns.gperf"
> +#line 632 "metafns.gperf"
> {"is_trivially_copy_assignable_type",
> METAFN_IS_TRIVIALLY_COPY_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 627 "metafns.gperf"
> +#line 609 "metafns.gperf"
> + {"is_aggregate_type", METAFN_IS_AGGREGATE_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> +#line 629 "metafns.gperf"
> {"is_trivially_copy_constructible_type",
> METAFN_IS_TRIVIALLY_COPY_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 649 "metafns.gperf"
> +#line 586 "metafns.gperf"
> + {"is_rvalue_reference_type", METAFN_IS_RVALUE_REFERENCE_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> +#line 646 "metafns.gperf"
> + {"has_virtual_destructor", METAFN_HAS_VIRTUAL_DESTRUCTOR,
> METAFN_KIND_BOOL_TINFO,},
> +#line 651 "metafns.gperf"
> {"extent", METAFN_EXTENT, METAFN_KIND_SIZE_T_TINFO_UNSIGNED,},
> -#line 588 "metafns.gperf"
> +#line 589 "metafns.gperf"
> {"is_enum_type", METAFN_IS_ENUM_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 548 "metafns.gperf"
> +#line 549 "metafns.gperf"
> {"template_of", METAFN_TEMPLATE_OF, METAFN_KIND_INFO_INFO,},
> -#line 528 "metafns.gperf"
> +#line 529 "metafns.gperf"
> {"is_class_template", METAFN_IS_CLASS_TEMPLATE,
> METAFN_KIND_BOOL_INFO,},
> -#line 512 "metafns.gperf"
> +#line 513 "metafns.gperf"
> {"is_special_member_function", METAFN_IS_SPECIAL_MEMBER_FUNCTION,
> METAFN_KIND_BOOL_INFO,},
> -#line 473 "metafns.gperf"
> +#line 474 "metafns.gperf"
> {"is_protected", METAFN_IS_PROTECTED, METAFN_KIND_BOOL_INFO,},
> -#line 540 "metafns.gperf"
> +#line 585 "metafns.gperf"
> + {"is_lvalue_reference_type", METAFN_IS_LVALUE_REFERENCE_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> +#line 541 "metafns.gperf"
> {"is_nonstatic_data_member", METAFN_IS_NONSTATIC_DATA_MEMBER,
> METAFN_KIND_BOOL_INFO,},
> -#line 682 "metafns.gperf"
> - {"unwrap_reference", METAFN_UNWRAP_REFERENCE, METAFN_KIND_INFO_TINFO,},
> -#line 502 "metafns.gperf"
> +#line 503 "metafns.gperf"
> {"is_enumerable_type", METAFN_IS_ENUMERABLE_TYPE,
> METAFN_KIND_BOOL_INFO,},
> -#line 594 "metafns.gperf"
> +#line 494 "metafns.gperf"
> + {"has_static_storage_duration", METAFN_HAS_STATIC_STORAGE_DURATION,
> METAFN_KIND_BOOL_INFO,},
> +#line 595 "metafns.gperf"
> {"is_arithmetic_type", METAFN_IS_ARITHMETIC_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> -#line 545 "metafns.gperf"
> +#line 546 "metafns.gperf"
> {"parent_of", METAFN_PARENT_OF, METAFN_KIND_INFO_INFO,},
> -#line 476 "metafns.gperf"
> +#line 477 "metafns.gperf"
> {"is_pure_virtual", METAFN_IS_PURE_VIRTUAL, METAFN_KIND_BOOL_INFO,},
> -#line 675 "metafns.gperf"
> +#line 677 "metafns.gperf"
> {"add_pointer", METAFN_ADD_POINTER, METAFN_KIND_INFO_TINFO,},
> -#line 616 "metafns.gperf"
> +#line 618 "metafns.gperf"
> {"is_default_constructible_type",
> METAFN_IS_DEFAULT_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 680 "metafns.gperf"
> - {"underlying_type", METAFN_UNDERLYING_TYPE, METAFN_KIND_INFO_TINFO,},
> -#line 521 "metafns.gperf"
> +#line 522 "metafns.gperf"
> {"is_function_parameter", METAFN_IS_FUNCTION_PARAMETER,
> METAFN_KIND_BOOL_INFO,},
> -#line 464 "metafns.gperf"
> - {"identifier_of", METAFN_IDENTIFIER_OF, METAFN_KIND_STRING_VIEW_INFO,},
> -#line 597 "metafns.gperf"
> +#line 624 "metafns.gperf"
> + {"is_swappable_with_type", METAFN_IS_SWAPPABLE_WITH_TYPE,
> METAFN_KIND_BOOL_TINFO_TINFO,},
> +#line 499 "metafns.gperf"
> + {"has_external_linkage", METAFN_HAS_EXTERNAL_LINKAGE,
> METAFN_KIND_BOOL_INFO,},
> +#line 598 "metafns.gperf"
> {"is_scalar_type", METAFN_IS_SCALAR_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 669 "metafns.gperf"
> +#line 671 "metafns.gperf"
> {"add_rvalue_reference", METAFN_ADD_RVALUE_REFERENCE,
> METAFN_KIND_INFO_TINFO,},
> -#line 490 "metafns.gperf"
> +#line 491 "metafns.gperf"
> {"is_mutable_member", METAFN_IS_MUTABLE_MEMBER,
> METAFN_KIND_BOOL_INFO,},
> -#line 507 "metafns.gperf"
> +#line 508 "metafns.gperf"
> {"is_namespace_alias", METAFN_IS_NAMESPACE_ALIAS,
> METAFN_KIND_BOOL_INFO,},
> -#line 631 "metafns.gperf"
> +#line 684 "metafns.gperf"
> + {"unwrap_reference", METAFN_UNWRAP_REFERENCE, METAFN_KIND_INFO_TINFO,},
> +#line 633 "metafns.gperf"
> {"is_trivially_move_assignable_type",
> METAFN_IS_TRIVIALLY_MOVE_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 628 "metafns.gperf"
> +#line 630 "metafns.gperf"
> {"is_trivially_move_constructible_type",
> METAFN_IS_TRIVIALLY_MOVE_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 514 "metafns.gperf"
> +#line 515 "metafns.gperf"
> {"is_default_constructor", METAFN_IS_DEFAULT_CONSTRUCTOR,
> METAFN_KIND_BOOL_INFO,},
> -#line 486 "metafns.gperf"
> +#line 487 "metafns.gperf"
> {"is_enumerator", METAFN_IS_ENUMERATOR, METAFN_KIND_BOOL_INFO,},
> -#line 536 "metafns.gperf"
> +#line 537 "metafns.gperf"
> {"is_object", METAFN_IS_OBJECT, METAFN_KIND_BOOL_INFO,},
> -#line 608 "metafns.gperf"
> - {"is_aggregate_type", METAFN_IS_AGGREGATE_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> -#line 520 "metafns.gperf"
> +#line 682 "metafns.gperf"
> + {"underlying_type", METAFN_UNDERLYING_TYPE, METAFN_KIND_INFO_TINFO,},
> +#line 521 "metafns.gperf"
> {"is_destructor", METAFN_IS_DESTRUCTOR, METAFN_KIND_BOOL_INFO,},
> -#line 587 "metafns.gperf"
> +#line 605 "metafns.gperf"
> + {"is_empty_type", METAFN_IS_EMPTY_TYPE, METAFN_KIND_BOOL_TINFO,},
> +#line 588 "metafns.gperf"
> {"is_member_function_pointer_type",
> METAFN_IS_MEMBER_FUNCTION_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 596 "metafns.gperf"
> +#line 465 "metafns.gperf"
> + {"identifier_of", METAFN_IDENTIFIER_OF, METAFN_KIND_STRING_VIEW_INFO,},
> +#line 597 "metafns.gperf"
> {"is_object_type", METAFN_IS_OBJECT_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 569 "metafns.gperf"
> - {"substitute", METAFN_SUBSTITUTE,
> METAFN_KIND_INFO_INFO_REFLECTION_RANGE,},
> -#line 585 "metafns.gperf"
> - {"is_rvalue_reference_type", METAFN_IS_RVALUE_REFERENCE_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> -#line 666 "metafns.gperf"
> +#line 602 "metafns.gperf"
> + {"is_volatile_type", METAFN_IS_VOLATILE_TYPE, METAFN_KIND_BOOL_TINFO,},
> +#line 668 "metafns.gperf"
> {"add_cv", METAFN_ADD_CV, METAFN_KIND_INFO_TINFO,},
> -#line 570 "metafns.gperf"
> +#line 574 "metafns.gperf"
> + {"reflect_constant_string", METAFN_REFLECT_CONSTANT_STRING,
> METAFN_KIND_INFO_INPUT_RANGE,},
> +#line 571 "metafns.gperf"
> {"reflect_constant", METAFN_REFLECT_CONSTANT,
> METAFN_KIND_INFO_TEMPLATE_PARM,},
> -#line 629 "metafns.gperf"
> +#line 631 "metafns.gperf"
> {"is_trivially_assignable_type", METAFN_IS_TRIVIALLY_ASSIGNABLE_TYPE,
> METAFN_KIND_BOOL_TINFO_TINFO,},
> -#line 475 "metafns.gperf"
> - {"is_virtual", METAFN_IS_VIRTUAL, METAFN_KIND_BOOL_INFO,},
> -#line 493 "metafns.gperf"
> - {"has_static_storage_duration", METAFN_HAS_STATIC_STORAGE_DURATION,
> METAFN_KIND_BOOL_INFO,},
> -#line 668 "metafns.gperf"
> +#line 670 "metafns.gperf"
> {"add_lvalue_reference", METAFN_ADD_LVALUE_REFERENCE,
> METAFN_KIND_INFO_TINFO,},
> -#line 584 "metafns.gperf"
> - {"is_lvalue_reference_type", METAFN_IS_LVALUE_REFERENCE_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> -#line 562 "metafns.gperf"
> +#line 667 "metafns.gperf"
> + {"add_volatile", METAFN_ADD_VOLATILE, METAFN_KIND_INFO_TINFO,},
> +#line 673 "metafns.gperf"
> + {"make_unsigned", METAFN_MAKE_UNSIGNED, METAFN_KIND_INFO_TINFO,},
> +#line 563 "metafns.gperf"
> {"enumerators_of", METAFN_ENUMERATORS_OF,
> METAFN_KIND_VECTOR_INFO_INFO,},
> -#line 624 "metafns.gperf"
> +#line 626 "metafns.gperf"
> {"is_destructible_type", METAFN_IS_DESTRUCTIBLE_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> -#line 549 "metafns.gperf"
> +#line 550 "metafns.gperf"
> {"template_arguments_of", METAFN_TEMPLATE_ARGUMENTS_OF,
> METAFN_KIND_VECTOR_INFO_INFO,},
> -#line 657 "metafns.gperf"
> +#line 659 "metafns.gperf"
> {"is_invocable_type", METAFN_IS_INVOCABLE_TYPE,
> METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,},
> -#line 664 "metafns.gperf"
> +#line 666 "metafns.gperf"
> {"add_const", METAFN_ADD_CONST, METAFN_KIND_INFO_TINFO,},
> -#line 529 "metafns.gperf"
> +#line 570 "metafns.gperf"
> + {"substitute", METAFN_SUBSTITUTE,
> METAFN_KIND_INFO_INFO_REFLECTION_RANGE,},
> +#line 530 "metafns.gperf"
> {"is_alias_template", METAFN_IS_ALIAS_TEMPLATE,
> METAFN_KIND_BOOL_INFO,},
> -#line 604 "metafns.gperf"
> - {"is_empty_type", METAFN_IS_EMPTY_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 632 "metafns.gperf"
> +#line 601 "metafns.gperf"
> + {"is_const_type", METAFN_IS_CONST_TYPE, METAFN_KIND_BOOL_TINFO,},
> +#line 634 "metafns.gperf"
> {"is_trivially_destructible_type",
> METAFN_IS_TRIVIALLY_DESTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 498 "metafns.gperf"
> - {"has_external_linkage", METAFN_HAS_EXTERNAL_LINKAGE,
> METAFN_KIND_BOOL_INFO,},
> -#line 553 "metafns.gperf"
> +#line 484 "metafns.gperf"
> + {"is_explicit", METAFN_IS_EXPLICIT, METAFN_KIND_BOOL_INFO,},
> +#line 554 "metafns.gperf"
> {"is_accessible", METAFN_IS_ACCESSIBLE,
> METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,},
> -#line 658 "metafns.gperf"
> +#line 660 "metafns.gperf"
> {"is_invocable_r_type", METAFN_IS_INVOCABLE_R_TYPE,
> METAFN_KIND_BOOL_TINFO_TINFO_REFLECTION_RANGET,},
> -#line 652 "metafns.gperf"
> - {"is_virtual_base_of_type", METAFN_IS_VIRTUAL_BASE_OF_TYPE,
> METAFN_KIND_BOOL_TINFO_TINFO,},
> -#line 601 "metafns.gperf"
> - {"is_volatile_type", METAFN_IS_VOLATILE_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 573 "metafns.gperf"
> - {"reflect_constant_string", METAFN_REFLECT_CONSTANT_STRING,
> METAFN_KIND_INFO_INPUT_RANGE,},
> -#line 626 "metafns.gperf"
> +#line 502 "metafns.gperf"
> + {"is_complete_type", METAFN_IS_COMPLETE_TYPE, METAFN_KIND_BOOL_INFO,},
> +#line 611 "metafns.gperf"
> + {"is_structural_type", METAFN_IS_STRUCTURAL_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> +#line 628 "metafns.gperf"
> {"is_trivially_default_constructible_type",
> METAFN_IS_TRIVIALLY_DEFAULT_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 532 "metafns.gperf"
> - {"is_literal_operator_template", METAFN_IS_LITERAL_OPERATOR_TEMPLATE,
> METAFN_KIND_BOOL_INFO,},
> -#line 460 "metafns.gperf"
> +#line 478 "metafns.gperf"
> + {"is_override", METAFN_IS_OVERRIDE, METAFN_KIND_BOOL_INFO,},
> +#line 461 "metafns.gperf"
> {"operator_of", METAFN_OPERATOR_OF, METAFN_KIND_OPERATORS_INFO,},
> -#line 610 "metafns.gperf"
> - {"is_signed_type", METAFN_IS_SIGNED_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 614 "metafns.gperf"
> +#line 592 "metafns.gperf"
> + {"is_function_type", METAFN_IS_FUNCTION_TYPE, METAFN_KIND_BOOL_TINFO,},
> +#line 665 "metafns.gperf"
> + {"remove_cv", METAFN_REMOVE_CV, METAFN_KIND_INFO_TINFO,},
> +#line 616 "metafns.gperf"
> {"is_scoped_enum_type", METAFN_IS_SCOPED_ENUM_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> -#line 622 "metafns.gperf"
> - {"is_swappable_with_type", METAFN_IS_SWAPPABLE_WITH_TYPE,
> METAFN_KIND_BOOL_TINFO_TINFO,},
> -#line 561 "metafns.gperf"
> +#line 538 "metafns.gperf"
> + {"is_structured_binding", METAFN_IS_STRUCTURED_BINDING,
> METAFN_KIND_BOOL_INFO,},
> +#line 562 "metafns.gperf"
> {"subobjects_of", METAFN_SUBOBJECTS_OF,
> METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,},
> -#line 563 "metafns.gperf"
> +#line 564 "metafns.gperf"
> {"offset_of", METAFN_OFFSET_OF, METAFN_KIND_MEMBER_OFFSET_INFO,},
> -#line 537 "metafns.gperf"
> - {"is_structured_binding", METAFN_IS_STRUCTURED_BINDING,
> METAFN_KIND_BOOL_INFO,},
> -#line 478 "metafns.gperf"
> - {"is_final", METAFN_IS_FINAL, METAFN_KIND_BOOL_INFO,},
> -#line 511 "metafns.gperf"
> - {"is_literal_operator", METAFN_IS_LITERAL_OPERATOR,
> METAFN_KIND_BOOL_INFO,},
> -#line 671 "metafns.gperf"
> - {"make_unsigned", METAFN_MAKE_UNSIGNED, METAFN_KIND_INFO_TINFO,},
> +#line 669 "metafns.gperf"
> + {"remove_reference", METAFN_REMOVE_REFERENCE, METAFN_KIND_INFO_TINFO,},
> #line 467 "metafns.gperf"
> - {"u8display_string_of", METAFN_U8DISPLAY_STRING_OF,
> METAFN_KIND_U8STRING_VIEW_INFO,},
> -#line 644 "metafns.gperf"
> - {"has_virtual_destructor", METAFN_HAS_VIRTUAL_DESTRUCTOR,
> METAFN_KIND_BOOL_TINFO,},
> -#line 600 "metafns.gperf"
> - {"is_const_type", METAFN_IS_CONST_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 483 "metafns.gperf"
> - {"is_explicit", METAFN_IS_EXPLICIT, METAFN_KIND_BOOL_INFO,},
> -#line 576 "metafns.gperf"
> + {"display_string_of", METAFN_DISPLAY_STRING_OF,
> METAFN_KIND_STRING_VIEW_INFO,},
> +#line 523 "metafns.gperf"
> + {"is_explicit_object_parameter", METAFN_IS_EXPLICIT_OBJECT_PARAMETER,
> METAFN_KIND_BOOL_INFO,},
> +#line 577 "metafns.gperf"
> {"is_data_member_spec", METAFN_IS_DATA_MEMBER_SPEC,
> METAFN_KIND_BOOL_INFO,},
> -#line 501 "metafns.gperf"
> - {"is_complete_type", METAFN_IS_COMPLETE_TYPE, METAFN_KIND_BOOL_INFO,},
> -#line 487 "metafns.gperf"
> +#line 674 "metafns.gperf"
> + {"remove_extent", METAFN_REMOVE_EXTENT, METAFN_KIND_INFO_TINFO,},
> +#line 488 "metafns.gperf"
> {"is_annotation", METAFN_IS_ANNOTATION, METAFN_KIND_BOOL_INFO,},
> -#line 591 "metafns.gperf"
> - {"is_function_type", METAFN_IS_FUNCTION_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 552 "metafns.gperf"
> - {"return_type_of", METAFN_RETURN_TYPE_OF, METAFN_KIND_INFO_INFO,},
> -#line 479 "metafns.gperf"
> - {"is_deleted", METAFN_IS_DELETED, METAFN_KIND_BOOL_INFO,},
> -#line 471 "metafns.gperf"
> - {"constant_of", METAFN_CONSTANT_OF, METAFN_KIND_INFO_INFO,},
> -#line 665 "metafns.gperf"
> - {"add_volatile", METAFN_ADD_VOLATILE, METAFN_KIND_INFO_TINFO,},
> +#line 493 "metafns.gperf"
> + {"is_rvalue_reference_qualified",
> METAFN_IS_RVALUE_REFERENCE_QUALIFIED, METAFN_KIND_BOOL_INFO,},
> #line 480 "metafns.gperf"
> + {"is_deleted", METAFN_IS_DELETED, METAFN_KIND_BOOL_INFO,},
> +#line 468 "metafns.gperf"
> + {"u8display_string_of", METAFN_U8DISPLAY_STRING_OF,
> METAFN_KIND_U8STRING_VIEW_INFO,},
> +#line 481 "metafns.gperf"
> {"is_defaulted", METAFN_IS_DEFAULTED, METAFN_KIND_BOOL_INFO,},
> -#line 645 "metafns.gperf"
> - {"has_unique_object_representations",
> METAFN_HAS_UNIQUE_OBJECT_REPRESENTATIONS, METAFN_KIND_BOOL_TINFO,},
> -#line 586 "metafns.gperf"
> +#line 587 "metafns.gperf"
> {"is_member_object_pointer_type",
> METAFN_IS_MEMBER_OBJECT_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 466 "metafns.gperf"
> - {"display_string_of", METAFN_DISPLAY_STRING_OF,
> METAFN_KIND_STRING_VIEW_INFO,},
> -#line 522 "metafns.gperf"
> - {"is_explicit_object_parameter", METAFN_IS_EXPLICIT_OBJECT_PARAMETER,
> METAFN_KIND_BOOL_INFO,},
> -#line 541 "metafns.gperf"
> - {"is_static_member", METAFN_IS_STATIC_MEMBER, METAFN_KIND_BOOL_INFO,},
> -#line 470 "metafns.gperf"
> - {"object_of", METAFN_OBJECT_OF, METAFN_KIND_INFO_INFO,},
> -#line 609 "metafns.gperf"
> - {"is_consteval_only_type", METAFN_IS_CONSTEVAL_ONLY_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> -#line 477 "metafns.gperf"
> - {"is_override", METAFN_IS_OVERRIDE, METAFN_KIND_BOOL_INFO,},
> -#line 663 "metafns.gperf"
> - {"remove_cv", METAFN_REMOVE_CV, METAFN_KIND_INFO_TINFO,},
> -#line 571 "metafns.gperf"
> - {"reflect_object", METAFN_REFLECT_OBJECT,
> METAFN_KIND_INFO_TEMPLATE_PARM_REF,},
> -#line 581 "metafns.gperf"
> +#line 582 "metafns.gperf"
> {"is_floating_point_type", METAFN_IS_FLOATING_POINT_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> -#line 463 "metafns.gperf"
> - {"has_identifier", METAFN_HAS_IDENTIFIER, METAFN_KIND_BOOL_INFO,},
> -#line 667 "metafns.gperf"
> - {"remove_reference", METAFN_REMOVE_REFERENCE, METAFN_KIND_INFO_TINFO,},
> -#line 555 "metafns.gperf"
> - {"has_inaccessible_bases", METAFN_HAS_INACCESSIBLE_BASES,
> METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,},
> -#line 499 "metafns.gperf"
> - {"has_c_language_linkage", METAFN_HAS_C_LANGUAGE_LINKAGE,
> METAFN_KIND_BOOL_INFO,},
> -#line 556 "metafns.gperf"
> - {"has_inaccessible_subobjects", METAFN_HAS_INACCESSIBLE_SUBOBJECTS,
> METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,},
> -#line 672 "metafns.gperf"
> - {"remove_extent", METAFN_REMOVE_EXTENT, METAFN_KIND_INFO_TINFO,},
> -#line 554 "metafns.gperf"
> - {"has_inaccessible_nonstatic_data_members",
> METAFN_HAS_INACCESSIBLE_NONSTATIC_DATA_MEMBERS,
> METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,},
> #line 492 "metafns.gperf"
> - {"is_rvalue_reference_qualified",
> METAFN_IS_RVALUE_REFERENCE_QUALIFIED, METAFN_KIND_BOOL_INFO,},
> -#line 647 "metafns.gperf"
> + {"is_lvalue_reference_qualified",
> METAFN_IS_LVALUE_REFERENCE_QUALIFIED, METAFN_KIND_BOOL_INFO,},
> +#line 500 "metafns.gperf"
> + {"has_c_language_linkage", METAFN_HAS_C_LANGUAGE_LINKAGE,
> METAFN_KIND_BOOL_INFO,},
> +#line 678 "metafns.gperf"
> + {"remove_cvref", METAFN_REMOVE_CVREF, METAFN_KIND_INFO_TINFO,},
> +#line 471 "metafns.gperf"
> + {"object_of", METAFN_OBJECT_OF, METAFN_KIND_INFO_INFO,},
> +#line 610 "metafns.gperf"
> + {"is_consteval_only_type", METAFN_IS_CONSTEVAL_ONLY_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> +#line 676 "metafns.gperf"
> + {"remove_pointer", METAFN_REMOVE_POINTER, METAFN_KIND_INFO_TINFO,},
> +#line 553 "metafns.gperf"
> + {"return_type_of", METAFN_RETURN_TYPE_OF, METAFN_KIND_INFO_INFO,},
> +#line 472 "metafns.gperf"
> + {"constant_of", METAFN_CONSTANT_OF, METAFN_KIND_INFO_INFO,},
> +#line 649 "metafns.gperf"
> {"reference_converts_from_temporary",
> METAFN_REFERENCE_CONVERTS_FROM_TEMPORARY, METAFN_KIND_BOOL_TINFO_TINFO,},
> -#line 590 "metafns.gperf"
> +#line 663 "metafns.gperf"
> + {"remove_const", METAFN_REMOVE_CONST, METAFN_KIND_INFO_TINFO,},
> +#line 591 "metafns.gperf"
> {"is_class_type", METAFN_IS_CLASS_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 482 "metafns.gperf"
> - {"is_user_declared", METAFN_IS_USER_DECLARED, METAFN_KIND_BOOL_INFO,},
> -#line 575 "metafns.gperf"
> +#line 576 "metafns.gperf"
> {"data_member_spec", METAFN_DATA_MEMBER_SPEC,
> METAFN_KIND_INFO_TINFO_DATA_MEMBER_OPTIONS,},
> -#line 491 "metafns.gperf"
> - {"is_lvalue_reference_qualified",
> METAFN_IS_LVALUE_REFERENCE_QUALIFIED, METAFN_KIND_BOOL_INFO,},
> -#line 494 "metafns.gperf"
> +#line 675 "metafns.gperf"
> + {"remove_all_extents", METAFN_REMOVE_ALL_EXTENTS,
> METAFN_KIND_INFO_TINFO,},
> +#line 542 "metafns.gperf"
> + {"is_static_member", METAFN_IS_STATIC_MEMBER, METAFN_KIND_BOOL_INFO,},
> +#line 495 "metafns.gperf"
> {"has_thread_storage_duration", METAFN_HAS_THREAD_STORAGE_DURATION,
> METAFN_KIND_BOOL_INFO,},
> -#line 485 "metafns.gperf"
> - {"is_bit_field", METAFN_IS_BIT_FIELD, METAFN_KIND_BOOL_INFO,},
> -#line 676 "metafns.gperf"
> - {"remove_cvref", METAFN_REMOVE_CVREF, METAFN_KIND_INFO_TINFO,},
> -#line 681 "metafns.gperf"
> - {"invoke_result", METAFN_INVOKE_RESULT,
> METAFN_KIND_INFO_TINFO_REFLECTION_RANGET,},
> -#line 547 "metafns.gperf"
> +#line 476 "metafns.gperf"
> + {"is_virtual", METAFN_IS_VIRTUAL, METAFN_KIND_BOOL_INFO,},
> +#line 548 "metafns.gperf"
> {"has_template_arguments", METAFN_HAS_TEMPLATE_ARGUMENTS,
> METAFN_KIND_BOOL_INFO,},
> -#line 510 "metafns.gperf"
> - {"is_operator_function", METAFN_IS_OPERATOR_FUNCTION,
> METAFN_KIND_BOOL_INFO,},
> -#line 674 "metafns.gperf"
> - {"remove_pointer", METAFN_REMOVE_POINTER, METAFN_KIND_INFO_TINFO,},
> -#line 546 "metafns.gperf"
> - {"dealias", METAFN_DEALIAS, METAFN_KIND_INFO_INFO,},
> -#line 661 "metafns.gperf"
> - {"remove_const", METAFN_REMOVE_CONST, METAFN_KIND_INFO_TINFO,},
> -#line 531 "metafns.gperf"
> - {"is_operator_function_template",
> METAFN_IS_OPERATOR_FUNCTION_TEMPLATE, METAFN_KIND_BOOL_INFO,},
> -#line 646 "metafns.gperf"
> +#line 647 "metafns.gperf"
> + {"has_unique_object_representations",
> METAFN_HAS_UNIQUE_OBJECT_REPRESENTATIONS, METAFN_KIND_BOOL_TINFO,},
> +#line 654 "metafns.gperf"
> + {"is_virtual_base_of_type", METAFN_IS_VIRTUAL_BASE_OF_TYPE,
> METAFN_KIND_BOOL_TINFO_TINFO,},
> +#line 648 "metafns.gperf"
> {"reference_constructs_from_temporary",
> METAFN_REFERENCE_CONSTRUCTS_FROM_TEMPORARY, METAFN_KIND_BOOL_TINFO_TINFO,},
> -#line 673 "metafns.gperf"
> - {"remove_all_extents", METAFN_REMOVE_ALL_EXTENTS,
> METAFN_KIND_INFO_TINFO,},
> -#line 582 "metafns.gperf"
> - {"is_array_type", METAFN_IS_ARRAY_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 496 "metafns.gperf"
> - {"has_internal_linkage", METAFN_HAS_INTERNAL_LINKAGE,
> METAFN_KIND_BOOL_INFO,},
> -#line 670 "metafns.gperf"
> +#line 533 "metafns.gperf"
> + {"is_literal_operator_template", METAFN_IS_LITERAL_OPERATOR_TEMPLATE,
> METAFN_KIND_BOOL_INFO,},
> +#line 672 "metafns.gperf"
> {"make_signed", METAFN_MAKE_SIGNED, METAFN_KIND_INFO_TINFO,},
> -#line 559 "metafns.gperf"
> - {"static_data_members_of", METAFN_STATIC_DATA_MEMBERS_OF,
> METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,},
> -#line 598 "metafns.gperf"
> +#line 583 "metafns.gperf"
> + {"is_array_type", METAFN_IS_ARRAY_TYPE, METAFN_KIND_BOOL_TINFO,},
> +#line 612 "metafns.gperf"
> + {"is_signed_type", METAFN_IS_SIGNED_TYPE, METAFN_KIND_BOOL_TINFO,},
> +#line 599 "metafns.gperf"
> {"is_compound_type", METAFN_IS_COMPOUND_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 606 "metafns.gperf"
> +#line 479 "metafns.gperf"
> + {"is_final", METAFN_IS_FINAL, METAFN_KIND_BOOL_INFO,},
> +#line 512 "metafns.gperf"
> + {"is_literal_operator", METAFN_IS_LITERAL_OPERATOR,
> METAFN_KIND_BOOL_INFO,},
> +#line 607 "metafns.gperf"
> {"is_abstract_type", METAFN_IS_ABSTRACT_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 577 "metafns.gperf"
> - {"define_aggregate", METAFN_DEFINE_AGGREGATE,
> METAFN_KIND_INFO_INFO_REFLECTION_RANGE,},
> -#line 692 "metafns.gperf"
> +#line 483 "metafns.gperf"
> + {"is_user_declared", METAFN_IS_USER_DECLARED, METAFN_KIND_BOOL_INFO,},
> +#line 464 "metafns.gperf"
> + {"has_identifier", METAFN_HAS_IDENTIFIER, METAFN_KIND_BOOL_INFO,},
> +#line 556 "metafns.gperf"
> + {"has_inaccessible_bases", METAFN_HAS_INACCESSIBLE_BASES,
> METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,},
> +#line 557 "metafns.gperf"
> + {"has_inaccessible_subobjects", METAFN_HAS_INACCESSIBLE_SUBOBJECTS,
> METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,},
> +#line 683 "metafns.gperf"
> + {"invoke_result", METAFN_INVOKE_RESULT,
> METAFN_KIND_INFO_TINFO_REFLECTION_RANGET,},
> +#line 511 "metafns.gperf"
> + {"is_operator_function", METAFN_IS_OPERATOR_FUNCTION,
> METAFN_KIND_BOOL_INFO,},
> +#line 555 "metafns.gperf"
> + {"has_inaccessible_nonstatic_data_members",
> METAFN_HAS_INACCESSIBLE_NONSTATIC_DATA_MEMBERS,
> METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,},
> +#line 694 "metafns.gperf"
> {"_S_exception_cvt_to_utf8",
> METAFN_EXCEPTION__S_EXCEPTION_CVT_TO_UTF8,
> METAFN_KIND_U8STRING_VIEW_INPUT_RANGE,},
> -#line 693 "metafns.gperf"
> +#line 695 "metafns.gperf"
> {"_S_exception_cvt_from_utf8",
> METAFN_EXCEPTION__S_EXCEPTION_CVT_FROM_UTF8,
> METAFN_KIND_STRING_VIEW_INPUT_RANGE,},
> -#line 613 "metafns.gperf"
> - {"is_unbounded_array_type", METAFN_IS_UNBOUNDED_ARRAY_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> -#line 603 "metafns.gperf"
> - {"is_standard_layout_type", METAFN_IS_STANDARD_LAYOUT_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> -#line 683 "metafns.gperf"
> - {"unwrap_ref_decay", METAFN_UNWRAP_REF_DECAY, METAFN_KIND_INFO_TINFO,},
> -#line 574 "metafns.gperf"
> +#line 532 "metafns.gperf"
> + {"is_operator_function_template",
> METAFN_IS_OPERATOR_FUNCTION_TEMPLATE, METAFN_KIND_BOOL_INFO,},
> +#line 664 "metafns.gperf"
> + {"remove_volatile", METAFN_REMOVE_VOLATILE, METAFN_KIND_INFO_TINFO,},
> +#line 575 "metafns.gperf"
> {"reflect_constant_array", METAFN_REFLECT_CONSTANT_ARRAY,
> METAFN_KIND_INFO_INPUT_RANGE,},
> -#line 462 "metafns.gperf"
> - {"u8symbol_of", METAFN_U8SYMBOL_OF,
> METAFN_KIND_U8STRING_VIEW_OPERATORS,},
> -#line 580 "metafns.gperf"
> +#line 578 "metafns.gperf"
> + {"define_aggregate", METAFN_DEFINE_AGGREGATE,
> METAFN_KIND_INFO_INFO_REFLECTION_RANGE,},
> +#line 581 "metafns.gperf"
> {"is_integral_type", METAFN_IS_INTEGRAL_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 560 "metafns.gperf"
> - {"nonstatic_data_members_of", METAFN_NONSTATIC_DATA_MEMBERS_OF,
> METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,},
> -#line 677 "metafns.gperf"
> +#line 572 "metafns.gperf"
> + {"reflect_object", METAFN_REFLECT_OBJECT,
> METAFN_KIND_INFO_TEMPLATE_PARM_REF,},
> +#line 679 "metafns.gperf"
> {"decay", METAFN_DECAY, METAFN_KIND_INFO_TINFO,},
> -#line 607 "metafns.gperf"
> - {"is_final_type", METAFN_IS_FINAL_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 662 "metafns.gperf"
> - {"remove_volatile", METAFN_REMOVE_VOLATILE, METAFN_KIND_INFO_TINFO,},
> -#line 565 "metafns.gperf"
> +#line 685 "metafns.gperf"
> + {"unwrap_ref_decay", METAFN_UNWRAP_REF_DECAY, METAFN_KIND_INFO_TINFO,},
> +#line 463 "metafns.gperf"
> + {"u8symbol_of", METAFN_U8SYMBOL_OF,
> METAFN_KIND_U8STRING_VIEW_OPERATORS,},
> +#line 497 "metafns.gperf"
> + {"has_internal_linkage", METAFN_HAS_INTERNAL_LINKAGE,
> METAFN_KIND_BOOL_INFO,},
> +#line 615 "metafns.gperf"
> + {"is_unbounded_array_type", METAFN_IS_UNBOUNDED_ARRAY_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> +#line 566 "metafns.gperf"
> {"alignment_of", METAFN_ALIGNMENT_OF, METAFN_KIND_SIZE_T_INFO,},
> -#line 468 "metafns.gperf"
> +#line 604 "metafns.gperf"
> + {"is_standard_layout_type", METAFN_IS_STANDARD_LAYOUT_TYPE,
> METAFN_KIND_BOOL_TINFO,},
> +#line 486 "metafns.gperf"
> + {"is_bit_field", METAFN_IS_BIT_FIELD, METAFN_KIND_BOOL_INFO,},
> +#line 547 "metafns.gperf"
> + {"dealias", METAFN_DEALIAS, METAFN_KIND_INFO_INFO,},
> +#line 561 "metafns.gperf"
> + {"nonstatic_data_members_of", METAFN_NONSTATIC_DATA_MEMBERS_OF,
> METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,},
> +#line 469 "metafns.gperf"
> {"source_location_of", METAFN_SOURCE_LOCATION_OF,
> METAFN_KIND_SOURCE_LOCATION_INFO,},
> -#line 690 "metafns.gperf"
> +#line 560 "metafns.gperf"
> + {"static_data_members_of", METAFN_STATIC_DATA_MEMBERS_OF,
> METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,},
> +#line 692 "metafns.gperf"
> {"annotations_of_with_type", METAFN_ANNOTATIONS_OF_WITH_TYPE,
> METAFN_KIND_VECTOR_INFO_INFO_INFO,},
> -#line 465 "metafns.gperf"
> +#line 466 "metafns.gperf"
> {"u8identifier_of", METAFN_U8IDENTIFIER_OF,
> METAFN_KIND_U8STRING_VIEW_INFO,},
> -#line 689 "metafns.gperf"
> - {"annotations_of", METAFN_ANNOTATIONS_OF,
> METAFN_KIND_VECTOR_INFO_INFO,},
> -#line 589 "metafns.gperf"
> +#line 590 "metafns.gperf"
> {"is_union_type", METAFN_IS_UNION_TYPE, METAFN_KIND_BOOL_TINFO,},
> -#line 481 "metafns.gperf"
> +#line 608 "metafns.gperf"
> + {"is_final_type", METAFN_IS_FINAL_TYPE, METAFN_KIND_BOOL_TINFO,},
> +#line 691 "metafns.gperf"
> + {"annotations_of", METAFN_ANNOTATIONS_OF,
> METAFN_KIND_VECTOR_INFO_INFO,},
> +#line 482 "metafns.gperf"
> {"is_user_provided", METAFN_IS_USER_PROVIDED, METAFN_KIND_BOOL_INFO,},
> -#line 611 "metafns.gperf"
> +#line 613 "metafns.gperf"
> {"is_unsigned_type", METAFN_IS_UNSIGNED_TYPE, METAFN_KIND_BOOL_TINFO,}
> };
> #if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined
> __clang__ && __clang_major__ >= 3)
> @@ -1074,87 +1077,86 @@ metafn_lookup::find (const char *str, si
> -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, 0,
> - -1, -1, 1, -1, -1, 2, 3, -1, 4, -1,
> - -1, -1, 5, -1, -1, -1, 6, 7, -1, 8,
> - 9, 10, 11, -1, 12, 13, 14, -1, -1, 15,
> - 16, -1, 17, -1, -1, 18, -1, 19, -1, 20,
> - -1, 21, 22, -1, 23, -1, -1, -1, -1, 24,
> - 25, 26, 27, -1, -1, 28, 29, -1, 30, -1,
> - 31, -1, 32, 33, -1, 34, -1, -1, -1, -1,
> - 35, 36, 37, 38, 39, 40, -1, -1, -1, -1,
> - -1, 41, 42, -1, 43, -1, 44, -1, -1, 45,
> - -1, 46, -1, -1, -1, -1, -1, -1, -1, -1,
> - -1, -1, -1, -1, -1, -1, 47, 48, 49, -1,
> - 50, -1, -1, 51, 52, -1, 53, 54, 55, 56,
> - 57, 58, -1, 59, -1, -1, -1, 60, -1, -1,
> - -1, 61, -1, 62, -1, 63, 64, 65, 66, -1,
> - -1, 67, -1, -1, -1, -1, -1, 68, -1, -1,
> - -1, 69, 70, -1, 71, -1, -1, 72, -1, -1,
> - 73, -1, 74, 75, -1, 76, -1, 77, 78, 79,
> - -1, -1, -1, -1, 80, -1, -1, -1, 81, -1,
> - -1, -1, 82, 83, -1, -1, -1, -1, 84, -1,
> + -1, -1, -1, -1, -1, -1, 0, -1, -1, 1,
> + -1, -1, 2, -1, -1, 3, 4, -1, 5, -1,
> + -1, -1, 6, -1, -1, -1, 7, 8, -1, 9,
> + 10, 11, 12, -1, 13, 14, 15, -1, -1, 16,
> + 17, -1, 18, -1, -1, 19, -1, 20, 21, 22,
> + -1, 23, 24, -1, 25, -1, -1, -1, 26, 27,
> + 28, 29, 30, -1, -1, 31, 32, -1, 33, -1,
> + 34, -1, 35, 36, -1, -1, -1, -1, 37, -1,
> + 38, 39, 40, 41, 42, 43, -1, -1, 44, -1,
> + -1, 45, 46, -1, 47, -1, 48, -1, -1, 49,
> + 50, 51, -1, -1, 52, -1, -1, -1, -1, -1,
> + 53, -1, -1, -1, -1, -1, 54, 55, 56, -1,
> + 57, -1, -1, 58, 59, -1, 60, -1, 61, 62,
> + 63, 64, -1, 65, -1, -1, -1, 66, -1, -1,
> + -1, 67, -1, 68, -1, -1, 69, 70, 71, -1,
> + -1, 72, -1, -1, -1, -1, -1, 73, -1, -1,
> + -1, 74, -1, -1, 75, -1, -1, -1, -1, -1,
> + 76, -1, 77, -1, -1, 78, -1, 79, 80, -1,
> + -1, -1, -1, -1, 81, -1, -1, -1, 82, -1,
> + -1, -1, -1, 83, -1, -1, -1, -1, 84, -1,
> 85, 86, -1, 87, 88, 89, 90, -1, 91, -1,
> - -1, 92, -1, -1, -1, -1, 93, 94, -1, -1,
> - -1, 95, 96, -1, -1, -1, 97, 98, -1, -1,
> - -1, -1, -1, -1, 99, -1, 100, -1, 101, -1,
> - -1, -1, -1, 102, 103, 104, 105, -1, -1, 106,
> - 107, 108, -1, -1, -1, -1, -1, -1, 109, 110,
> - 111, -1, 112, 113, -1, -1, -1, -1, 114, -1,
> - -1, 115, 116, 117, 118, -1, -1, -1, -1, 119,
> - -1, -1, -1, 120, -1, -1, 121, -1, -1, 122,
> - 123, -1, -1, 124, -1, -1, 125, -1, -1, -1,
> - -1, 126, -1, 127, -1, -1, -1, -1, 128, 129,
> - 130, -1, -1, 131, 132, 133, 134, 135, -1, 136,
> - -1, -1, 137, -1, 138, 139, -1, 140, 141, 142,
> - -1, 143, 144, 145, 146, -1, 147, -1, -1, -1,
> - -1, 148, 149, -1, 150, -1, 151, -1, 152, 153,
> - -1, 154, -1, -1, -1, -1, 155, 156, 157, 158,
> - -1, -1, -1, 159, 160, -1, -1, 161, -1, 162,
> - -1, -1, 163, 164, -1, -1, -1, -1, -1, -1,
> - -1, -1, 165, -1, 166, 167, 168, -1, -1, -1,
> - -1, 169, 170, 171, 172, -1, -1, 173, -1, -1,
> - -1, -1, -1, -1, 174, -1, 175, -1, -1, 176,
> - -1, -1, 177, -1, -1, 178, -1, -1, -1, -1,
> - -1, -1, -1, 179, -1, -1, -1, 180, -1, -1,
> - -1, -1, 181, -1, 182, 183, -1, 184, -1, 185,
> - -1, -1, 186, -1, -1, -1, -1, -1, -1, -1,
> - -1, -1, 187, -1, 188, -1, -1, -1, 189, 190,
> - -1, -1, -1, -1, -1, -1, -1, -1, -1, 191,
> - -1, 192, -1, -1, -1, -1, 193, -1, 194, 195,
> - 196, 197, -1, 198, -1, -1, -1, -1, -1, 199,
> - 200, -1, -1, 201, -1, -1, -1, -1, -1, -1,
> - 202, 203, -1, -1, 204, -1, -1, -1, -1, -1,
> - -1, 205, 206, -1, -1, -1, -1, -1, -1, 207,
> - 208, 209, -1, -1, -1, 210, -1, -1, -1, -1,
> - -1, -1, 211, -1, -1, -1, -1, 212, -1, -1,
> - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
> - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
> - -1, 213, -1, -1, -1, 214, -1, 215, 216, -1,
> - -1, -1, -1, -1, -1, -1, -1, -1, 217, -1,
> - -1, -1, -1, -1, -1, -1, -1, 218, -1, -1,
> - -1, -1, -1, 219, -1, -1, -1, 220, -1, -1,
> - -1, -1, 221, -1, -1, -1, -1, -1, -1, -1,
> - 222, -1, -1, -1, -1, -1, 223, -1, -1, -1,
> - -1, -1, 224, -1, -1, -1, -1, -1, -1, 225,
> + 92, 93, -1, 94, 95, -1, 96, 97, -1, -1,
> + -1, 98, 99, -1, -1, -1, 100, 101, -1, -1,
> + -1, -1, -1, 102, 103, -1, -1, -1, 104, -1,
> + 105, -1, -1, 106, 107, 108, 109, -1, -1, 110,
> + -1, 111, -1, -1, -1, -1, 112, -1, 113, 114,
> + 115, -1, 116, 117, -1, -1, 118, -1, 119, -1,
> + -1, 120, 121, 122, 123, -1, -1, -1, -1, -1,
> + 124, -1, -1, 125, 126, -1, 127, -1, 128, 129,
> + -1, -1, 130, -1, -1, -1, 131, -1, 132, -1,
> + -1, 133, -1, 134, -1, -1, -1, -1, -1, -1,
> + 135, 136, -1, 137, 138, 139, 140, 141, -1, 142,
> + 143, -1, 144, -1, 145, 146, -1, 147, 148, 149,
> + -1, -1, 150, 151, 152, 153, -1, -1, -1, -1,
> + -1, 154, 155, 156, 157, -1, 158, -1, 159, 160,
> + -1, -1, -1, -1, -1, 161, -1, -1, -1, -1,
> + -1, -1, 162, -1, 163, -1, -1, -1, -1, 164,
> + -1, -1, 165, 166, -1, -1, -1, -1, 167, -1,
> + -1, -1, -1, -1, -1, 168, -1, -1, -1, 169,
> + -1, -1, 170, -1, 171, -1, -1, 172, 173, -1,
> + 174, 175, -1, -1, -1, -1, -1, -1, -1, 176,
> + -1, -1, 177, 178, 179, -1, 180, -1, -1, 181,
> + -1, 182, -1, -1, -1, -1, -1, -1, -1, 183,
> + -1, 184, 185, -1, -1, -1, 186, -1, -1, -1,
> + 187, -1, -1, -1, -1, -1, 188, -1, -1, -1,
> + 189, -1, -1, -1, -1, -1, -1, -1, -1, -1,
> + -1, -1, 190, -1, -1, -1, -1, -1, -1, 191,
> + -1, 192, -1, -1, 193, -1, 194, -1, -1, 195,
> + 196, -1, -1, -1, -1, -1, -1, -1, -1, -1,
> + -1, -1, 197, -1, 198, 199, -1, 200, -1, -1,
> + -1, 201, -1, 202, -1, -1, 203, -1, -1, -1,
> + -1, 204, -1, 205, -1, -1, -1, -1, -1, -1,
> + 206, -1, -1, 207, -1, 208, -1, 209, -1, -1,
> + -1, -1, -1, -1, 210, -1, -1, -1, -1, -1,
> + -1, -1, -1, -1, -1, -1, -1, -1, -1, 211,
> + -1, -1, -1, 212, -1, -1, -1, -1, -1, -1,
> + -1, 213, 214, -1, -1, 215, -1, -1, -1, -1,
> + -1, -1, -1, -1, -1, -1, 216, 217, -1, -1,
> + -1, -1, -1, -1, -1, -1, -1, 218, -1, 219,
> + -1, -1, -1, -1, -1, -1, -1, -1, 220, -1,
> + -1, -1, -1, -1, -1, -1, -1, 221, 222, -1,
> + -1, -1, -1, -1, -1, -1, -1, -1, 223, -1,
> -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
> - -1, -1, 226, -1, -1, -1, -1, -1, 227, -1,
> - -1, -1, -1, -1, 228, -1, -1, -1, -1, -1,
> - -1, -1, -1, -1, -1, 229, -1, -1, -1, -1,
> + -1, -1, -1, -1, -1, -1, -1, -1, 224, -1,
> + 225, -1, -1, -1, -1, -1, -1, -1, 226, -1,
> -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
> + -1, -1, -1, 227, -1, -1, -1, -1, -1, -1,
> -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
> - -1, -1, -1, -1, 230, -1, -1, -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, -1, -1,
> + -1, -1, -1, -1, 228, -1, -1, -1, -1, -1,
> + -1, -1, -1, -1, -1, 229, -1, -1, -1, -1,
> + -1, -1, -1, -1, -1, -1, -1, -1, -1, 230,
> -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
> + 231, -1, -1, -1, 232, -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, 232, -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, 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, -1, -1, -1, -1, -1, -1,
> @@ -1162,7 +1164,7 @@ metafn_lookup::find (const char *str, si
> -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, 233
> + -1, -1, -1, -1, -1, -1, -1, 234
> };
>
> if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
>
>
> Jakub
>