On 3/28/26 11:37 AM, Jakub Jelinek wrote:
Hi!

Unhappy about the old and new names, as a function type is not a function,
but ces't la vie.

Tested on x86_64-linux.

The compiler changes are OK.

2026-03-28  Jakub Jelinek  <[email protected]>

gcc/cp/
        * metafns.gperf (enum metafn_code): Remove
        METAFN_HAS_ELLIPSIS_PARAMETER, add METAFN_IS_VARARG_FUNCTION.
        (has_ellipsis_parameter): Remove.
        (is_vararg_function): Add.
        * reflect.cc (eval_has_ellipsis_parameter): Rename to ...
        (eval_is_vararg_function): ... this.  Adjust function comment.
        (process_metafunction): Handle METAFN_IS_VARARG_FUNCTION
        instead of METAFN_HAS_ELLIPSIS_PARAMETER.
        * metafns.h: Regenerate.
gcc/testsuite/
        * g++.dg/reflect/has_ellipsis_parameter1.C: Rename to ...
        * g++.dg/reflect/is_vararg_function1.C: this.  New test.  Rename
        has_ellipsis_parameter to is_vararg_function everywhere.
libstdc++-v3/
        * include/std/meta (has_ellipsis_parameter): Rename to ...
        (is_vararg_function): ... this.  New declaration.
        * src/c++23/std.cc.in: Remove std::meta::has_ellipsis_parameter
        export, add std::meta::is_vararg_function export.

--- libstdc++-v3/include/std/meta.jj    2026-03-27 18:34:12.497773682 +0100
+++ libstdc++-v3/include/std/meta       2026-03-27 18:35:27.617529247 +0100
@@ -273,7 +273,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
      consteval bool is_function_parameter(info);
      consteval bool is_explicit_object_parameter(info);
      consteval bool has_default_argument(info);
-    consteval bool has_ellipsis_parameter(info);
+    consteval bool is_vararg_function(info);
consteval bool is_template(info);
      consteval bool is_function_template(info);
--- libstdc++-v3/src/c++23/std.cc.in.jj 2026-03-27 18:34:12.497773682 +0100
+++ libstdc++-v3/src/c++23/std.cc.in    2026-03-27 18:35:44.631247398 +0100
@@ -2161,7 +2161,7 @@ export namespace std
      using std::meta::is_function_parameter;
      using std::meta::is_explicit_object_parameter;
      using std::meta::has_default_argument;
-    using std::meta::has_ellipsis_parameter;
+    using std::meta::is_vararg_function;
      using std::meta::is_template;
      using std::meta::is_function_template;
      using std::meta::is_variable_template;
