Hi!

This patch attempts to implement this paper.
Lightly tested so far.

2026-03-26  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,17 @@ eval_is_consteval_only_type (tree type)
     return boolean_false_node;
 }
 
+/* Process std::meta::is_structural_type.  */
+
+static tree
+eval_is_structural_type (tree type)
+{
+  if (structural_type_p (type))
+    return boolean_true_node;
+  else
+    return boolean_false_node;
+}
+
 /* Process std::meta::is_signed_type.  */
 
 static tree
@@ -7917,6 +7928,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 (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)";
+  };
+};
+
 // 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);
     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

Reply via email to