--- gcc/cp/metafns.gperf.jj     2026-03-27 18:34:12.491773781 +0100
+++ gcc/cp/metafns.gperf        2026-03-27 18:36:38.861349024 +0100
@@ -86,7 +86,7 @@ enum metafn_code {
    METAFN_IS_FUNCTION_PARAMETER,
    METAFN_IS_EXPLICIT_OBJECT_PARAMETER,
    METAFN_HAS_DEFAULT_ARGUMENT,
-  METAFN_HAS_ELLIPSIS_PARAMETER,
+  METAFN_IS_VARARG_FUNCTION,
    METAFN_IS_TEMPLATE,
    METAFN_IS_FUNCTION_TEMPLATE,
    METAFN_IS_VARIABLE_TEMPLATE,
@@ -521,7 +521,7 @@ is_destructor, METAFN_IS_DESTRUCTOR, MET
  is_function_parameter, METAFN_IS_FUNCTION_PARAMETER, METAFN_KIND_BOOL_INFO,
  is_explicit_object_parameter, METAFN_IS_EXPLICIT_OBJECT_PARAMETER, 
METAFN_KIND_BOOL_INFO,
  has_default_argument, METAFN_HAS_DEFAULT_ARGUMENT, METAFN_KIND_BOOL_INFO,
-has_ellipsis_parameter, METAFN_HAS_ELLIPSIS_PARAMETER, METAFN_KIND_BOOL_INFO,
+is_vararg_function, METAFN_IS_VARARG_FUNCTION, METAFN_KIND_BOOL_INFO,
  is_template, METAFN_IS_TEMPLATE, METAFN_KIND_BOOL_INFO,
  is_function_template, METAFN_IS_FUNCTION_TEMPLATE, METAFN_KIND_BOOL_INFO,
  is_variable_template, METAFN_IS_VARIABLE_TEMPLATE, METAFN_KIND_BOOL_INFO,
--- gcc/cp/reflect.cc.jj        2026-03-27 18:34:12.495773715 +0100
+++ gcc/cp/reflect.cc   2026-03-28 12:24:18.968719205 +0100
@@ -1759,12 +1759,12 @@ eval_has_default_argument (tree r, refle
      return boolean_false_node;
  }
-/* Process std::meta::has_ellipsis_parameter.
-   Returns: true if r represents a function or function type that has an
-   ellipsis in its parameter-type-list.  Otherwise, false.  */
+/* Process std::meta::is_vararg_function.
+   Returns: true if r represents a function or function type that
+   is a vararg function.  Otherwise, false.  */
static tree
-eval_has_ellipsis_parameter (tree r)
+eval_is_vararg_function (tree r)
  {
    r = MAYBE_BASELINK_FUNCTIONS (r);
    if (TREE_CODE (r) == FUNCTION_DECL)
@@ -7612,8 +7612,8 @@ process_metafunction (const constexpr_ct
        return eval_is_explicit_object_parameter (h, kind);
      case METAFN_HAS_DEFAULT_ARGUMENT:
        return eval_has_default_argument (h, kind);
-    case METAFN_HAS_ELLIPSIS_PARAMETER:
-      return eval_has_ellipsis_parameter (h);
+    case METAFN_IS_VARARG_FUNCTION:
+      return eval_is_vararg_function (h);
      case METAFN_IS_TEMPLATE:
        return eval_is_template (h);
      case METAFN_IS_FUNCTION_TEMPLATE:
--- gcc/testsuite/g++.dg/reflect/has_ellipsis_parameter1.C.jj   2026-03-27 
10:17:16.125298250 +0100
+++ gcc/testsuite/g++.dg/reflect/has_ellipsis_parameter1.C      2026-03-28 
12:25:05.023941440 +0100
@@ -1,148 +0,0 @@
-// { dg-do compile { target c++26 } }
-// { dg-additional-options "-freflection" }
-// Test std::meta::has_ellipsis_parameter.
-
-#include <meta>
-
-using namespace std::meta;
-
-constexpr info null_reflection;
-struct cls {
-  int dm;
-  static int static_dm;
-  void mem_fun ();
-  void mem_fun2 (int, ...);
-  void mem_fun3 (...);
-  void mem_fun4 (int);
-  static void static_mem_fun ();
-  static void static_mem_fun2 (int, long, ...);
-  static void static_mem_fun3 (...);
-  static void static_mem_fun4 (long);
-  int &ref_dm = dm;
-  using type = int;
-} cls_var;
-union onion { };
-static union { int anon; };
-using alias = cls;
-void fun ();
-void fun2 (int, ...);
-void fun3 (...);
-void fun4 (int, int);
-int var;
-int &ref = var;
-int &&rref = 42;
-int *ptr = &var;
-namespace ns {}
-namespace ns_alias = ns;
-enum Enum { A };
-enum class Enum_class { A };
-using funt = int ();
-using funt2 = int (int, ...);
-using funt3 = int (...);
-using funt4 = int (int, long);
-
-template<typename> struct incomplete_cls;
-template<typename> struct cls_tmpl {};
-template<typename> void fun_tmpl ();
-template<typename> void fun_tmpl2 (int, ...);
-template<typename> void fun_tmpl3 (...);
-template<typename> void fun_tmpl4 (long, int);
-template<typename> concept conc = requires { true; };
-template<typename> int var_tmpl;
-template<typename T> using cls_tmpl_alias = cls_tmpl<T>;
-
-int arr[] = { 42 };
-using inc_arr = int[];
-using com_arr = int[42];
-auto [ decomp ] = arr;
-auto &[ decomp_ref ] = arr;
-
-static_assert (!has_ellipsis_parameter (null_reflection));
-static_assert (!has_ellipsis_parameter (^^::));
-static_assert (!has_ellipsis_parameter (^^ns));
-static_assert (!has_ellipsis_parameter (^^ns_alias));
-static_assert (!has_ellipsis_parameter (reflect_constant (3)));
-static_assert (!has_ellipsis_parameter (^^cls));
-static_assert (!has_ellipsis_parameter (^^cls::dm));
-static_assert (!has_ellipsis_parameter (^^cls::ref_dm));
-static_assert (!has_ellipsis_parameter (^^cls::static_dm));
-static_assert (!has_ellipsis_parameter (^^cls::mem_fun));
-static_assert (has_ellipsis_parameter (^^cls::mem_fun2));
-static_assert (has_ellipsis_parameter (^^cls::mem_fun3));
-static_assert (!has_ellipsis_parameter (^^cls::mem_fun4));
-static_assert (!has_ellipsis_parameter (^^cls::static_mem_fun));
-static_assert (has_ellipsis_parameter (^^cls::static_mem_fun2));
-static_assert (has_ellipsis_parameter (^^cls::static_mem_fun3));
-static_assert (!has_ellipsis_parameter (^^cls::static_mem_fun4));
-static_assert (!has_ellipsis_parameter (^^cls::type));
-static_assert (!has_ellipsis_parameter (^^cls_var));
-static_assert (!has_ellipsis_parameter (^^onion));
-static_assert (!has_ellipsis_parameter (^^anon));
-static_assert (!has_ellipsis_parameter (^^fun));
-static_assert (has_ellipsis_parameter (^^fun2));
-static_assert (has_ellipsis_parameter (^^fun3));
-static_assert (!has_ellipsis_parameter (^^fun4));
-static_assert (!has_ellipsis_parameter (type_of (^^fun)));
-static_assert (has_ellipsis_parameter (type_of (^^fun2)));
-static_assert (has_ellipsis_parameter (type_of (^^fun3)));
-static_assert (!has_ellipsis_parameter (type_of (^^fun4)));
-static_assert (!has_ellipsis_parameter (^^alias));
-static_assert (!has_ellipsis_parameter (^^var));
-static_assert (!has_ellipsis_parameter (^^ref));
-static_assert (!has_ellipsis_parameter (^^rref));
-static_assert (!has_ellipsis_parameter (^^ptr));
-static_assert (!has_ellipsis_parameter (^^cls_tmpl));
-static_assert (!has_ellipsis_parameter (^^cls_tmpl<int>));
-static_assert (!has_ellipsis_parameter (^^incomplete_cls<int>));
-static_assert (!has_ellipsis_parameter (^^fun_tmpl));
-static_assert (!has_ellipsis_parameter (^^fun_tmpl<int>));
-static_assert (!has_ellipsis_parameter (^^fun_tmpl2));
-static_assert (has_ellipsis_parameter (^^fun_tmpl2<int>));
-static_assert (!has_ellipsis_parameter (^^fun_tmpl3));
-static_assert (has_ellipsis_parameter (^^fun_tmpl3<int>));
-static_assert (!has_ellipsis_parameter (^^fun_tmpl4));
-static_assert (!has_ellipsis_parameter (^^fun_tmpl4<int>));
-static_assert (!has_ellipsis_parameter (^^conc));
-static_assert (!has_ellipsis_parameter (substitute (^^conc, { ^^int })));
-static_assert (!has_ellipsis_parameter (^^var_tmpl));
-static_assert (!has_ellipsis_parameter (^^var_tmpl<int>));
-static_assert (!has_ellipsis_parameter (^^cls_tmpl_alias));
-static_assert (!has_ellipsis_parameter (^^cls_tmpl_alias<int>));
-static_assert (!has_ellipsis_parameter (^^Enum));
-static_assert (!has_ellipsis_parameter (^^Enum::A));
-static_assert (!has_ellipsis_parameter (^^Enum_class));
-static_assert (!has_ellipsis_parameter (^^Enum_class::A));
-static_assert (!has_ellipsis_parameter (^^decomp));
-static_assert (!has_ellipsis_parameter (^^decomp_ref));
-static_assert (!has_ellipsis_parameter (^^arr));
-static_assert (!has_ellipsis_parameter (^^inc_arr));
-static_assert (!has_ellipsis_parameter (^^com_arr));
-static_assert (!has_ellipsis_parameter (^^funt));
-static_assert (has_ellipsis_parameter (^^funt2));
-static_assert (has_ellipsis_parameter (^^funt3));
-static_assert (!has_ellipsis_parameter (^^funt4));
-
-constexpr auto dms = data_member_spec (^^int, { .name = u8"a" });
-static_assert (!has_ellipsis_parameter (dms));
-
-struct Base {};
-struct Derived : Base {};
-static_assert (!has_ellipsis_parameter (bases_of (^^Derived, 
access_context::unchecked ())[0]));
-
-template<typename T, info R, info R2, info R3>
-void
-f ()
-{
-  static_assert (!has_ellipsis_parameter (^^T));
-  static_assert (!has_ellipsis_parameter (R));
-  static_assert (!has_ellipsis_parameter (R2));
-  static_assert (!has_ellipsis_parameter (R3));
-}
-
-void
-g (int p, cls c)
-{
-  f<int, ^^var, ^^ns, ^^cls>();
-  static_assert (!has_ellipsis_parameter (^^p));
-  static_assert (!has_ellipsis_parameter (^^c));
-}
--- gcc/testsuite/g++.dg/reflect/is_vararg_function1.C.jj       2026-03-28 
12:25:11.272835910 +0100
+++ gcc/testsuite/g++.dg/reflect/is_vararg_function1.C  2026-03-28 
12:25:25.749591435 +0100
@@ -0,0 +1,148 @@
+// { dg-do compile { target c++26 } }
+// { dg-additional-options "-freflection" }
+// Test std::meta::is_vararg_function.
+
+#include <meta>
+
+using namespace std::meta;
+
+constexpr info null_reflection;
+struct cls {
+  int dm;
+  static int static_dm;
+  void mem_fun ();
+  void mem_fun2 (int, ...);
+  void mem_fun3 (...);
+  void mem_fun4 (int);
+  static void static_mem_fun ();
+  static void static_mem_fun2 (int, long, ...);
+  static void static_mem_fun3 (...);
+  static void static_mem_fun4 (long);
+  int &ref_dm = dm;
+  using type = int;
+} cls_var;
+union onion { };
+static union { int anon; };
+using alias = cls;
+void fun ();
+void fun2 (int, ...);
+void fun3 (...);
+void fun4 (int, int);
+int var;
+int &ref = var;
+int &&rref = 42;
+int *ptr = &var;
+namespace ns {}
+namespace ns_alias = ns;
+enum Enum { A };
+enum class Enum_class { A };
+using funt = int ();
+using funt2 = int (int, ...);
+using funt3 = int (...);
+using funt4 = int (int, long);
+
+template<typename> struct incomplete_cls;
+template<typename> struct cls_tmpl {};
+template<typename> void fun_tmpl ();
+template<typename> void fun_tmpl2 (int, ...);
+template<typename> void fun_tmpl3 (...);
+template<typename> void fun_tmpl4 (long, int);
+template<typename> concept conc = requires { true; };
+template<typename> int var_tmpl;
+template<typename T> using cls_tmpl_alias = cls_tmpl<T>;
+
+int arr[] = { 42 };
+using inc_arr = int[];
+using com_arr = int[42];
+auto [ decomp ] = arr;
+auto &[ decomp_ref ] = arr;
+
+static_assert (!is_vararg_function (null_reflection));
+static_assert (!is_vararg_function (^^::));
+static_assert (!is_vararg_function (^^ns));
+static_assert (!is_vararg_function (^^ns_alias));
+static_assert (!is_vararg_function (reflect_constant (3)));
+static_assert (!is_vararg_function (^^cls));
+static_assert (!is_vararg_function (^^cls::dm));
+static_assert (!is_vararg_function (^^cls::ref_dm));
+static_assert (!is_vararg_function (^^cls::static_dm));
+static_assert (!is_vararg_function (^^cls::mem_fun));
+static_assert (is_vararg_function (^^cls::mem_fun2));
+static_assert (is_vararg_function (^^cls::mem_fun3));
+static_assert (!is_vararg_function (^^cls::mem_fun4));
+static_assert (!is_vararg_function (^^cls::static_mem_fun));
+static_assert (is_vararg_function (^^cls::static_mem_fun2));
+static_assert (is_vararg_function (^^cls::static_mem_fun3));
+static_assert (!is_vararg_function (^^cls::static_mem_fun4));
+static_assert (!is_vararg_function (^^cls::type));
+static_assert (!is_vararg_function (^^cls_var));
+static_assert (!is_vararg_function (^^onion));
+static_assert (!is_vararg_function (^^anon));
+static_assert (!is_vararg_function (^^fun));
+static_assert (is_vararg_function (^^fun2));
+static_assert (is_vararg_function (^^fun3));
+static_assert (!is_vararg_function (^^fun4));
+static_assert (!is_vararg_function (type_of (^^fun)));
+static_assert (is_vararg_function (type_of (^^fun2)));
+static_assert (is_vararg_function (type_of (^^fun3)));
+static_assert (!is_vararg_function (type_of (^^fun4)));
+static_assert (!is_vararg_function (^^alias));
+static_assert (!is_vararg_function (^^var));
+static_assert (!is_vararg_function (^^ref));
+static_assert (!is_vararg_function (^^rref));
+static_assert (!is_vararg_function (^^ptr));
+static_assert (!is_vararg_function (^^cls_tmpl));
+static_assert (!is_vararg_function (^^cls_tmpl<int>));
+static_assert (!is_vararg_function (^^incomplete_cls<int>));
+static_assert (!is_vararg_function (^^fun_tmpl));
+static_assert (!is_vararg_function (^^fun_tmpl<int>));
+static_assert (!is_vararg_function (^^fun_tmpl2));
+static_assert (is_vararg_function (^^fun_tmpl2<int>));
+static_assert (!is_vararg_function (^^fun_tmpl3));
+static_assert (is_vararg_function (^^fun_tmpl3<int>));
+static_assert (!is_vararg_function (^^fun_tmpl4));
+static_assert (!is_vararg_function (^^fun_tmpl4<int>));
+static_assert (!is_vararg_function (^^conc));
+static_assert (!is_vararg_function (substitute (^^conc, { ^^int })));
+static_assert (!is_vararg_function (^^var_tmpl));
+static_assert (!is_vararg_function (^^var_tmpl<int>));
+static_assert (!is_vararg_function (^^cls_tmpl_alias));
+static_assert (!is_vararg_function (^^cls_tmpl_alias<int>));
+static_assert (!is_vararg_function (^^Enum));
+static_assert (!is_vararg_function (^^Enum::A));
+static_assert (!is_vararg_function (^^Enum_class));
+static_assert (!is_vararg_function (^^Enum_class::A));
+static_assert (!is_vararg_function (^^decomp));
+static_assert (!is_vararg_function (^^decomp_ref));
+static_assert (!is_vararg_function (^^arr));
+static_assert (!is_vararg_function (^^inc_arr));
+static_assert (!is_vararg_function (^^com_arr));
+static_assert (!is_vararg_function (^^funt));
+static_assert (is_vararg_function (^^funt2));
+static_assert (is_vararg_function (^^funt3));
+static_assert (!is_vararg_function (^^funt4));
+
+constexpr auto dms = data_member_spec (^^int, { .name = u8"a" });
+static_assert (!is_vararg_function (dms));
+
+struct Base {};
+struct Derived : Base {};
+static_assert (!is_vararg_function (bases_of (^^Derived, 
access_context::unchecked ())[0]));
+
+template<typename T, info R, info R2, info R3>
+void
+f ()
+{
+  static_assert (!is_vararg_function (^^T));
+  static_assert (!is_vararg_function (R));
+  static_assert (!is_vararg_function (R2));
+  static_assert (!is_vararg_function (R3));
+}
+
+void
+g (int p, cls c)
+{
+  f<int, ^^var, ^^ns, ^^cls>();
+  static_assert (!is_vararg_function (^^p));
+  static_assert (!is_vararg_function (^^c));
+}
--- gcc/cp/metafns.h.jj 2026-03-27 18:34:12.491773781 +0100
+++ gcc/cp/metafns.h    2026-03-27 18:36:49.234174196 +0100
@@ -114,7 +114,7 @@ enum metafn_code {
    METAFN_IS_FUNCTION_PARAMETER,
    METAFN_IS_EXPLICIT_OBJECT_PARAMETER,
    METAFN_HAS_DEFAULT_ARGUMENT,
-  METAFN_HAS_ELLIPSIS_PARAMETER,
+  METAFN_IS_VARARG_FUNCTION,
    METAFN_IS_TEMPLATE,
    METAFN_IS_FUNCTION_TEMPLATE,
    METAFN_IS_VARIABLE_TEMPLATE,
@@ -511,7 +511,7 @@ metafn_lookup::hash (const char *str, si
        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,
+       20, 311,  80, 918, 918, 918, 918, 918, 918, 918,
        918, 918, 918, 918, 918, 918, 918, 918, 918, 918,
        918, 918, 918, 918, 918, 918, 918, 918, 918, 918,
        918, 918, 918, 918, 918, 918, 918, 918, 918, 918,
@@ -630,12 +630,8 @@ metafn_lookup::find (const char *str, si
        {"is_nothrow_move_constructible_type", 
METAFN_IS_NOTHROW_MOVE_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
  #line 527 "metafns.gperf"
        {"is_variable_template", METAFN_IS_VARIABLE_TEMPLATE, 
METAFN_KIND_BOOL_INFO,},
-#line 686 "metafns.gperf"
-      {"variant_size", METAFN_VARIANT_SIZE, METAFN_KIND_SIZE_T_TINFO,},
  #line 579 "metafns.gperf"
        {"is_null_pointer_type", METAFN_IS_NULL_POINTER_TYPE, 
METAFN_KIND_BOOL_TINFO,},
-#line 504 "metafns.gperf"
-      {"is_type", METAFN_IS_TYPE, METAFN_KIND_BOOL_INFO,},
  #line 472 "metafns.gperf"
        {"is_public", METAFN_IS_PUBLIC, METAFN_KIND_BOOL_INFO,},
  #line 484 "metafns.gperf"
@@ -690,6 +686,10 @@ metafn_lookup::find (const char *str, si
        {"symbol_of", METAFN_SYMBOL_OF, METAFN_KIND_STRING_VIEW_OPERATORS,},
  #line 617 "metafns.gperf"
        {"is_copy_constructible_type", METAFN_IS_COPY_CONSTRUCTIBLE_TYPE, 
METAFN_KIND_BOOL_TINFO,},
+#line 686 "metafns.gperf"
+      {"variant_size", METAFN_VARIANT_SIZE, METAFN_KIND_SIZE_T_TINFO,},
+#line 504 "metafns.gperf"
+      {"is_type", METAFN_IS_TYPE, METAFN_KIND_BOOL_INFO,},
  #line 615 "metafns.gperf"
        {"is_constructible_type", METAFN_IS_CONSTRUCTIBLE_TYPE, 
METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,},
  #line 495 "metafns.gperf"
@@ -698,8 +698,8 @@ metafn_lookup::find (const char *str, si
        {"is_copy_assignable_type", METAFN_IS_COPY_ASSIGNABLE_TYPE, 
METAFN_KIND_BOOL_TINFO,},
  #line 684 "metafns.gperf"
        {"tuple_size", METAFN_TUPLE_SIZE, METAFN_KIND_SIZE_T_TINFO,},
-#line 506 "metafns.gperf"
-      {"is_type_alias", METAFN_IS_TYPE_ALIAS, METAFN_KIND_BOOL_INFO,},
+#line 524 "metafns.gperf"
+      {"is_vararg_function", METAFN_IS_VARARG_FUNCTION, 
METAFN_KIND_BOOL_INFO,},
  #line 515 "metafns.gperf"
        {"is_copy_constructor", METAFN_IS_COPY_CONSTRUCTOR, 
METAFN_KIND_BOOL_INFO,},
  #line 551 "metafns.gperf"
@@ -754,8 +754,8 @@ metafn_lookup::find (const char *str, si
        {"is_member_pointer_type", METAFN_IS_MEMBER_POINTER_TYPE, 
METAFN_KIND_BOOL_TINFO,},
  #line 621 "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 506 "metafns.gperf"
+      {"is_type_alias", METAFN_IS_TYPE_ALIAS, METAFN_KIND_BOOL_INFO,},
  #line 516 "metafns.gperf"
        {"is_move_constructor", METAFN_IS_MOVE_CONSTRUCTOR, 
METAFN_KIND_BOOL_INFO,},
  #line 550 "metafns.gperf"
@@ -1042,8 +1042,6 @@ metafn_lookup::find (const char *str, si
        {"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"
-      {"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"
@@ -1056,6 +1054,8 @@ metafn_lookup::find (const char *str, si
        {"annotations_of_with_type", METAFN_ANNOTATIONS_OF_WITH_TYPE, 
METAFN_KIND_VECTOR_INFO_INFO_INFO,},
  #line 465 "metafns.gperf"
        {"u8identifier_of", METAFN_U8IDENTIFIER_OF, 
METAFN_KIND_U8STRING_VIEW_INFO,},
+#line 677 "metafns.gperf"
+      {"decay", METAFN_DECAY, METAFN_KIND_INFO_TINFO,},
  #line 689 "metafns.gperf"
        {"annotations_of", METAFN_ANNOTATIONS_OF, 
METAFN_KIND_VECTOR_INFO_INFO,},
  #line 589 "metafns.gperf"
@@ -1078,21 +1078,21 @@ metafn_lookup::find (const char *str, si
         -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,
+       16,  -1,  -1,  -1,  -1,  17,  -1,  -1,  -1,  18,
+       -1,  19,  20,  -1,  21,  -1,  -1,  -1,  -1,  22,
+       23,  24,  25,  -1,  -1,  26,  27,  -1,  28,  -1,
+       29,  -1,  30,  31,  -1,  32,  -1,  -1,  -1,  -1,
+       33,  34,  35,  36,  37,  38,  -1,  -1,  -1,  -1,
+       -1,  39,  40,  -1,  41,  -1,  42,  -1,  -1,  43,
+       -1,  44,  45,  -1,  -1,  -1,  -1,  46,  -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,
+       73,  -1,  74,  75,  -1,  76,  -1,  77,  78,  -1,
+       -1,  -1,  -1,  79,  80,  -1,  -1,  -1,  81,  -1,
         -1,  -1,  82,  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,
@@ -1135,13 +1135,13 @@ metafn_lookup::find (const char *str, si
         -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,
-       -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,
+      222,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1, 223,  -1,  -1,  -1,  -1,  -1,  -1, 224,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1, 225,  -1,  -1,  -1,  -1,  -1, 226,  -1,
+       -1,  -1,  -1,  -1, 227,  -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,
         -1,  -1,  -1,  -1, 230,  -1,  -1,  -1,  -1,  -1,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,

        Jakub


Reply via email to