{"id":2175271,"url":"http://patchwork.ozlabs.org/api/1.0/patches/2175271/?format=json","project":{"id":17,"url":"http://patchwork.ozlabs.org/api/1.0/projects/17/?format=json","name":"GNU Compiler Collection","link_name":"gcc","list_id":"gcc-patches.gcc.gnu.org","list_email":"gcc-patches@gcc.gnu.org","web_url":null,"scm_url":null,"webscm_url":null},"msgid":"<aULeSCxAKr_Dc3xa@redhat.com>","date":"2025-12-17T16:46:00","name":"[2/9,v2] c++: C++26 Reflection [PR120775]","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"5908f6867eb14706a42ddefe23a49d519870713b","submitter":{"id":14370,"url":"http://patchwork.ozlabs.org/api/1.0/people/14370/?format=json","name":"Marek Polacek","email":"polacek@redhat.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/gcc/patch/aULeSCxAKr_Dc3xa@redhat.com/mbox/","series":[{"id":485726,"url":"http://patchwork.ozlabs.org/api/1.0/series/485726/?format=json","date":"2025-12-17T16:42:41","name":"c++: C++26 Reflection [PR120775]","version":2,"mbox":"http://patchwork.ozlabs.org/series/485726/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2175271/checks/","tags":{},"headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=X0kUazbU;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=38.145.34.32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org;\n\tdkim=pass (1024-bit key,\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=X0kUazbU","sourceware.org; dmarc=pass (p=quarantine dis=none)\n header.from=redhat.com","sourceware.org; spf=pass smtp.mailfrom=redhat.com","server2.sourceware.org;\n arc=none smtp.remote-ip=170.10.133.124"],"Received":["from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4dWfwZ0WMBz1xpw\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 18 Dec 2025 03:52:13 +1100 (AEDT)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id C86484BA2E25\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 17 Dec 2025 16:52:10 +0000 (GMT)","from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [170.10.133.124])\n by sourceware.org (Postfix) with ESMTP id AED254BA2E23\n for <gcc-patches@gcc.gnu.org>; Wed, 17 Dec 2025 16:46:08 +0000 (GMT)","from mail-qt1-f199.google.com (mail-qt1-f199.google.com\n [209.85.160.199]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-126-TMUpL-3ZO9qTxZq24Bh4Yw-1; Wed, 17 Dec 2025 11:46:07 -0500","by mail-qt1-f199.google.com with SMTP id\n d75a77b69052e-4f1d60f037bso120106011cf.0\n for <gcc-patches@gcc.gnu.org>; Wed, 17 Dec 2025 08:46:06 -0800 (PST)","from redhat.com ([2603:7000:9500:10::1db4])\n by smtp.gmail.com with ESMTPSA id\n d75a77b69052e-4f345b162e1sm35516501cf.2.2025.12.17.08.46.02\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Wed, 17 Dec 2025 08:46:02 -0800 (PST)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org C86484BA2E25","OpenDKIM Filter v2.11.0 sourceware.org AED254BA2E23"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org AED254BA2E23","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org AED254BA2E23","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1765989968; cv=none;\n b=rX0AOyN8CMyWEVrKWLN8unbpWOr3lym0CB8ahocIENhoQ0B3brpd1cYrhz3o36IytUrZRw1WAAWhBpYKm1Jn7F3sdMRvfGsX5aoMWgTWSPqHHW4vPwW65Tdx/5QEbNRy4/mWONw2s2N9vW84q0nQeUmRgHKSHtpsZqyjYcU7JAQ=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1765989968; c=relaxed/simple;\n bh=soRvFQMGTP2nAtxbVBtGZSQHHcTEqKp/sRGDtCsNWsQ=;\n h=DKIM-Signature:Date:From:To:Subject:Message-ID:MIME-Version;\n b=kYzBeVNVasiH3icut3JDBcZG5mizuh3RzMHxPdePlrfggQwr8NZ8p3uyrm6/+AqETbOa/YxHegEBiy9Mtq3tjZ2367bqG+3XZDe1GIf641xwxxyRK7rbYrerx9K6dPs69BQ7x+7VaIFx1bjPtWXCwsvhmUqo5n47r1dKaboqWpI=","ARC-Authentication-Results":"i=1; server2.sourceware.org","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1765989968;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:mime-version:mime-version:content-type:content-type:\n in-reply-to:in-reply-to:references:references;\n bh=Kdq33P6q0AKlRX/VYMBOcPKWzZcXKMuUZ3k/87GtKp0=;\n b=X0kUazbUnuU6QhO4/jkSK8gi4u356Hvuw2T6vcTN182IEqoMQHElGaHjxddOKAGjOvE/Wl\n 1ANGTs3yGgMOY7/FVFY8c4jar/HU15Izm8YSD71s+w5miBO9W7qjet3LjNF4787C2zVfBB\n UIwmCJXgVWbcgb3Z3WJWcki9dhfIQBg=","X-MC-Unique":"TMUpL-3ZO9qTxZq24Bh4Yw-1","X-Mimecast-MFC-AGG-ID":"TMUpL-3ZO9qTxZq24Bh4Yw_1765989966","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1765989966; x=1766594766;\n h=user-agent:in-reply-to:content-disposition:mime-version:references\n :message-id:subject:to:from:date:x-gm-gg:x-gm-message-state:from:to\n :cc:subject:date:message-id:reply-to;\n bh=Kdq33P6q0AKlRX/VYMBOcPKWzZcXKMuUZ3k/87GtKp0=;\n b=jG7e/5bcEf/GWue/n4eWn9vrKWouui9gDRi5qyLqQTfdBEBp3Zq75UZ2adr6H9+fJW\n 466sDmeD+gE4ytHBBnoRe/KjFwy32cwrbvJIxnktmxVwSpGO1O2WQVwZgItEQ7CSJL2w\n ty1VNdNRPy0JCCrxz2vEeJnf5EndMG7tBIwlZ5MnuQLV1kNhPdWuBKDy0TVMcWg0gnOL\n rFkz27mDmeedlB0web1EeSV/cGyYWCjodgpQBw7hMf9/Hz5AGsaKIDnwV+0DMIWsyLuE\n wjmJ/omf3+eQ390mns+UcAzYmtpCL4rVbY9yDg+S7J6lac543xfaEG4la60aM/j8yAuM\n zLPw==","X-Gm-Message-State":"AOJu0YyiRNhj6+Svrflv9BH/1Dhdg01a5rXWbBfUSc7bJZk/pLhVm+yp\n S4KopxpWbqO4LZg7a07eU72+gK6axMhTHVewIbMeuZjfIn3jwggkv9fmKRmKxrAeq2yuaGAxbm+\n 0mFJDHXOAOc3JmJkUyyQzXJIXMU+ghrQLg504DGMt5HWDF1psiTvfhL/E7oDQgaMfOSgN+YUcf3\n aRZIbQDSO9grWgsyvikaH/hX+7eZQ0YkrKAX1iAXndDQ==","X-Gm-Gg":"AY/fxX55plNUQaBqW7h7kg2S6xVwQhR5K7CPR4s0RmI88Yzu8eyFCeqm3luikTCtEwr\n l2Q01Pm+m30Nz5eHTOVMTWArZwC84b5xPTJSe1yr536k+Kd9SeWpo6gThQWMY5Cu/NPXFE2ODTO\n 4yz+v7rdUP2riB6KjQbFLIYTaN58eGey6HSjkHKUIn3QH6w6rLlcKuZbDQj0euDCcmfvfTAWxhE\n ZmfCNeKmgQ/kzr2uxpP5dHMOkQqvbEI1HS8/QSPk/Ms2T8CqUR0E82qgnjJv2c/6WwEDxLQ/E2B\n wKeOZF2OZorE3vRbhuaA7TibI7JjFuEuWSZO/E4ljHGaFJDPHkl/mH8ypGeJp1tljA==","X-Received":["by 2002:ac8:7d02:0:b0:4ee:483:311f with SMTP id\n d75a77b69052e-4f1d05af549mr260935011cf.54.1765989964860;\n Wed, 17 Dec 2025 08:46:04 -0800 (PST)","by 2002:ac8:7d02:0:b0:4ee:483:311f with SMTP id\n d75a77b69052e-4f1d05af549mr260934081cf.54.1765989963694;\n Wed, 17 Dec 2025 08:46:03 -0800 (PST)"],"X-Google-Smtp-Source":"\n AGHT+IGmwUZzYARBz3ZQrGlHrH4gsd89YtdDP6QHCkhiJGmyqGSFFclnMSrh9IPUeNqRg17pCKCUFQ==","Date":"Wed, 17 Dec 2025 11:46:00 -0500","From":"Marek Polacek <polacek@redhat.com>","To":"GCC Patches <gcc-patches@gcc.gnu.org>, Jason Merrill <jason@redhat.com>,\n Jakub Jelinek <jakub@redhat.com>, Jonathan Wakely <jwakely@redhat.com>","Subject":"[PATCH 2/9 v2] c++: C++26 Reflection [PR120775]","Message-ID":"<aULeSCxAKr_Dc3xa@redhat.com>","References":"<aULdgYtbcyGQIxK1@redhat.com>","MIME-Version":"1.0","In-Reply-To":"<aULdgYtbcyGQIxK1@redhat.com>","User-Agent":"Mutt/2.2.14 (2025-02-20)","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"h0fQ2ZKNpv2Pz-K6LDTII_jJ-8-vvZtJlQQAUYt5SWA_1765989966","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"},"content":"This contains the metafunction gperf bits.\n\n-- >8 --","diff":"diff --git a/gcc/cp/metafns.gperf b/gcc/cp/metafns.gperf\nnew file mode 100644\nindex 00000000000..4759cdfe463\n--- /dev/null\n+++ b/gcc/cp/metafns.gperf\n@@ -0,0 +1,643 @@\n+%language=C++\n+%define class-name metafn_lookup\n+%struct-type\n+%{\n+/* Copyright (C) 2025 Free Software Foundation, Inc.\n+   Written by Jakub Jelinek <jakub@redhat.com>\n+\n+This file is part of GCC.\n+\n+GCC is free software; you can redistribute it and/or modify it under\n+the terms of the GNU General Public License as published by the Free\n+Software Foundation; either version 3, or (at your option) any later\n+version.\n+\n+GCC is distributed in the hope that it will be useful, but WITHOUT ANY\n+WARRANTY; without even the implied warranty of MERCHANTABILITY or\n+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License\n+for more details.\n+\n+You should have received a copy of the GNU General Public License\n+along with GCC; see the file COPYING3.  If not see\n+<http://www.gnu.org/licenses/>.  */\n+\n+enum metafn_code {\n+  METAFN_OPERATOR_OF,\n+  METAFN_SYMBOL_OF,\n+  METAFN_U8SYMBOL_OF,\n+  METAFN_HAS_IDENTIFIER,\n+  METAFN_IDENTIFIER_OF,\n+  METAFN_U8IDENTIFIER_OF,\n+  METAFN_DISPLAY_STRING_OF,\n+  METAFN_U8DISPLAY_STRING_OF,\n+  METAFN_SOURCE_LOCATION_OF,\n+  METAFN_TYPE_OF,\n+  METAFN_OBJECT_OF,\n+  METAFN_CONSTANT_OF,\n+  METAFN_IS_PUBLIC,\n+  METAFN_IS_PROTECTED,\n+  METAFN_IS_PRIVATE,\n+  METAFN_IS_VIRTUAL,\n+  METAFN_IS_PURE_VIRTUAL,\n+  METAFN_IS_OVERRIDE,\n+  METAFN_IS_FINAL,\n+  METAFN_IS_DELETED,\n+  METAFN_IS_DEFAULTED,\n+  METAFN_IS_USER_PROVIDED,\n+  METAFN_IS_USER_DECLARED,\n+  METAFN_IS_EXPLICIT,\n+  METAFN_IS_NOEXCEPT,\n+  METAFN_IS_BIT_FIELD,\n+  METAFN_IS_ENUMERATOR,\n+  METAFN_IS_ANNOTATION,\n+  METAFN_IS_CONST,\n+  METAFN_IS_VOLATILE,\n+  METAFN_IS_MUTABLE_MEMBER,\n+  METAFN_IS_LVALUE_REFERENCE_QUALIFIED,\n+  METAFN_IS_RVALUE_REFERENCE_QUALIFIED,\n+  METAFN_HAS_STATIC_STORAGE_DURATION,\n+  METAFN_HAS_THREAD_STORAGE_DURATION,\n+  METAFN_HAS_AUTOMATIC_STORAGE_DURATION,\n+  METAFN_HAS_INTERNAL_LINKAGE,\n+  METAFN_HAS_MODULE_LINKAGE,\n+  METAFN_HAS_EXTERNAL_LINKAGE,\n+  METAFN_HAS_C_LANGUAGE_LINKAGE,\n+  METAFN_HAS_LINKAGE,\n+  METAFN_IS_COMPLETE_TYPE,\n+  METAFN_IS_ENUMERABLE_TYPE,\n+  METAFN_IS_VARIABLE,\n+  METAFN_IS_TYPE,\n+  METAFN_IS_NAMESPACE,\n+  METAFN_IS_TYPE_ALIAS,\n+  METAFN_IS_NAMESPACE_ALIAS,\n+  METAFN_IS_FUNCTION,\n+  METAFN_IS_CONVERSION_FUNCTION,\n+  METAFN_IS_OPERATOR_FUNCTION,\n+  METAFN_IS_LITERAL_OPERATOR,\n+  METAFN_IS_SPECIAL_MEMBER_FUNCTION,\n+  METAFN_IS_CONSTRUCTOR,\n+  METAFN_IS_DEFAULT_CONSTRUCTOR,\n+  METAFN_IS_COPY_CONSTRUCTOR,\n+  METAFN_IS_MOVE_CONSTRUCTOR,\n+  METAFN_IS_ASSIGNMENT,\n+  METAFN_IS_COPY_ASSIGNMENT,\n+  METAFN_IS_MOVE_ASSIGNMENT,\n+  METAFN_IS_DESTRUCTOR,\n+  METAFN_IS_FUNCTION_PARAMETER,\n+  METAFN_IS_EXPLICIT_OBJECT_PARAMETER,\n+  METAFN_HAS_DEFAULT_ARGUMENT,\n+  METAFN_HAS_ELLIPSIS_PARAMETER,\n+  METAFN_IS_TEMPLATE,\n+  METAFN_IS_FUNCTION_TEMPLATE,\n+  METAFN_IS_VARIABLE_TEMPLATE,\n+  METAFN_IS_CLASS_TEMPLATE,\n+  METAFN_IS_ALIAS_TEMPLATE,\n+  METAFN_IS_CONVERSION_FUNCTION_TEMPLATE,\n+  METAFN_IS_OPERATOR_FUNCTION_TEMPLATE,\n+  METAFN_IS_LITERAL_OPERATOR_TEMPLATE,\n+  METAFN_IS_CONSTRUCTOR_TEMPLATE,\n+  METAFN_IS_CONCEPT,\n+  METAFN_IS_VALUE,\n+  METAFN_IS_OBJECT,\n+  METAFN_IS_STRUCTURED_BINDING,\n+  METAFN_IS_CLASS_MEMBER,\n+  METAFN_IS_NAMESPACE_MEMBER,\n+  METAFN_IS_NONSTATIC_DATA_MEMBER,\n+  METAFN_IS_STATIC_MEMBER,\n+  METAFN_IS_BASE,\n+  METAFN_HAS_DEFAULT_MEMBER_INITIALIZER,\n+  METAFN_HAS_PARENT,\n+  METAFN_PARENT_OF,\n+  METAFN_DEALIAS,\n+  METAFN_HAS_TEMPLATE_ARGUMENTS,\n+  METAFN_TEMPLATE_OF,\n+  METAFN_TEMPLATE_ARGUMENTS_OF,\n+  METAFN_PARAMETERS_OF,\n+  METAFN_VARIABLE_OF,\n+  METAFN_RETURN_TYPE_OF,\n+  METAFN_IS_ACCESSIBLE,\n+  METAFN_HAS_INACCESSIBLE_NONSTATIC_DATA_MEMBERS,\n+  METAFN_HAS_INACCESSIBLE_BASES,\n+  METAFN_HAS_INACCESSIBLE_SUBOBJECTS,\n+  METAFN_MEMBERS_OF,\n+  METAFN_BASES_OF,\n+  METAFN_STATIC_DATA_MEMBERS_OF,\n+  METAFN_NONSTATIC_DATA_MEMBERS_OF,\n+  METAFN_SUBOBJECTS_OF,\n+  METAFN_ENUMERATORS_OF,\n+  METAFN_OFFSET_OF,\n+  METAFN_SIZE_OF,\n+  METAFN_ALIGNMENT_OF,\n+  METAFN_BIT_SIZE_OF,\n+  METAFN_EXTRACT,\n+  METAFN_CAN_SUBSTITUTE,\n+  METAFN_SUBSTITUTE,\n+  METAFN_REFLECT_CONSTANT,\n+  METAFN_REFLECT_OBJECT,\n+  METAFN_REFLECT_FUNCTION,\n+  METAFN_REFLECT_CONSTANT_STRING,\n+  METAFN_REFLECT_CONSTANT_ARRAY,\n+  METAFN_DATA_MEMBER_SPEC,\n+  METAFN_IS_DATA_MEMBER_SPEC,\n+  METAFN_DEFINE_AGGREGATE,\n+  METAFN_IS_VOID_TYPE,\n+  METAFN_IS_NULL_POINTER_TYPE,\n+  METAFN_IS_INTEGRAL_TYPE,\n+  METAFN_IS_FLOATING_POINT_TYPE,\n+  METAFN_IS_ARRAY_TYPE,\n+  METAFN_IS_POINTER_TYPE,\n+  METAFN_IS_LVALUE_REFERENCE_TYPE,\n+  METAFN_IS_RVALUE_REFERENCE_TYPE,\n+  METAFN_IS_MEMBER_OBJECT_POINTER_TYPE,\n+  METAFN_IS_MEMBER_FUNCTION_POINTER_TYPE,\n+  METAFN_IS_ENUM_TYPE,\n+  METAFN_IS_UNION_TYPE,\n+  METAFN_IS_CLASS_TYPE,\n+  METAFN_IS_FUNCTION_TYPE,\n+  METAFN_IS_REFLECTION_TYPE,\n+  METAFN_IS_REFERENCE_TYPE,\n+  METAFN_IS_ARITHMETIC_TYPE,\n+  METAFN_IS_FUNDAMENTAL_TYPE,\n+  METAFN_IS_OBJECT_TYPE,\n+  METAFN_IS_SCALAR_TYPE,\n+  METAFN_IS_COMPOUND_TYPE,\n+  METAFN_IS_MEMBER_POINTER_TYPE,\n+  METAFN_IS_CONST_TYPE,\n+  METAFN_IS_VOLATILE_TYPE,\n+  METAFN_IS_TRIVIALLY_COPYABLE_TYPE,\n+  METAFN_IS_STANDARD_LAYOUT_TYPE,\n+  METAFN_IS_EMPTY_TYPE,\n+  METAFN_IS_POLYMORPHIC_TYPE,\n+  METAFN_IS_ABSTRACT_TYPE,\n+  METAFN_IS_FINAL_TYPE,\n+  METAFN_IS_AGGREGATE_TYPE,\n+  METAFN_IS_CONSTEVAL_ONLY_TYPE,\n+  METAFN_IS_SIGNED_TYPE,\n+  METAFN_IS_UNSIGNED_TYPE,\n+  METAFN_IS_BOUNDED_ARRAY_TYPE,\n+  METAFN_IS_UNBOUNDED_ARRAY_TYPE,\n+  METAFN_IS_SCOPED_ENUM_TYPE,\n+  METAFN_IS_CONSTRUCTIBLE_TYPE,\n+  METAFN_IS_DEFAULT_CONSTRUCTIBLE_TYPE,\n+  METAFN_IS_COPY_CONSTRUCTIBLE_TYPE,\n+  METAFN_IS_MOVE_CONSTRUCTIBLE_TYPE,\n+  METAFN_IS_ASSIGNABLE_TYPE,\n+  METAFN_IS_COPY_ASSIGNABLE_TYPE,\n+  METAFN_IS_MOVE_ASSIGNABLE_TYPE,\n+  METAFN_IS_SWAPPABLE_WITH_TYPE,\n+  METAFN_IS_SWAPPABLE_TYPE,\n+  METAFN_IS_DESTRUCTIBLE_TYPE,\n+  METAFN_IS_TRIVIALLY_CONSTRUCTIBLE_TYPE,\n+  METAFN_IS_TRIVIALLY_DEFAULT_CONSTRUCTIBLE_TYPE,\n+  METAFN_IS_TRIVIALLY_COPY_CONSTRUCTIBLE_TYPE,\n+  METAFN_IS_TRIVIALLY_MOVE_CONSTRUCTIBLE_TYPE,\n+  METAFN_IS_TRIVIALLY_ASSIGNABLE_TYPE,\n+  METAFN_IS_TRIVIALLY_COPY_ASSIGNABLE_TYPE,\n+  METAFN_IS_TRIVIALLY_MOVE_ASSIGNABLE_TYPE,\n+  METAFN_IS_TRIVIALLY_DESTRUCTIBLE_TYPE,\n+  METAFN_IS_NOTHROW_CONSTRUCTIBLE_TYPE,\n+  METAFN_IS_NOTHROW_DEFAULT_CONSTRUCTIBLE_TYPE,\n+  METAFN_IS_NOTHROW_COPY_CONSTRUCTIBLE_TYPE,\n+  METAFN_IS_NOTHROW_MOVE_CONSTRUCTIBLE_TYPE,\n+  METAFN_IS_NOTHROW_ASSIGNABLE_TYPE,\n+  METAFN_IS_NOTHROW_COPY_ASSIGNABLE_TYPE,\n+  METAFN_IS_NOTHROW_MOVE_ASSIGNABLE_TYPE,\n+  METAFN_IS_NOTHROW_SWAPPABLE_WITH_TYPE,\n+  METAFN_IS_NOTHROW_SWAPPABLE_TYPE,\n+  METAFN_IS_NOTHROW_DESTRUCTIBLE_TYPE,\n+  METAFN_IS_IMPLICIT_LIFETIME_TYPE,\n+  METAFN_HAS_VIRTUAL_DESTRUCTOR,\n+  METAFN_HAS_UNIQUE_OBJECT_REPRESENTATIONS,\n+  METAFN_REFERENCE_CONSTRUCTS_FROM_TEMPORARY,\n+  METAFN_REFERENCE_CONVERTS_FROM_TEMPORARY,\n+  METAFN_RANK,\n+  METAFN_EXTENT,\n+  METAFN_IS_SAME_TYPE,\n+  METAFN_IS_BASE_OF_TYPE,\n+  METAFN_IS_VIRTUAL_BASE_OF_TYPE,\n+  METAFN_IS_CONVERTIBLE_TYPE,\n+  METAFN_IS_NOTHROW_CONVERTIBLE_TYPE,\n+  METAFN_IS_LAYOUT_COMPATIBLE_TYPE,\n+  METAFN_IS_POINTER_INTERCONVERTIBLE_BASE_OF_TYPE,\n+  METAFN_IS_INVOCABLE_TYPE,\n+  METAFN_IS_INVOCABLE_R_TYPE,\n+  METAFN_IS_NOTHROW_INVOCABLE_TYPE,\n+  METAFN_IS_NOTHROW_INVOCABLE_R_TYPE,\n+  METAFN_REMOVE_CONST,\n+  METAFN_REMOVE_VOLATILE,\n+  METAFN_REMOVE_CV,\n+  METAFN_ADD_CONST,\n+  METAFN_ADD_VOLATILE,\n+  METAFN_ADD_CV,\n+  METAFN_REMOVE_REFERENCE,\n+  METAFN_ADD_LVALUE_REFERENCE,\n+  METAFN_ADD_RVALUE_REFERENCE,\n+  METAFN_MAKE_SIGNED,\n+  METAFN_MAKE_UNSIGNED,\n+  METAFN_REMOVE_EXTENT,\n+  METAFN_REMOVE_ALL_EXTENTS,\n+  METAFN_REMOVE_POINTER,\n+  METAFN_ADD_POINTER,\n+  METAFN_REMOVE_CVREF,\n+  METAFN_DECAY,\n+  METAFN_COMMON_TYPE,\n+  METAFN_COMMON_REFERENCE,\n+  METAFN_UNDERLYING_TYPE,\n+  METAFN_INVOKE_RESULT,\n+  METAFN_UNWRAP_REFERENCE,\n+  METAFN_UNWRAP_REF_DECAY,\n+  METAFN_TUPLE_SIZE,\n+  METAFN_TUPLE_ELEMENT,\n+  METAFN_VARIANT_SIZE,\n+  METAFN_VARIANT_ALTERNATIVE,\n+  METAFN_TYPE_ORDER,\n+  METAFN_ANNOTATIONS_OF,\n+  METAFN_ANNOTATIONS_OF_WITH_TYPE,\n+  /* Special metafunctions.  */\n+  METAFN_ACCESS_CONTEXT_CURRENT,\n+  METAFN_EXCEPTION__S_EXCEPTION_CVT_TO_UTF8,\n+  METAFN_EXCEPTION__S_EXCEPTION_CVT_FROM_UTF8\n+};\n+\n+/* Possible return types of metafunctions.  */\n+enum metafn_kind_ret {\n+  METAFN_KIND_RET_BOOL,\n+  METAFN_KIND_RET_INFO,\n+  METAFN_KIND_RET_SIZE_T,\n+  METAFN_KIND_RET_MEMBER_OFFSET,\n+  METAFN_KIND_RET_OPERATORS,\n+  METAFN_KIND_RET_SOURCE_LOCATION,\n+  METAFN_KIND_RET_STRING_VIEW,\n+  METAFN_KIND_RET_U8STRING_VIEW,\n+  METAFN_KIND_RET_STRONG_ORDERING,\n+  METAFN_KIND_RET_VECTOR_INFO,\n+  METAFN_KIND_RET_ACCESS_CONTEXT,\n+  METAFN_KIND_RET_TEMPLATE_PARM,\n+};\n+\n+/* Possible argument types of metafunctions.  */\n+enum metafn_kind_arg {\n+  METAFN_KIND_ARG_VOID = 0,\n+  METAFN_KIND_ARG_INFO,\n+  METAFN_KIND_ARG_TINFO, /* info argument which throws if not a type.  */\n+  METAFN_KIND_ARG_REFLECTION_RANGE,\n+  /* reflection_range with type infos only.  */\n+  METAFN_KIND_ARG_REFLECTION_RANGET,\n+  METAFN_KIND_ARG_INPUT_RANGE,\n+  METAFN_KIND_ARG_SIZE_T,\n+  METAFN_KIND_ARG_UNSIGNED,\n+  METAFN_KIND_ARG_OPERATORS,\n+  METAFN_KIND_ARG_ACCESS_CONTEXT,\n+  METAFN_KIND_ARG_DATA_MEMBER_OPTIONS,\n+  METAFN_KIND_ARG_TEMPLATE_PARM, /* Some other template parameter.  */\n+  METAFN_KIND_ARG_TEMPLATE_PARM_REF /* Reference to template parameter.  */\n+};\n+\n+/* Possible sets of 0-3 arguments of metafunctions.  */\n+enum metafn_kind_args {\n+  METAFN_KIND_ARGS_VOID = METAFN_KIND_ARG_VOID,\n+  METAFN_KIND_ARGS_INFO = METAFN_KIND_ARG_INFO,\n+  METAFN_KIND_ARGS_TINFO = METAFN_KIND_ARG_TINFO,\n+  METAFN_KIND_ARGS_REFLECTION_RANGET = METAFN_KIND_ARG_REFLECTION_RANGET,\n+  METAFN_KIND_ARGS_INPUT_RANGE = METAFN_KIND_ARG_INPUT_RANGE,\n+  METAFN_KIND_ARGS_OPERATORS = METAFN_KIND_ARG_OPERATORS,\n+  METAFN_KIND_ARGS_TEMPLATE_PARM = METAFN_KIND_ARG_TEMPLATE_PARM,\n+  METAFN_KIND_ARGS_TEMPLATE_PARM_REF = METAFN_KIND_ARG_TEMPLATE_PARM_REF,\n+  METAFN_KIND_ARGS_INFO_INFO\n+    = (METAFN_KIND_ARG_INFO << 5) | METAFN_KIND_ARG_INFO,\n+  METAFN_KIND_ARGS_TINFO_TINFO\n+    = (METAFN_KIND_ARG_TINFO << 5) | METAFN_KIND_ARG_TINFO,\n+  METAFN_KIND_ARGS_TINFO_UNSIGNED\n+    = (METAFN_KIND_ARG_UNSIGNED << 5) | METAFN_KIND_ARG_TINFO,\n+  METAFN_KIND_ARGS_INFO_ACCESS_CONTEXT\n+    = (METAFN_KIND_ARG_ACCESS_CONTEXT << 5) | METAFN_KIND_ARG_INFO,\n+  METAFN_KIND_ARGS_TINFO_DATA_MEMBER_OPTIONS\n+    = (METAFN_KIND_ARG_DATA_MEMBER_OPTIONS << 5) | METAFN_KIND_ARG_TINFO,\n+  METAFN_KIND_ARGS_INFO_REFLECTION_RANGE\n+    = (METAFN_KIND_ARG_REFLECTION_RANGE << 5) | METAFN_KIND_ARG_INFO,\n+  METAFN_KIND_ARGS_TINFO_REFLECTION_RANGET\n+    = (METAFN_KIND_ARG_REFLECTION_RANGET << 5) | METAFN_KIND_ARG_TINFO,\n+  METAFN_KIND_ARGS_SIZE_T_TINFO\n+    = (METAFN_KIND_ARG_TINFO << 5) | METAFN_KIND_ARG_SIZE_T,\n+  METAFN_KIND_ARGS_TINFO_TINFO_REFLECTION_RANGET\n+    = (METAFN_KIND_ARG_REFLECTION_RANGET << 10) | METAFN_KIND_ARGS_TINFO_TINFO,\n+};\n+\n+enum metafn_kind {\n+  METAFN_KIND_BOOL_INFO\n+    = (METAFN_KIND_ARGS_INFO << 5) | METAFN_KIND_RET_BOOL,\n+  METAFN_KIND_BOOL_TINFO\n+    = (METAFN_KIND_ARGS_TINFO << 5) | METAFN_KIND_RET_BOOL,\n+  METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT\n+    = (METAFN_KIND_ARGS_INFO_ACCESS_CONTEXT << 5) | METAFN_KIND_RET_BOOL,\n+  METAFN_KIND_BOOL_TINFO_TINFO\n+    = (METAFN_KIND_ARGS_TINFO_TINFO << 5) | METAFN_KIND_RET_BOOL,\n+  METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET\n+    = (METAFN_KIND_ARGS_TINFO_REFLECTION_RANGET << 5) | METAFN_KIND_RET_BOOL,\n+  METAFN_KIND_BOOL_TINFO_TINFO_REFLECTION_RANGET\n+    = (METAFN_KIND_ARGS_TINFO_TINFO_REFLECTION_RANGET << 5)\n+      | METAFN_KIND_RET_BOOL,\n+  METAFN_KIND_INFO_INFO = (METAFN_KIND_ARGS_INFO << 5) | METAFN_KIND_RET_INFO,\n+  METAFN_KIND_INFO_TINFO\n+    = (METAFN_KIND_ARGS_TINFO << 5) | METAFN_KIND_RET_INFO,\n+  METAFN_KIND_INFO_TINFO_REFLECTION_RANGET\n+    = (METAFN_KIND_ARGS_TINFO_REFLECTION_RANGET << 5) | METAFN_KIND_RET_INFO,\n+  METAFN_KIND_INFO_TINFO_DATA_MEMBER_OPTIONS\n+    = (METAFN_KIND_ARGS_TINFO_DATA_MEMBER_OPTIONS << 5) | METAFN_KIND_RET_INFO,\n+  METAFN_KIND_INFO_REFLECTION_RANGET\n+    = (METAFN_KIND_ARGS_REFLECTION_RANGET << 5) | METAFN_KIND_RET_INFO,\n+  METAFN_KIND_INFO_INFO_REFLECTION_RANGE\n+    = (METAFN_KIND_ARGS_INFO_REFLECTION_RANGE << 5) | METAFN_KIND_RET_INFO,\n+  METAFN_KIND_INFO_INPUT_RANGE\n+    = (METAFN_KIND_ARGS_INPUT_RANGE << 5) | METAFN_KIND_RET_INFO,\n+  METAFN_KIND_INFO_TEMPLATE_PARM\n+    = (METAFN_KIND_ARGS_TEMPLATE_PARM << 5) | METAFN_KIND_RET_INFO,\n+  METAFN_KIND_INFO_TEMPLATE_PARM_REF\n+    = (METAFN_KIND_ARGS_TEMPLATE_PARM_REF << 5) | METAFN_KIND_RET_INFO,\n+  METAFN_KIND_INFO_SIZE_T_TINFO\n+    = (METAFN_KIND_ARGS_SIZE_T_TINFO << 5) | METAFN_KIND_RET_INFO,\n+  METAFN_KIND_MEMBER_OFFSET_INFO\n+    = (METAFN_KIND_ARGS_INFO << 5) | METAFN_KIND_RET_MEMBER_OFFSET,\n+  METAFN_KIND_OPERATORS_INFO\n+    = (METAFN_KIND_ARGS_INFO << 5) | METAFN_KIND_RET_OPERATORS,\n+  METAFN_KIND_SIZE_T_INFO\n+    = (METAFN_KIND_ARGS_INFO << 5) | METAFN_KIND_RET_SIZE_T,\n+  METAFN_KIND_SIZE_T_TINFO\n+    = (METAFN_KIND_ARGS_TINFO << 5) | METAFN_KIND_RET_SIZE_T,\n+  METAFN_KIND_SIZE_T_TINFO_UNSIGNED\n+    = (METAFN_KIND_ARGS_TINFO_UNSIGNED << 5) | METAFN_KIND_RET_SIZE_T,\n+  METAFN_KIND_SOURCE_LOCATION_INFO\n+    = (METAFN_KIND_ARGS_INFO << 5) | METAFN_KIND_RET_SOURCE_LOCATION,\n+  METAFN_KIND_STRING_VIEW_INFO\n+    = (METAFN_KIND_ARGS_INFO << 5) | METAFN_KIND_RET_STRING_VIEW,\n+  METAFN_KIND_STRING_VIEW_OPERATORS\n+    = (METAFN_KIND_ARGS_OPERATORS << 5) | METAFN_KIND_RET_STRING_VIEW,\n+  METAFN_KIND_U8STRING_VIEW_INFO\n+    = (METAFN_KIND_ARGS_INFO << 5) | METAFN_KIND_RET_U8STRING_VIEW,\n+  METAFN_KIND_U8STRING_VIEW_OPERATORS\n+    = (METAFN_KIND_ARGS_OPERATORS << 5) | METAFN_KIND_RET_U8STRING_VIEW,\n+  METAFN_KIND_STRONG_ORDERING_TINFO_TINFO\n+    = (METAFN_KIND_ARGS_TINFO_TINFO << 5) | METAFN_KIND_RET_STRONG_ORDERING,\n+  METAFN_KIND_VECTOR_INFO_INFO\n+    = (METAFN_KIND_ARGS_INFO << 5) | METAFN_KIND_RET_VECTOR_INFO,\n+  METAFN_KIND_VECTOR_INFO_INFO_INFO\n+    = (METAFN_KIND_ARGS_INFO_INFO << 5) | METAFN_KIND_RET_VECTOR_INFO,\n+  METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT\n+    = (METAFN_KIND_ARGS_INFO_ACCESS_CONTEXT << 5)\n+      | METAFN_KIND_RET_VECTOR_INFO,\n+  METAFN_KIND_TEMPLATE_PARM_INFO\n+    = (METAFN_KIND_ARGS_INFO << 5) | METAFN_KIND_RET_TEMPLATE_PARM,\n+  METAFN_KIND_ACCESS_CONTEXT_VOID\n+    = (METAFN_KIND_ARGS_VOID << 5) | METAFN_KIND_RET_ACCESS_CONTEXT,\n+  METAFN_KIND_STRING_VIEW_INPUT_RANGE\n+    = (METAFN_KIND_ARGS_INPUT_RANGE << 5) | METAFN_KIND_RET_STRING_VIEW,\n+  METAFN_KIND_U8STRING_VIEW_INPUT_RANGE\n+    = (METAFN_KIND_ARGS_INPUT_RANGE << 5) | METAFN_KIND_RET_U8STRING_VIEW\n+};\n+%}\n+struct metafn_info\n+{\n+  /* A name within \"std::meta::\" (or \"std::meta::access_context::\").  */\n+  const char *name;\n+\n+  /* METAFN_ code.  */\n+  metafn_code code;\n+\n+  /* METAFN_KIND_ kind of arguments and return type.  */\n+  metafn_kind kind;\n+};\n+%%\n+operator_of, METAFN_OPERATOR_OF, METAFN_KIND_OPERATORS_INFO,\n+symbol_of, METAFN_SYMBOL_OF, METAFN_KIND_STRING_VIEW_OPERATORS,\n+u8symbol_of, METAFN_U8SYMBOL_OF, METAFN_KIND_U8STRING_VIEW_OPERATORS,\n+has_identifier, METAFN_HAS_IDENTIFIER, METAFN_KIND_BOOL_INFO,\n+identifier_of, METAFN_IDENTIFIER_OF, METAFN_KIND_STRING_VIEW_INFO,\n+u8identifier_of, METAFN_U8IDENTIFIER_OF, METAFN_KIND_U8STRING_VIEW_INFO,\n+display_string_of, METAFN_DISPLAY_STRING_OF, METAFN_KIND_STRING_VIEW_INFO,\n+u8display_string_of, METAFN_U8DISPLAY_STRING_OF, METAFN_KIND_U8STRING_VIEW_INFO,\n+source_location_of, METAFN_SOURCE_LOCATION_OF, METAFN_KIND_SOURCE_LOCATION_INFO,\n+type_of, METAFN_TYPE_OF, METAFN_KIND_INFO_INFO,\n+object_of, METAFN_OBJECT_OF, METAFN_KIND_INFO_INFO,\n+constant_of, METAFN_CONSTANT_OF, METAFN_KIND_INFO_INFO,\n+is_public, METAFN_IS_PUBLIC, METAFN_KIND_BOOL_INFO,\n+is_protected, METAFN_IS_PROTECTED, METAFN_KIND_BOOL_INFO,\n+is_private, METAFN_IS_PRIVATE, METAFN_KIND_BOOL_INFO,\n+is_virtual, METAFN_IS_VIRTUAL, METAFN_KIND_BOOL_INFO,\n+is_pure_virtual, METAFN_IS_PURE_VIRTUAL, METAFN_KIND_BOOL_INFO,\n+is_override, METAFN_IS_OVERRIDE, METAFN_KIND_BOOL_INFO,\n+is_final, METAFN_IS_FINAL, METAFN_KIND_BOOL_INFO,\n+is_deleted, METAFN_IS_DELETED, METAFN_KIND_BOOL_INFO,\n+is_defaulted, METAFN_IS_DEFAULTED, METAFN_KIND_BOOL_INFO,\n+is_user_provided, METAFN_IS_USER_PROVIDED, METAFN_KIND_BOOL_INFO,\n+is_user_declared, METAFN_IS_USER_DECLARED, METAFN_KIND_BOOL_INFO,\n+is_explicit, METAFN_IS_EXPLICIT, METAFN_KIND_BOOL_INFO,\n+is_noexcept, METAFN_IS_NOEXCEPT, METAFN_KIND_BOOL_INFO,\n+is_bit_field, METAFN_IS_BIT_FIELD, METAFN_KIND_BOOL_INFO,\n+is_enumerator, METAFN_IS_ENUMERATOR, METAFN_KIND_BOOL_INFO,\n+is_annotation, METAFN_IS_ANNOTATION, METAFN_KIND_BOOL_INFO,\n+is_const, METAFN_IS_CONST, METAFN_KIND_BOOL_INFO,\n+is_volatile, METAFN_IS_VOLATILE, METAFN_KIND_BOOL_INFO,\n+is_mutable_member, METAFN_IS_MUTABLE_MEMBER, METAFN_KIND_BOOL_INFO,\n+is_lvalue_reference_qualified, METAFN_IS_LVALUE_REFERENCE_QUALIFIED, METAFN_KIND_BOOL_INFO,\n+is_rvalue_reference_qualified, METAFN_IS_RVALUE_REFERENCE_QUALIFIED, METAFN_KIND_BOOL_INFO,\n+has_static_storage_duration, METAFN_HAS_STATIC_STORAGE_DURATION, METAFN_KIND_BOOL_INFO,\n+has_thread_storage_duration, METAFN_HAS_THREAD_STORAGE_DURATION, METAFN_KIND_BOOL_INFO,\n+has_automatic_storage_duration, METAFN_HAS_AUTOMATIC_STORAGE_DURATION, METAFN_KIND_BOOL_INFO,\n+has_internal_linkage, METAFN_HAS_INTERNAL_LINKAGE, METAFN_KIND_BOOL_INFO,\n+has_module_linkage, METAFN_HAS_MODULE_LINKAGE, METAFN_KIND_BOOL_INFO,\n+has_external_linkage, METAFN_HAS_EXTERNAL_LINKAGE, METAFN_KIND_BOOL_INFO,\n+has_c_language_linkage, METAFN_HAS_C_LANGUAGE_LINKAGE, METAFN_KIND_BOOL_INFO,\n+has_linkage, METAFN_HAS_LINKAGE, METAFN_KIND_BOOL_INFO,\n+is_complete_type, METAFN_IS_COMPLETE_TYPE, METAFN_KIND_BOOL_INFO,\n+is_enumerable_type, METAFN_IS_ENUMERABLE_TYPE, METAFN_KIND_BOOL_INFO,\n+is_variable, METAFN_IS_VARIABLE, METAFN_KIND_BOOL_INFO,\n+is_type, METAFN_IS_TYPE, METAFN_KIND_BOOL_INFO,\n+is_namespace, METAFN_IS_NAMESPACE, METAFN_KIND_BOOL_INFO,\n+is_type_alias, METAFN_IS_TYPE_ALIAS, METAFN_KIND_BOOL_INFO,\n+is_namespace_alias, METAFN_IS_NAMESPACE_ALIAS, METAFN_KIND_BOOL_INFO,\n+is_function, METAFN_IS_FUNCTION, METAFN_KIND_BOOL_INFO,\n+is_conversion_function, METAFN_IS_CONVERSION_FUNCTION, METAFN_KIND_BOOL_INFO,\n+is_operator_function, METAFN_IS_OPERATOR_FUNCTION, METAFN_KIND_BOOL_INFO,\n+is_literal_operator, METAFN_IS_LITERAL_OPERATOR, METAFN_KIND_BOOL_INFO,\n+is_special_member_function, METAFN_IS_SPECIAL_MEMBER_FUNCTION, METAFN_KIND_BOOL_INFO,\n+is_constructor, METAFN_IS_CONSTRUCTOR, METAFN_KIND_BOOL_INFO,\n+is_default_constructor, METAFN_IS_DEFAULT_CONSTRUCTOR, METAFN_KIND_BOOL_INFO,\n+is_copy_constructor, METAFN_IS_COPY_CONSTRUCTOR, METAFN_KIND_BOOL_INFO,\n+is_move_constructor, METAFN_IS_MOVE_CONSTRUCTOR, METAFN_KIND_BOOL_INFO,\n+is_assignment, METAFN_IS_ASSIGNMENT, METAFN_KIND_BOOL_INFO,\n+is_copy_assignment, METAFN_IS_COPY_ASSIGNMENT, METAFN_KIND_BOOL_INFO,\n+is_move_assignment, METAFN_IS_MOVE_ASSIGNMENT, METAFN_KIND_BOOL_INFO,\n+is_destructor, METAFN_IS_DESTRUCTOR, METAFN_KIND_BOOL_INFO,\n+is_function_parameter, METAFN_IS_FUNCTION_PARAMETER, METAFN_KIND_BOOL_INFO,\n+is_explicit_object_parameter, METAFN_IS_EXPLICIT_OBJECT_PARAMETER, METAFN_KIND_BOOL_INFO,\n+has_default_argument, METAFN_HAS_DEFAULT_ARGUMENT, METAFN_KIND_BOOL_INFO,\n+has_ellipsis_parameter, METAFN_HAS_ELLIPSIS_PARAMETER, METAFN_KIND_BOOL_INFO,\n+is_template, METAFN_IS_TEMPLATE, METAFN_KIND_BOOL_INFO,\n+is_function_template, METAFN_IS_FUNCTION_TEMPLATE, METAFN_KIND_BOOL_INFO,\n+is_variable_template, METAFN_IS_VARIABLE_TEMPLATE, METAFN_KIND_BOOL_INFO,\n+is_class_template, METAFN_IS_CLASS_TEMPLATE, METAFN_KIND_BOOL_INFO,\n+is_alias_template, METAFN_IS_ALIAS_TEMPLATE, METAFN_KIND_BOOL_INFO,\n+is_conversion_function_template, METAFN_IS_CONVERSION_FUNCTION_TEMPLATE, METAFN_KIND_BOOL_INFO,\n+is_operator_function_template, METAFN_IS_OPERATOR_FUNCTION_TEMPLATE, METAFN_KIND_BOOL_INFO,\n+is_literal_operator_template, METAFN_IS_LITERAL_OPERATOR_TEMPLATE, METAFN_KIND_BOOL_INFO,\n+is_constructor_template, METAFN_IS_CONSTRUCTOR_TEMPLATE, METAFN_KIND_BOOL_INFO,\n+is_concept, METAFN_IS_CONCEPT, METAFN_KIND_BOOL_INFO,\n+is_value, METAFN_IS_VALUE, METAFN_KIND_BOOL_INFO,\n+is_object, METAFN_IS_OBJECT, METAFN_KIND_BOOL_INFO,\n+is_structured_binding, METAFN_IS_STRUCTURED_BINDING, METAFN_KIND_BOOL_INFO,\n+is_class_member, METAFN_IS_CLASS_MEMBER, METAFN_KIND_BOOL_INFO,\n+is_namespace_member, METAFN_IS_NAMESPACE_MEMBER, METAFN_KIND_BOOL_INFO,\n+is_nonstatic_data_member, METAFN_IS_NONSTATIC_DATA_MEMBER, METAFN_KIND_BOOL_INFO,\n+is_static_member, METAFN_IS_STATIC_MEMBER, METAFN_KIND_BOOL_INFO,\n+is_base, METAFN_IS_BASE, METAFN_KIND_BOOL_INFO,\n+has_default_member_initializer, METAFN_HAS_DEFAULT_MEMBER_INITIALIZER, METAFN_KIND_BOOL_INFO,\n+has_parent, METAFN_HAS_PARENT, METAFN_KIND_BOOL_INFO,\n+parent_of, METAFN_PARENT_OF, METAFN_KIND_INFO_INFO,\n+dealias, METAFN_DEALIAS, METAFN_KIND_INFO_INFO,\n+has_template_arguments, METAFN_HAS_TEMPLATE_ARGUMENTS, METAFN_KIND_BOOL_INFO,\n+template_of, METAFN_TEMPLATE_OF, METAFN_KIND_INFO_INFO,\n+template_arguments_of, METAFN_TEMPLATE_ARGUMENTS_OF, METAFN_KIND_VECTOR_INFO_INFO,\n+parameters_of, METAFN_PARAMETERS_OF, METAFN_KIND_VECTOR_INFO_INFO,\n+variable_of, METAFN_VARIABLE_OF, METAFN_KIND_INFO_INFO,\n+return_type_of, METAFN_RETURN_TYPE_OF, METAFN_KIND_INFO_INFO,\n+is_accessible, METAFN_IS_ACCESSIBLE, METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,\n+has_inaccessible_nonstatic_data_members, METAFN_HAS_INACCESSIBLE_NONSTATIC_DATA_MEMBERS, METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,\n+has_inaccessible_bases, METAFN_HAS_INACCESSIBLE_BASES, METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,\n+has_inaccessible_subobjects, METAFN_HAS_INACCESSIBLE_SUBOBJECTS, METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,\n+members_of, METAFN_MEMBERS_OF, METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,\n+bases_of, METAFN_BASES_OF, METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,\n+static_data_members_of, METAFN_STATIC_DATA_MEMBERS_OF, METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,\n+nonstatic_data_members_of, METAFN_NONSTATIC_DATA_MEMBERS_OF, METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,\n+subobjects_of, METAFN_SUBOBJECTS_OF, METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,\n+enumerators_of, METAFN_ENUMERATORS_OF, METAFN_KIND_VECTOR_INFO_INFO,\n+offset_of, METAFN_OFFSET_OF, METAFN_KIND_MEMBER_OFFSET_INFO,\n+size_of, METAFN_SIZE_OF, METAFN_KIND_SIZE_T_INFO,\n+alignment_of, METAFN_ALIGNMENT_OF, METAFN_KIND_SIZE_T_INFO,\n+bit_size_of, METAFN_BIT_SIZE_OF, METAFN_KIND_SIZE_T_INFO,\n+extract, METAFN_EXTRACT, METAFN_KIND_TEMPLATE_PARM_INFO,\n+can_substitute, METAFN_CAN_SUBSTITUTE, METAFN_KIND_INFO_INFO_REFLECTION_RANGE,\n+substitute, METAFN_SUBSTITUTE, METAFN_KIND_INFO_INFO_REFLECTION_RANGE,\n+reflect_constant, METAFN_REFLECT_CONSTANT, METAFN_KIND_INFO_TEMPLATE_PARM,\n+reflect_object, METAFN_REFLECT_OBJECT, METAFN_KIND_INFO_TEMPLATE_PARM_REF,\n+reflect_function, METAFN_REFLECT_FUNCTION, METAFN_KIND_INFO_TEMPLATE_PARM_REF,\n+reflect_constant_string, METAFN_REFLECT_CONSTANT_STRING, METAFN_KIND_INFO_INPUT_RANGE,\n+reflect_constant_array, METAFN_REFLECT_CONSTANT_ARRAY, METAFN_KIND_INFO_INPUT_RANGE,\n+data_member_spec, METAFN_DATA_MEMBER_SPEC, METAFN_KIND_INFO_TINFO_DATA_MEMBER_OPTIONS,\n+is_data_member_spec, METAFN_IS_DATA_MEMBER_SPEC, METAFN_KIND_BOOL_INFO,\n+define_aggregate, METAFN_DEFINE_AGGREGATE, METAFN_KIND_INFO_INFO_REFLECTION_RANGE,\n+is_void_type, METAFN_IS_VOID_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_null_pointer_type, METAFN_IS_NULL_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_integral_type, METAFN_IS_INTEGRAL_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_floating_point_type, METAFN_IS_FLOATING_POINT_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_array_type, METAFN_IS_ARRAY_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_pointer_type, METAFN_IS_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_lvalue_reference_type, METAFN_IS_LVALUE_REFERENCE_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_rvalue_reference_type, METAFN_IS_RVALUE_REFERENCE_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_member_object_pointer_type, METAFN_IS_MEMBER_OBJECT_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_member_function_pointer_type, METAFN_IS_MEMBER_FUNCTION_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_enum_type, METAFN_IS_ENUM_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_union_type, METAFN_IS_UNION_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_class_type, METAFN_IS_CLASS_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_function_type, METAFN_IS_FUNCTION_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_reflection_type, METAFN_IS_REFLECTION_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_reference_type, METAFN_IS_REFERENCE_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_arithmetic_type, METAFN_IS_ARITHMETIC_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_fundamental_type, METAFN_IS_FUNDAMENTAL_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_object_type, METAFN_IS_OBJECT_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_scalar_type, METAFN_IS_SCALAR_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_compound_type, METAFN_IS_COMPOUND_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_member_pointer_type, METAFN_IS_MEMBER_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_const_type, METAFN_IS_CONST_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_volatile_type, METAFN_IS_VOLATILE_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_trivially_copyable_type, METAFN_IS_TRIVIALLY_COPYABLE_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_standard_layout_type, METAFN_IS_STANDARD_LAYOUT_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_empty_type, METAFN_IS_EMPTY_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_polymorphic_type, METAFN_IS_POLYMORPHIC_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_abstract_type, METAFN_IS_ABSTRACT_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_final_type, METAFN_IS_FINAL_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_aggregate_type, METAFN_IS_AGGREGATE_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_consteval_only_type, METAFN_IS_CONSTEVAL_ONLY_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_signed_type, METAFN_IS_SIGNED_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_unsigned_type, METAFN_IS_UNSIGNED_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_bounded_array_type, METAFN_IS_BOUNDED_ARRAY_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_unbounded_array_type, METAFN_IS_UNBOUNDED_ARRAY_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_scoped_enum_type, METAFN_IS_SCOPED_ENUM_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_constructible_type, METAFN_IS_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,\n+is_default_constructible_type, METAFN_IS_DEFAULT_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_copy_constructible_type, METAFN_IS_COPY_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_move_constructible_type, METAFN_IS_MOVE_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_assignable_type, METAFN_IS_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,\n+is_copy_assignable_type, METAFN_IS_COPY_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_move_assignable_type, METAFN_IS_MOVE_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_swappable_with_type, METAFN_IS_SWAPPABLE_WITH_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,\n+is_swappable_type, METAFN_IS_SWAPPABLE_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_destructible_type, METAFN_IS_DESTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_trivially_constructible_type, METAFN_IS_TRIVIALLY_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,\n+is_trivially_default_constructible_type, METAFN_IS_TRIVIALLY_DEFAULT_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_trivially_copy_constructible_type, METAFN_IS_TRIVIALLY_COPY_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_trivially_move_constructible_type, METAFN_IS_TRIVIALLY_MOVE_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_trivially_assignable_type, METAFN_IS_TRIVIALLY_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,\n+is_trivially_copy_assignable_type, METAFN_IS_TRIVIALLY_COPY_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_trivially_move_assignable_type, METAFN_IS_TRIVIALLY_MOVE_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_trivially_destructible_type, METAFN_IS_TRIVIALLY_DESTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_nothrow_constructible_type, METAFN_IS_NOTHROW_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,\n+is_nothrow_default_constructible_type, METAFN_IS_NOTHROW_DEFAULT_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_nothrow_copy_constructible_type, METAFN_IS_NOTHROW_COPY_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_nothrow_move_constructible_type, METAFN_IS_NOTHROW_MOVE_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_nothrow_assignable_type, METAFN_IS_NOTHROW_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,\n+is_nothrow_copy_assignable_type, METAFN_IS_NOTHROW_COPY_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_nothrow_move_assignable_type, METAFN_IS_NOTHROW_MOVE_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_nothrow_swappable_with_type, METAFN_IS_NOTHROW_SWAPPABLE_WITH_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,\n+is_nothrow_swappable_type, METAFN_IS_NOTHROW_SWAPPABLE_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_nothrow_destructible_type, METAFN_IS_NOTHROW_DESTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,\n+is_implicit_lifetime_type, METAFN_IS_IMPLICIT_LIFETIME_TYPE, METAFN_KIND_BOOL_TINFO,\n+has_virtual_destructor, METAFN_HAS_VIRTUAL_DESTRUCTOR, METAFN_KIND_BOOL_TINFO,\n+has_unique_object_representations, METAFN_HAS_UNIQUE_OBJECT_REPRESENTATIONS, METAFN_KIND_BOOL_TINFO,\n+reference_constructs_from_temporary, METAFN_REFERENCE_CONSTRUCTS_FROM_TEMPORARY, METAFN_KIND_BOOL_TINFO_TINFO,\n+reference_converts_from_temporary, METAFN_REFERENCE_CONVERTS_FROM_TEMPORARY, METAFN_KIND_BOOL_TINFO_TINFO,\n+rank, METAFN_RANK, METAFN_KIND_SIZE_T_TINFO,\n+extent, METAFN_EXTENT, METAFN_KIND_SIZE_T_TINFO_UNSIGNED,\n+is_same_type, METAFN_IS_SAME_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,\n+is_base_of_type, METAFN_IS_BASE_OF_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,\n+is_virtual_base_of_type, METAFN_IS_VIRTUAL_BASE_OF_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,\n+is_convertible_type, METAFN_IS_CONVERTIBLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,\n+is_nothrow_convertible_type, METAFN_IS_NOTHROW_CONVERTIBLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,\n+is_layout_compatible_type, METAFN_IS_LAYOUT_COMPATIBLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,\n+is_pointer_interconvertible_base_of_type, METAFN_IS_POINTER_INTERCONVERTIBLE_BASE_OF_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,\n+is_invocable_type, METAFN_IS_INVOCABLE_TYPE, METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,\n+is_invocable_r_type, METAFN_IS_INVOCABLE_R_TYPE, METAFN_KIND_BOOL_TINFO_TINFO_REFLECTION_RANGET,\n+is_nothrow_invocable_type, METAFN_IS_NOTHROW_INVOCABLE_TYPE, METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,\n+is_nothrow_invocable_r_type, METAFN_IS_NOTHROW_INVOCABLE_R_TYPE, METAFN_KIND_BOOL_TINFO_TINFO_REFLECTION_RANGET,\n+remove_const, METAFN_REMOVE_CONST, METAFN_KIND_INFO_TINFO,\n+remove_volatile, METAFN_REMOVE_VOLATILE, METAFN_KIND_INFO_TINFO,\n+remove_cv, METAFN_REMOVE_CV, METAFN_KIND_INFO_TINFO,\n+add_const, METAFN_ADD_CONST, METAFN_KIND_INFO_TINFO,\n+add_volatile, METAFN_ADD_VOLATILE, METAFN_KIND_INFO_TINFO,\n+add_cv, METAFN_ADD_CV, METAFN_KIND_INFO_TINFO,\n+remove_reference, METAFN_REMOVE_REFERENCE, METAFN_KIND_INFO_TINFO,\n+add_lvalue_reference, METAFN_ADD_LVALUE_REFERENCE, METAFN_KIND_INFO_TINFO,\n+add_rvalue_reference, METAFN_ADD_RVALUE_REFERENCE, METAFN_KIND_INFO_TINFO,\n+make_signed, METAFN_MAKE_SIGNED, METAFN_KIND_INFO_TINFO,\n+make_unsigned, METAFN_MAKE_UNSIGNED, METAFN_KIND_INFO_TINFO,\n+remove_extent, METAFN_REMOVE_EXTENT, METAFN_KIND_INFO_TINFO,\n+remove_all_extents, METAFN_REMOVE_ALL_EXTENTS, METAFN_KIND_INFO_TINFO,\n+remove_pointer, METAFN_REMOVE_POINTER, METAFN_KIND_INFO_TINFO,\n+add_pointer, METAFN_ADD_POINTER, METAFN_KIND_INFO_TINFO,\n+remove_cvref, METAFN_REMOVE_CVREF, METAFN_KIND_INFO_TINFO,\n+decay, METAFN_DECAY, METAFN_KIND_INFO_TINFO,\n+common_type, METAFN_COMMON_TYPE, METAFN_KIND_INFO_REFLECTION_RANGET,\n+common_reference, METAFN_COMMON_REFERENCE, METAFN_KIND_INFO_REFLECTION_RANGET,\n+underlying_type, METAFN_UNDERLYING_TYPE, METAFN_KIND_INFO_TINFO,\n+invoke_result, METAFN_INVOKE_RESULT, METAFN_KIND_INFO_TINFO_REFLECTION_RANGET,\n+unwrap_reference, METAFN_UNWRAP_REFERENCE, METAFN_KIND_INFO_TINFO,\n+unwrap_ref_decay, METAFN_UNWRAP_REF_DECAY, METAFN_KIND_INFO_TINFO,\n+tuple_size, METAFN_TUPLE_SIZE, METAFN_KIND_SIZE_T_TINFO,\n+tuple_element, METAFN_TUPLE_ELEMENT, METAFN_KIND_INFO_SIZE_T_TINFO,\n+variant_size, METAFN_VARIANT_SIZE, METAFN_KIND_SIZE_T_TINFO,\n+variant_alternative, METAFN_VARIANT_ALTERNATIVE, METAFN_KIND_INFO_SIZE_T_TINFO,\n+type_order, METAFN_TYPE_ORDER, METAFN_KIND_STRONG_ORDERING_TINFO_TINFO,\n+annotations_of, METAFN_ANNOTATIONS_OF, METAFN_KIND_VECTOR_INFO_INFO,\n+annotations_of_with_type, METAFN_ANNOTATIONS_OF_WITH_TYPE, METAFN_KIND_VECTOR_INFO_INFO_INFO,\n+current, METAFN_ACCESS_CONTEXT_CURRENT, METAFN_KIND_ACCESS_CONTEXT_VOID,\n+_S_exception_cvt_to_utf8, METAFN_EXCEPTION__S_EXCEPTION_CVT_TO_UTF8, METAFN_KIND_U8STRING_VIEW_INPUT_RANGE,\n+_S_exception_cvt_from_utf8, METAFN_EXCEPTION__S_EXCEPTION_CVT_FROM_UTF8, METAFN_KIND_STRING_VIEW_INPUT_RANGE,\ndiff --git a/gcc/cp/metafns.h b/gcc/cp/metafns.h\nnew file mode 100644\nindex 00000000000..c556ef70925\n--- /dev/null\n+++ b/gcc/cp/metafns.h\n@@ -0,0 +1,1136 @@\n+/* C++ code produced by gperf version 3.2.1 */\n+/* Command-line: gperf -o -C -E -k '1,4,5,11,14,$' -D -N find -L C++ --output-file metafns.h metafns.gperf  */\n+\n+#if !((' ' == 32) && ('!' == 33) && ('\"' == 34) && ('#' == 35) \\\n+      && ('%' == 37) && ('&' == 38) && ('\\'' == 39) && ('(' == 40) \\\n+      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \\\n+      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \\\n+      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \\\n+      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \\\n+      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \\\n+      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \\\n+      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \\\n+      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \\\n+      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \\\n+      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \\\n+      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \\\n+      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \\\n+      && ('Z' == 90) && ('[' == 91) && ('\\\\' == 92) && (']' == 93) \\\n+      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \\\n+      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \\\n+      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \\\n+      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \\\n+      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \\\n+      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \\\n+      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \\\n+      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))\n+/* The character set is not based on ISO-646.  */\n+#error \"gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>.\"\n+#endif\n+\n+#line 4 \"metafns.gperf\"\n+\n+/* Copyright (C) 2025 Free Software Foundation, Inc.\n+   Written by Jakub Jelinek <jakub@redhat.com>\n+\n+This file is part of GCC.\n+\n+GCC is free software; you can redistribute it and/or modify it under\n+the terms of the GNU General Public License as published by the Free\n+Software Foundation; either version 3, or (at your option) any later\n+version.\n+\n+GCC is distributed in the hope that it will be useful, but WITHOUT ANY\n+WARRANTY; without even the implied warranty of MERCHANTABILITY or\n+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License\n+for more details.\n+\n+You should have received a copy of the GNU General Public License\n+along with GCC; see the file COPYING3.  If not see\n+<http://www.gnu.org/licenses/>.  */\n+\n+enum metafn_code {\n+  METAFN_OPERATOR_OF,\n+  METAFN_SYMBOL_OF,\n+  METAFN_U8SYMBOL_OF,\n+  METAFN_HAS_IDENTIFIER,\n+  METAFN_IDENTIFIER_OF,\n+  METAFN_U8IDENTIFIER_OF,\n+  METAFN_DISPLAY_STRING_OF,\n+  METAFN_U8DISPLAY_STRING_OF,\n+  METAFN_SOURCE_LOCATION_OF,\n+  METAFN_TYPE_OF,\n+  METAFN_OBJECT_OF,\n+  METAFN_CONSTANT_OF,\n+  METAFN_IS_PUBLIC,\n+  METAFN_IS_PROTECTED,\n+  METAFN_IS_PRIVATE,\n+  METAFN_IS_VIRTUAL,\n+  METAFN_IS_PURE_VIRTUAL,\n+  METAFN_IS_OVERRIDE,\n+  METAFN_IS_FINAL,\n+  METAFN_IS_DELETED,\n+  METAFN_IS_DEFAULTED,\n+  METAFN_IS_USER_PROVIDED,\n+  METAFN_IS_USER_DECLARED,\n+  METAFN_IS_EXPLICIT,\n+  METAFN_IS_NOEXCEPT,\n+  METAFN_IS_BIT_FIELD,\n+  METAFN_IS_ENUMERATOR,\n+  METAFN_IS_ANNOTATION,\n+  METAFN_IS_CONST,\n+  METAFN_IS_VOLATILE,\n+  METAFN_IS_MUTABLE_MEMBER,\n+  METAFN_IS_LVALUE_REFERENCE_QUALIFIED,\n+  METAFN_IS_RVALUE_REFERENCE_QUALIFIED,\n+  METAFN_HAS_STATIC_STORAGE_DURATION,\n+  METAFN_HAS_THREAD_STORAGE_DURATION,\n+  METAFN_HAS_AUTOMATIC_STORAGE_DURATION,\n+  METAFN_HAS_INTERNAL_LINKAGE,\n+  METAFN_HAS_MODULE_LINKAGE,\n+  METAFN_HAS_EXTERNAL_LINKAGE,\n+  METAFN_HAS_C_LANGUAGE_LINKAGE,\n+  METAFN_HAS_LINKAGE,\n+  METAFN_IS_COMPLETE_TYPE,\n+  METAFN_IS_ENUMERABLE_TYPE,\n+  METAFN_IS_VARIABLE,\n+  METAFN_IS_TYPE,\n+  METAFN_IS_NAMESPACE,\n+  METAFN_IS_TYPE_ALIAS,\n+  METAFN_IS_NAMESPACE_ALIAS,\n+  METAFN_IS_FUNCTION,\n+  METAFN_IS_CONVERSION_FUNCTION,\n+  METAFN_IS_OPERATOR_FUNCTION,\n+  METAFN_IS_LITERAL_OPERATOR,\n+  METAFN_IS_SPECIAL_MEMBER_FUNCTION,\n+  METAFN_IS_CONSTRUCTOR,\n+  METAFN_IS_DEFAULT_CONSTRUCTOR,\n+  METAFN_IS_COPY_CONSTRUCTOR,\n+  METAFN_IS_MOVE_CONSTRUCTOR,\n+  METAFN_IS_ASSIGNMENT,\n+  METAFN_IS_COPY_ASSIGNMENT,\n+  METAFN_IS_MOVE_ASSIGNMENT,\n+  METAFN_IS_DESTRUCTOR,\n+  METAFN_IS_FUNCTION_PARAMETER,\n+  METAFN_IS_EXPLICIT_OBJECT_PARAMETER,\n+  METAFN_HAS_DEFAULT_ARGUMENT,\n+  METAFN_HAS_ELLIPSIS_PARAMETER,\n+  METAFN_IS_TEMPLATE,\n+  METAFN_IS_FUNCTION_TEMPLATE,\n+  METAFN_IS_VARIABLE_TEMPLATE,\n+  METAFN_IS_CLASS_TEMPLATE,\n+  METAFN_IS_ALIAS_TEMPLATE,\n+  METAFN_IS_CONVERSION_FUNCTION_TEMPLATE,\n+  METAFN_IS_OPERATOR_FUNCTION_TEMPLATE,\n+  METAFN_IS_LITERAL_OPERATOR_TEMPLATE,\n+  METAFN_IS_CONSTRUCTOR_TEMPLATE,\n+  METAFN_IS_CONCEPT,\n+  METAFN_IS_VALUE,\n+  METAFN_IS_OBJECT,\n+  METAFN_IS_STRUCTURED_BINDING,\n+  METAFN_IS_CLASS_MEMBER,\n+  METAFN_IS_NAMESPACE_MEMBER,\n+  METAFN_IS_NONSTATIC_DATA_MEMBER,\n+  METAFN_IS_STATIC_MEMBER,\n+  METAFN_IS_BASE,\n+  METAFN_HAS_DEFAULT_MEMBER_INITIALIZER,\n+  METAFN_HAS_PARENT,\n+  METAFN_PARENT_OF,\n+  METAFN_DEALIAS,\n+  METAFN_HAS_TEMPLATE_ARGUMENTS,\n+  METAFN_TEMPLATE_OF,\n+  METAFN_TEMPLATE_ARGUMENTS_OF,\n+  METAFN_PARAMETERS_OF,\n+  METAFN_VARIABLE_OF,\n+  METAFN_RETURN_TYPE_OF,\n+  METAFN_IS_ACCESSIBLE,\n+  METAFN_HAS_INACCESSIBLE_NONSTATIC_DATA_MEMBERS,\n+  METAFN_HAS_INACCESSIBLE_BASES,\n+  METAFN_HAS_INACCESSIBLE_SUBOBJECTS,\n+  METAFN_MEMBERS_OF,\n+  METAFN_BASES_OF,\n+  METAFN_STATIC_DATA_MEMBERS_OF,\n+  METAFN_NONSTATIC_DATA_MEMBERS_OF,\n+  METAFN_SUBOBJECTS_OF,\n+  METAFN_ENUMERATORS_OF,\n+  METAFN_OFFSET_OF,\n+  METAFN_SIZE_OF,\n+  METAFN_ALIGNMENT_OF,\n+  METAFN_BIT_SIZE_OF,\n+  METAFN_EXTRACT,\n+  METAFN_CAN_SUBSTITUTE,\n+  METAFN_SUBSTITUTE,\n+  METAFN_REFLECT_CONSTANT,\n+  METAFN_REFLECT_OBJECT,\n+  METAFN_REFLECT_FUNCTION,\n+  METAFN_REFLECT_CONSTANT_STRING,\n+  METAFN_REFLECT_CONSTANT_ARRAY,\n+  METAFN_DATA_MEMBER_SPEC,\n+  METAFN_IS_DATA_MEMBER_SPEC,\n+  METAFN_DEFINE_AGGREGATE,\n+  METAFN_IS_VOID_TYPE,\n+  METAFN_IS_NULL_POINTER_TYPE,\n+  METAFN_IS_INTEGRAL_TYPE,\n+  METAFN_IS_FLOATING_POINT_TYPE,\n+  METAFN_IS_ARRAY_TYPE,\n+  METAFN_IS_POINTER_TYPE,\n+  METAFN_IS_LVALUE_REFERENCE_TYPE,\n+  METAFN_IS_RVALUE_REFERENCE_TYPE,\n+  METAFN_IS_MEMBER_OBJECT_POINTER_TYPE,\n+  METAFN_IS_MEMBER_FUNCTION_POINTER_TYPE,\n+  METAFN_IS_ENUM_TYPE,\n+  METAFN_IS_UNION_TYPE,\n+  METAFN_IS_CLASS_TYPE,\n+  METAFN_IS_FUNCTION_TYPE,\n+  METAFN_IS_REFLECTION_TYPE,\n+  METAFN_IS_REFERENCE_TYPE,\n+  METAFN_IS_ARITHMETIC_TYPE,\n+  METAFN_IS_FUNDAMENTAL_TYPE,\n+  METAFN_IS_OBJECT_TYPE,\n+  METAFN_IS_SCALAR_TYPE,\n+  METAFN_IS_COMPOUND_TYPE,\n+  METAFN_IS_MEMBER_POINTER_TYPE,\n+  METAFN_IS_CONST_TYPE,\n+  METAFN_IS_VOLATILE_TYPE,\n+  METAFN_IS_TRIVIALLY_COPYABLE_TYPE,\n+  METAFN_IS_STANDARD_LAYOUT_TYPE,\n+  METAFN_IS_EMPTY_TYPE,\n+  METAFN_IS_POLYMORPHIC_TYPE,\n+  METAFN_IS_ABSTRACT_TYPE,\n+  METAFN_IS_FINAL_TYPE,\n+  METAFN_IS_AGGREGATE_TYPE,\n+  METAFN_IS_CONSTEVAL_ONLY_TYPE,\n+  METAFN_IS_SIGNED_TYPE,\n+  METAFN_IS_UNSIGNED_TYPE,\n+  METAFN_IS_BOUNDED_ARRAY_TYPE,\n+  METAFN_IS_UNBOUNDED_ARRAY_TYPE,\n+  METAFN_IS_SCOPED_ENUM_TYPE,\n+  METAFN_IS_CONSTRUCTIBLE_TYPE,\n+  METAFN_IS_DEFAULT_CONSTRUCTIBLE_TYPE,\n+  METAFN_IS_COPY_CONSTRUCTIBLE_TYPE,\n+  METAFN_IS_MOVE_CONSTRUCTIBLE_TYPE,\n+  METAFN_IS_ASSIGNABLE_TYPE,\n+  METAFN_IS_COPY_ASSIGNABLE_TYPE,\n+  METAFN_IS_MOVE_ASSIGNABLE_TYPE,\n+  METAFN_IS_SWAPPABLE_WITH_TYPE,\n+  METAFN_IS_SWAPPABLE_TYPE,\n+  METAFN_IS_DESTRUCTIBLE_TYPE,\n+  METAFN_IS_TRIVIALLY_CONSTRUCTIBLE_TYPE,\n+  METAFN_IS_TRIVIALLY_DEFAULT_CONSTRUCTIBLE_TYPE,\n+  METAFN_IS_TRIVIALLY_COPY_CONSTRUCTIBLE_TYPE,\n+  METAFN_IS_TRIVIALLY_MOVE_CONSTRUCTIBLE_TYPE,\n+  METAFN_IS_TRIVIALLY_ASSIGNABLE_TYPE,\n+  METAFN_IS_TRIVIALLY_COPY_ASSIGNABLE_TYPE,\n+  METAFN_IS_TRIVIALLY_MOVE_ASSIGNABLE_TYPE,\n+  METAFN_IS_TRIVIALLY_DESTRUCTIBLE_TYPE,\n+  METAFN_IS_NOTHROW_CONSTRUCTIBLE_TYPE,\n+  METAFN_IS_NOTHROW_DEFAULT_CONSTRUCTIBLE_TYPE,\n+  METAFN_IS_NOTHROW_COPY_CONSTRUCTIBLE_TYPE,\n+  METAFN_IS_NOTHROW_MOVE_CONSTRUCTIBLE_TYPE,\n+  METAFN_IS_NOTHROW_ASSIGNABLE_TYPE,\n+  METAFN_IS_NOTHROW_COPY_ASSIGNABLE_TYPE,\n+  METAFN_IS_NOTHROW_MOVE_ASSIGNABLE_TYPE,\n+  METAFN_IS_NOTHROW_SWAPPABLE_WITH_TYPE,\n+  METAFN_IS_NOTHROW_SWAPPABLE_TYPE,\n+  METAFN_IS_NOTHROW_DESTRUCTIBLE_TYPE,\n+  METAFN_IS_IMPLICIT_LIFETIME_TYPE,\n+  METAFN_HAS_VIRTUAL_DESTRUCTOR,\n+  METAFN_HAS_UNIQUE_OBJECT_REPRESENTATIONS,\n+  METAFN_REFERENCE_CONSTRUCTS_FROM_TEMPORARY,\n+  METAFN_REFERENCE_CONVERTS_FROM_TEMPORARY,\n+  METAFN_RANK,\n+  METAFN_EXTENT,\n+  METAFN_IS_SAME_TYPE,\n+  METAFN_IS_BASE_OF_TYPE,\n+  METAFN_IS_VIRTUAL_BASE_OF_TYPE,\n+  METAFN_IS_CONVERTIBLE_TYPE,\n+  METAFN_IS_NOTHROW_CONVERTIBLE_TYPE,\n+  METAFN_IS_LAYOUT_COMPATIBLE_TYPE,\n+  METAFN_IS_POINTER_INTERCONVERTIBLE_BASE_OF_TYPE,\n+  METAFN_IS_INVOCABLE_TYPE,\n+  METAFN_IS_INVOCABLE_R_TYPE,\n+  METAFN_IS_NOTHROW_INVOCABLE_TYPE,\n+  METAFN_IS_NOTHROW_INVOCABLE_R_TYPE,\n+  METAFN_REMOVE_CONST,\n+  METAFN_REMOVE_VOLATILE,\n+  METAFN_REMOVE_CV,\n+  METAFN_ADD_CONST,\n+  METAFN_ADD_VOLATILE,\n+  METAFN_ADD_CV,\n+  METAFN_REMOVE_REFERENCE,\n+  METAFN_ADD_LVALUE_REFERENCE,\n+  METAFN_ADD_RVALUE_REFERENCE,\n+  METAFN_MAKE_SIGNED,\n+  METAFN_MAKE_UNSIGNED,\n+  METAFN_REMOVE_EXTENT,\n+  METAFN_REMOVE_ALL_EXTENTS,\n+  METAFN_REMOVE_POINTER,\n+  METAFN_ADD_POINTER,\n+  METAFN_REMOVE_CVREF,\n+  METAFN_DECAY,\n+  METAFN_COMMON_TYPE,\n+  METAFN_COMMON_REFERENCE,\n+  METAFN_UNDERLYING_TYPE,\n+  METAFN_INVOKE_RESULT,\n+  METAFN_UNWRAP_REFERENCE,\n+  METAFN_UNWRAP_REF_DECAY,\n+  METAFN_TUPLE_SIZE,\n+  METAFN_TUPLE_ELEMENT,\n+  METAFN_VARIANT_SIZE,\n+  METAFN_VARIANT_ALTERNATIVE,\n+  METAFN_TYPE_ORDER,\n+  METAFN_ANNOTATIONS_OF,\n+  METAFN_ANNOTATIONS_OF_WITH_TYPE,\n+  /* Special metafunctions.  */\n+  METAFN_ACCESS_CONTEXT_CURRENT,\n+  METAFN_EXCEPTION__S_EXCEPTION_CVT_TO_UTF8,\n+  METAFN_EXCEPTION__S_EXCEPTION_CVT_FROM_UTF8\n+};\n+\n+/* Possible return types of metafunctions.  */\n+enum metafn_kind_ret {\n+  METAFN_KIND_RET_BOOL,\n+  METAFN_KIND_RET_INFO,\n+  METAFN_KIND_RET_SIZE_T,\n+  METAFN_KIND_RET_MEMBER_OFFSET,\n+  METAFN_KIND_RET_OPERATORS,\n+  METAFN_KIND_RET_SOURCE_LOCATION,\n+  METAFN_KIND_RET_STRING_VIEW,\n+  METAFN_KIND_RET_U8STRING_VIEW,\n+  METAFN_KIND_RET_STRONG_ORDERING,\n+  METAFN_KIND_RET_VECTOR_INFO,\n+  METAFN_KIND_RET_ACCESS_CONTEXT,\n+  METAFN_KIND_RET_TEMPLATE_PARM,\n+};\n+\n+/* Possible argument types of metafunctions.  */\n+enum metafn_kind_arg {\n+  METAFN_KIND_ARG_VOID = 0,\n+  METAFN_KIND_ARG_INFO,\n+  METAFN_KIND_ARG_TINFO, /* info argument which throws if not a type.  */\n+  METAFN_KIND_ARG_REFLECTION_RANGE,\n+  /* reflection_range with type infos only.  */\n+  METAFN_KIND_ARG_REFLECTION_RANGET,\n+  METAFN_KIND_ARG_INPUT_RANGE,\n+  METAFN_KIND_ARG_SIZE_T,\n+  METAFN_KIND_ARG_UNSIGNED,\n+  METAFN_KIND_ARG_OPERATORS,\n+  METAFN_KIND_ARG_ACCESS_CONTEXT,\n+  METAFN_KIND_ARG_DATA_MEMBER_OPTIONS,\n+  METAFN_KIND_ARG_TEMPLATE_PARM, /* Some other template parameter.  */\n+  METAFN_KIND_ARG_TEMPLATE_PARM_REF /* Reference to template parameter.  */\n+};\n+\n+/* Possible sets of 0-3 arguments of metafunctions.  */\n+enum metafn_kind_args {\n+  METAFN_KIND_ARGS_VOID = METAFN_KIND_ARG_VOID,\n+  METAFN_KIND_ARGS_INFO = METAFN_KIND_ARG_INFO,\n+  METAFN_KIND_ARGS_TINFO = METAFN_KIND_ARG_TINFO,\n+  METAFN_KIND_ARGS_REFLECTION_RANGET = METAFN_KIND_ARG_REFLECTION_RANGET,\n+  METAFN_KIND_ARGS_INPUT_RANGE = METAFN_KIND_ARG_INPUT_RANGE,\n+  METAFN_KIND_ARGS_OPERATORS = METAFN_KIND_ARG_OPERATORS,\n+  METAFN_KIND_ARGS_TEMPLATE_PARM = METAFN_KIND_ARG_TEMPLATE_PARM,\n+  METAFN_KIND_ARGS_TEMPLATE_PARM_REF = METAFN_KIND_ARG_TEMPLATE_PARM_REF,\n+  METAFN_KIND_ARGS_INFO_INFO\n+    = (METAFN_KIND_ARG_INFO << 5) | METAFN_KIND_ARG_INFO,\n+  METAFN_KIND_ARGS_TINFO_TINFO\n+    = (METAFN_KIND_ARG_TINFO << 5) | METAFN_KIND_ARG_TINFO,\n+  METAFN_KIND_ARGS_TINFO_UNSIGNED\n+    = (METAFN_KIND_ARG_UNSIGNED << 5) | METAFN_KIND_ARG_TINFO,\n+  METAFN_KIND_ARGS_INFO_ACCESS_CONTEXT\n+    = (METAFN_KIND_ARG_ACCESS_CONTEXT << 5) | METAFN_KIND_ARG_INFO,\n+  METAFN_KIND_ARGS_TINFO_DATA_MEMBER_OPTIONS\n+    = (METAFN_KIND_ARG_DATA_MEMBER_OPTIONS << 5) | METAFN_KIND_ARG_TINFO,\n+  METAFN_KIND_ARGS_INFO_REFLECTION_RANGE\n+    = (METAFN_KIND_ARG_REFLECTION_RANGE << 5) | METAFN_KIND_ARG_INFO,\n+  METAFN_KIND_ARGS_TINFO_REFLECTION_RANGET\n+    = (METAFN_KIND_ARG_REFLECTION_RANGET << 5) | METAFN_KIND_ARG_TINFO,\n+  METAFN_KIND_ARGS_SIZE_T_TINFO\n+    = (METAFN_KIND_ARG_TINFO << 5) | METAFN_KIND_ARG_SIZE_T,\n+  METAFN_KIND_ARGS_TINFO_TINFO_REFLECTION_RANGET\n+    = (METAFN_KIND_ARG_REFLECTION_RANGET << 10) | METAFN_KIND_ARGS_TINFO_TINFO,\n+};\n+\n+enum metafn_kind {\n+  METAFN_KIND_BOOL_INFO\n+    = (METAFN_KIND_ARGS_INFO << 5) | METAFN_KIND_RET_BOOL,\n+  METAFN_KIND_BOOL_TINFO\n+    = (METAFN_KIND_ARGS_TINFO << 5) | METAFN_KIND_RET_BOOL,\n+  METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT\n+    = (METAFN_KIND_ARGS_INFO_ACCESS_CONTEXT << 5) | METAFN_KIND_RET_BOOL,\n+  METAFN_KIND_BOOL_TINFO_TINFO\n+    = (METAFN_KIND_ARGS_TINFO_TINFO << 5) | METAFN_KIND_RET_BOOL,\n+  METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET\n+    = (METAFN_KIND_ARGS_TINFO_REFLECTION_RANGET << 5) | METAFN_KIND_RET_BOOL,\n+  METAFN_KIND_BOOL_TINFO_TINFO_REFLECTION_RANGET\n+    = (METAFN_KIND_ARGS_TINFO_TINFO_REFLECTION_RANGET << 5)\n+      | METAFN_KIND_RET_BOOL,\n+  METAFN_KIND_INFO_INFO = (METAFN_KIND_ARGS_INFO << 5) | METAFN_KIND_RET_INFO,\n+  METAFN_KIND_INFO_TINFO\n+    = (METAFN_KIND_ARGS_TINFO << 5) | METAFN_KIND_RET_INFO,\n+  METAFN_KIND_INFO_TINFO_REFLECTION_RANGET\n+    = (METAFN_KIND_ARGS_TINFO_REFLECTION_RANGET << 5) | METAFN_KIND_RET_INFO,\n+  METAFN_KIND_INFO_TINFO_DATA_MEMBER_OPTIONS\n+    = (METAFN_KIND_ARGS_TINFO_DATA_MEMBER_OPTIONS << 5) | METAFN_KIND_RET_INFO,\n+  METAFN_KIND_INFO_REFLECTION_RANGET\n+    = (METAFN_KIND_ARGS_REFLECTION_RANGET << 5) | METAFN_KIND_RET_INFO,\n+  METAFN_KIND_INFO_INFO_REFLECTION_RANGE\n+    = (METAFN_KIND_ARGS_INFO_REFLECTION_RANGE << 5) | METAFN_KIND_RET_INFO,\n+  METAFN_KIND_INFO_INPUT_RANGE\n+    = (METAFN_KIND_ARGS_INPUT_RANGE << 5) | METAFN_KIND_RET_INFO,\n+  METAFN_KIND_INFO_TEMPLATE_PARM\n+    = (METAFN_KIND_ARGS_TEMPLATE_PARM << 5) | METAFN_KIND_RET_INFO,\n+  METAFN_KIND_INFO_TEMPLATE_PARM_REF\n+    = (METAFN_KIND_ARGS_TEMPLATE_PARM_REF << 5) | METAFN_KIND_RET_INFO,\n+  METAFN_KIND_INFO_SIZE_T_TINFO\n+    = (METAFN_KIND_ARGS_SIZE_T_TINFO << 5) | METAFN_KIND_RET_INFO,\n+  METAFN_KIND_MEMBER_OFFSET_INFO\n+    = (METAFN_KIND_ARGS_INFO << 5) | METAFN_KIND_RET_MEMBER_OFFSET,\n+  METAFN_KIND_OPERATORS_INFO\n+    = (METAFN_KIND_ARGS_INFO << 5) | METAFN_KIND_RET_OPERATORS,\n+  METAFN_KIND_SIZE_T_INFO\n+    = (METAFN_KIND_ARGS_INFO << 5) | METAFN_KIND_RET_SIZE_T,\n+  METAFN_KIND_SIZE_T_TINFO\n+    = (METAFN_KIND_ARGS_TINFO << 5) | METAFN_KIND_RET_SIZE_T,\n+  METAFN_KIND_SIZE_T_TINFO_UNSIGNED\n+    = (METAFN_KIND_ARGS_TINFO_UNSIGNED << 5) | METAFN_KIND_RET_SIZE_T,\n+  METAFN_KIND_SOURCE_LOCATION_INFO\n+    = (METAFN_KIND_ARGS_INFO << 5) | METAFN_KIND_RET_SOURCE_LOCATION,\n+  METAFN_KIND_STRING_VIEW_INFO\n+    = (METAFN_KIND_ARGS_INFO << 5) | METAFN_KIND_RET_STRING_VIEW,\n+  METAFN_KIND_STRING_VIEW_OPERATORS\n+    = (METAFN_KIND_ARGS_OPERATORS << 5) | METAFN_KIND_RET_STRING_VIEW,\n+  METAFN_KIND_U8STRING_VIEW_INFO\n+    = (METAFN_KIND_ARGS_INFO << 5) | METAFN_KIND_RET_U8STRING_VIEW,\n+  METAFN_KIND_U8STRING_VIEW_OPERATORS\n+    = (METAFN_KIND_ARGS_OPERATORS << 5) | METAFN_KIND_RET_U8STRING_VIEW,\n+  METAFN_KIND_STRONG_ORDERING_TINFO_TINFO\n+    = (METAFN_KIND_ARGS_TINFO_TINFO << 5) | METAFN_KIND_RET_STRONG_ORDERING,\n+  METAFN_KIND_VECTOR_INFO_INFO\n+    = (METAFN_KIND_ARGS_INFO << 5) | METAFN_KIND_RET_VECTOR_INFO,\n+  METAFN_KIND_VECTOR_INFO_INFO_INFO\n+    = (METAFN_KIND_ARGS_INFO_INFO << 5) | METAFN_KIND_RET_VECTOR_INFO,\n+  METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT\n+    = (METAFN_KIND_ARGS_INFO_ACCESS_CONTEXT << 5)\n+      | METAFN_KIND_RET_VECTOR_INFO,\n+  METAFN_KIND_TEMPLATE_PARM_INFO\n+    = (METAFN_KIND_ARGS_INFO << 5) | METAFN_KIND_RET_TEMPLATE_PARM,\n+  METAFN_KIND_ACCESS_CONTEXT_VOID\n+    = (METAFN_KIND_ARGS_VOID << 5) | METAFN_KIND_RET_ACCESS_CONTEXT,\n+  METAFN_KIND_STRING_VIEW_INPUT_RANGE\n+    = (METAFN_KIND_ARGS_INPUT_RANGE << 5) | METAFN_KIND_RET_STRING_VIEW,\n+  METAFN_KIND_U8STRING_VIEW_INPUT_RANGE\n+    = (METAFN_KIND_ARGS_INPUT_RANGE << 5) | METAFN_KIND_RET_U8STRING_VIEW\n+};\n+#line 398 \"metafns.gperf\"\n+struct metafn_info\n+{\n+  /* A name within \"std::meta::\" (or \"std::meta::access_context::\").  */\n+  const char *name;\n+\n+  /* METAFN_ code.  */\n+  metafn_code code;\n+\n+  /* METAFN_KIND_ kind of arguments and return type.  */\n+  metafn_kind kind;\n+};\n+/* maximum key range = 879, duplicates = 0 */\n+\n+class metafn_lookup\n+{\n+private:\n+  static inline unsigned int hash (const char *str, size_t len);\n+public:\n+  static const struct metafn_info *find (const char *str, size_t len);\n+};\n+\n+inline unsigned int\n+metafn_lookup::hash (const char *str, size_t len)\n+{\n+  static const unsigned short asso_values[] =\n+    {\n+      918, 918, 918, 918, 918, 918, 918, 918, 918, 918,\n+      918, 918, 918, 918, 918, 918, 918, 918, 918, 918,\n+      918, 918, 918, 918, 918, 918, 918, 918, 918, 918,\n+      918, 918, 918, 918, 918, 918, 918, 918, 918, 918,\n+      918, 918, 918, 918, 918, 918, 918, 918, 918, 918,\n+      918, 918, 918, 918, 918, 918,   0, 918, 918, 918,\n+      918, 918, 918, 918, 918, 918, 918, 918, 918, 918,\n+      918, 918, 918, 918, 918, 918, 918, 918, 918, 918,\n+      918, 918, 918, 918, 918, 918, 918, 918, 918, 918,\n+      918, 918, 918, 918, 918,   5, 100, 145,  10,  45,\n+      165,   5,  55,  50,  72,  20, 248,   0,  55, 105,\n+        0, 205,   0,  45,  35,  55,  25, 195,   5, 199,\n+       20, 311,  20, 918, 918, 918, 918, 918, 918, 918,\n+      918, 918, 918, 918, 918, 918, 918, 918, 918, 918,\n+      918, 918, 918, 918, 918, 918, 918, 918, 918, 918,\n+      918, 918, 918, 918, 918, 918, 918, 918, 918, 918,\n+      918, 918, 918, 918, 918, 918, 918, 918, 918, 918,\n+      918, 918, 918, 918, 918, 918, 918, 918, 918, 918,\n+      918, 918, 918, 918, 918, 918, 918, 918, 918, 918,\n+      918, 918, 918, 918, 918, 918, 918, 918, 918, 918,\n+      918, 918, 918, 918, 918, 918, 918, 918, 918, 918,\n+      918, 918, 918, 918, 918, 918, 918, 918, 918, 918,\n+      918, 918, 918, 918, 918, 918, 918, 918, 918, 918,\n+      918, 918, 918, 918, 918, 918, 918, 918, 918, 918,\n+      918, 918, 918, 918, 918, 918, 918, 918, 918, 918,\n+      918, 918, 918, 918, 918, 918, 918\n+    };\n+  unsigned int hval = len;\n+\n+  switch (hval)\n+    {\n+      default:\n+        hval += asso_values[static_cast<unsigned char>(str[13])];\n+#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))\n+      [[fallthrough]];\n+#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)\n+      __attribute__ ((__fallthrough__));\n+#endif\n+      /*FALLTHROUGH*/\n+      case 13:\n+      case 12:\n+      case 11:\n+        hval += asso_values[static_cast<unsigned char>(str[10])];\n+#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))\n+      [[fallthrough]];\n+#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)\n+      __attribute__ ((__fallthrough__));\n+#endif\n+      /*FALLTHROUGH*/\n+      case 10:\n+      case 9:\n+      case 8:\n+      case 7:\n+      case 6:\n+      case 5:\n+        hval += asso_values[static_cast<unsigned char>(str[4]+1)];\n+#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))\n+      [[fallthrough]];\n+#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)\n+      __attribute__ ((__fallthrough__));\n+#endif\n+      /*FALLTHROUGH*/\n+      case 4:\n+        hval += asso_values[static_cast<unsigned char>(str[3])];\n+#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))\n+      [[fallthrough]];\n+#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)\n+      __attribute__ ((__fallthrough__));\n+#endif\n+      /*FALLTHROUGH*/\n+      case 3:\n+      case 2:\n+      case 1:\n+        hval += asso_values[static_cast<unsigned char>(str[0])];\n+        break;\n+    }\n+  return hval + asso_values[static_cast<unsigned char>(str[len - 1])];\n+}\n+\n+const struct metafn_info *\n+metafn_lookup::find (const char *str, size_t len)\n+{\n+  enum\n+    {\n+      TOTAL_KEYWORDS = 234,\n+      MIN_WORD_LENGTH = 4,\n+      MAX_WORD_LENGTH = 40,\n+      MIN_HASH_VALUE = 39,\n+      MAX_HASH_VALUE = 917\n+    };\n+\n+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)\n+#pragma GCC diagnostic push\n+#pragma GCC diagnostic ignored \"-Wmissing-field-initializers\"\n+#endif\n+  static const struct metafn_info wordlist[] =\n+    {\n+#line 598 \"metafns.gperf\"\n+      {\"rank\", METAFN_RANK, METAFN_KIND_SIZE_T_TINFO,},\n+#line 528 \"metafns.gperf\"\n+      {\"is_void_type\", METAFN_IS_VOID_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 533 \"metafns.gperf\"\n+      {\"is_pointer_type\", METAFN_IS_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 439 \"metafns.gperf\"\n+      {\"is_volatile\", METAFN_IS_VOLATILE, METAFN_KIND_BOOL_INFO,},\n+#line 485 \"metafns.gperf\"\n+      {\"is_value\", METAFN_IS_VALUE, METAFN_KIND_BOOL_INFO,},\n+#line 492 \"metafns.gperf\"\n+      {\"is_base\", METAFN_IS_BASE, METAFN_KIND_BOOL_INFO,},\n+#line 453 \"metafns.gperf\"\n+      {\"is_variable\", METAFN_IS_VARIABLE, METAFN_KIND_BOOL_INFO,},\n+#line 604 \"metafns.gperf\"\n+      {\"is_nothrow_convertible_type\", METAFN_IS_NOTHROW_CONVERTIBLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},\n+#line 583 \"metafns.gperf\"\n+      {\"is_nothrow_constructible_type\", METAFN_IS_NOTHROW_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,},\n+#line 609 \"metafns.gperf\"\n+      {\"is_nothrow_invocable_type\", METAFN_IS_NOTHROW_INVOCABLE_TYPE, METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,},\n+#line 588 \"metafns.gperf\"\n+      {\"is_nothrow_copy_assignable_type\", METAFN_IS_NOTHROW_COPY_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 610 \"metafns.gperf\"\n+      {\"is_nothrow_invocable_r_type\", METAFN_IS_NOTHROW_INVOCABLE_R_TYPE, METAFN_KIND_BOOL_TINFO_TINFO_REFLECTION_RANGET,},\n+#line 585 \"metafns.gperf\"\n+      {\"is_nothrow_copy_constructible_type\", METAFN_IS_NOTHROW_COPY_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 601 \"metafns.gperf\"\n+      {\"is_base_of_type\", METAFN_IS_BASE_OF_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},\n+#line 589 \"metafns.gperf\"\n+      {\"is_nothrow_move_assignable_type\", METAFN_IS_NOTHROW_MOVE_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 586 \"metafns.gperf\"\n+      {\"is_nothrow_move_constructible_type\", METAFN_IS_NOTHROW_MOVE_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 477 \"metafns.gperf\"\n+      {\"is_variable_template\", METAFN_IS_VARIABLE_TEMPLATE, METAFN_KIND_BOOL_INFO,},\n+#line 636 \"metafns.gperf\"\n+      {\"variant_size\", METAFN_VARIANT_SIZE, METAFN_KIND_SIZE_T_TINFO,},\n+#line 529 \"metafns.gperf\"\n+      {\"is_null_pointer_type\", METAFN_IS_NULL_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 454 \"metafns.gperf\"\n+      {\"is_type\", METAFN_IS_TYPE, METAFN_KIND_BOOL_INFO,},\n+#line 422 \"metafns.gperf\"\n+      {\"is_public\", METAFN_IS_PUBLIC, METAFN_KIND_BOOL_INFO,},\n+#line 434 \"metafns.gperf\"\n+      {\"is_noexcept\", METAFN_IS_NOEXCEPT, METAFN_KIND_BOOL_INFO,},\n+#line 517 \"metafns.gperf\"\n+      {\"extract\", METAFN_EXTRACT, METAFN_KIND_TEMPLATE_PARM_INFO,},\n+#line 637 \"metafns.gperf\"\n+      {\"variant_alternative\", METAFN_VARIANT_ALTERNATIVE, METAFN_KIND_INFO_SIZE_T_TINFO,},\n+#line 555 \"metafns.gperf\"\n+      {\"is_polymorphic_type\", METAFN_IS_POLYMORPHIC_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 424 \"metafns.gperf\"\n+      {\"is_private\", METAFN_IS_PRIVATE, METAFN_KIND_BOOL_INFO,},\n+#line 458 \"metafns.gperf\"\n+      {\"is_function\", METAFN_IS_FUNCTION, METAFN_KIND_BOOL_INFO,},\n+#line 455 \"metafns.gperf\"\n+      {\"is_namespace\", METAFN_IS_NAMESPACE, METAFN_KIND_BOOL_INFO,},\n+#line 606 \"metafns.gperf\"\n+      {\"is_pointer_interconvertible_base_of_type\", METAFN_IS_POINTER_INTERCONVERTIBLE_BASE_OF_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},\n+#line 562 \"metafns.gperf\"\n+      {\"is_bounded_array_type\", METAFN_IS_BOUNDED_ARRAY_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 438 \"metafns.gperf\"\n+      {\"is_const\", METAFN_IS_CONST, METAFN_KIND_BOOL_INFO,},\n+#line 484 \"metafns.gperf\"\n+      {\"is_concept\", METAFN_IS_CONCEPT, METAFN_KIND_BOOL_INFO,},\n+#line 600 \"metafns.gperf\"\n+      {\"is_same_type\", METAFN_IS_SAME_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},\n+#line 508 \"metafns.gperf\"\n+      {\"bases_of\", METAFN_BASES_OF, METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,},\n+#line 447 \"metafns.gperf\"\n+      {\"has_module_linkage\", METAFN_HAS_MODULE_LINKAGE, METAFN_KIND_BOOL_INFO,},\n+#line 476 \"metafns.gperf\"\n+      {\"is_function_template\", METAFN_IS_FUNCTION_TEMPLATE, METAFN_KIND_BOOL_INFO,},\n+#line 587 \"metafns.gperf\"\n+      {\"is_nothrow_assignable_type\", METAFN_IS_NOTHROW_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},\n+#line 459 \"metafns.gperf\"\n+      {\"is_conversion_function\", METAFN_IS_CONVERSION_FUNCTION, METAFN_KIND_BOOL_INFO,},\n+#line 592 \"metafns.gperf\"\n+      {\"is_nothrow_destructible_type\", METAFN_IS_NOTHROW_DESTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 603 \"metafns.gperf\"\n+      {\"is_convertible_type\", METAFN_IS_CONVERTIBLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},\n+#line 593 \"metafns.gperf\"\n+      {\"is_implicit_lifetime_type\", METAFN_IS_IMPLICIT_LIFETIME_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 475 \"metafns.gperf\"\n+      {\"is_template\", METAFN_IS_TEMPLATE, METAFN_KIND_BOOL_INFO,},\n+#line 584 \"metafns.gperf\"\n+      {\"is_nothrow_default_constructible_type\", METAFN_IS_NOTHROW_DEFAULT_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 518 \"metafns.gperf\"\n+      {\"can_substitute\", METAFN_CAN_SUBSTITUTE, METAFN_KIND_INFO_INFO_REFLECTION_RANGE,},\n+#line 480 \"metafns.gperf\"\n+      {\"is_conversion_function_template\", METAFN_IS_CONVERSION_FUNCTION_TEMPLATE, METAFN_KIND_BOOL_INFO,},\n+#line 411 \"metafns.gperf\"\n+      {\"symbol_of\", METAFN_SYMBOL_OF, METAFN_KIND_STRING_VIEW_OPERATORS,},\n+#line 567 \"metafns.gperf\"\n+      {\"is_copy_constructible_type\", METAFN_IS_COPY_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 565 \"metafns.gperf\"\n+      {\"is_constructible_type\", METAFN_IS_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,},\n+#line 445 \"metafns.gperf\"\n+      {\"has_automatic_storage_duration\", METAFN_HAS_AUTOMATIC_STORAGE_DURATION, METAFN_KIND_BOOL_INFO,},\n+#line 570 \"metafns.gperf\"\n+      {\"is_copy_assignable_type\", METAFN_IS_COPY_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 634 \"metafns.gperf\"\n+      {\"tuple_size\", METAFN_TUPLE_SIZE, METAFN_KIND_SIZE_T_TINFO,},\n+#line 456 \"metafns.gperf\"\n+      {\"is_type_alias\", METAFN_IS_TYPE_ALIAS, METAFN_KIND_BOOL_INFO,},\n+#line 465 \"metafns.gperf\"\n+      {\"is_copy_constructor\", METAFN_IS_COPY_CONSTRUCTOR, METAFN_KIND_BOOL_INFO,},\n+#line 501 \"metafns.gperf\"\n+      {\"variable_of\", METAFN_VARIABLE_OF, METAFN_KIND_INFO_INFO,},\n+#line 494 \"metafns.gperf\"\n+      {\"has_parent\", METAFN_HAS_PARENT, METAFN_KIND_BOOL_INFO,},\n+#line 542 \"metafns.gperf\"\n+      {\"is_reflection_type\", METAFN_IS_REFLECTION_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 545 \"metafns.gperf\"\n+      {\"is_fundamental_type\", METAFN_IS_FUNDAMENTAL_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 605 \"metafns.gperf\"\n+      {\"is_layout_compatible_type\", METAFN_IS_LAYOUT_COMPATIBLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},\n+#line 516 \"metafns.gperf\"\n+      {\"bit_size_of\", METAFN_BIT_SIZE_OF, METAFN_KIND_SIZE_T_INFO,},\n+#line 468 \"metafns.gperf\"\n+      {\"is_copy_assignment\", METAFN_IS_COPY_ASSIGNMENT, METAFN_KIND_BOOL_INFO,},\n+#line 641 \"metafns.gperf\"\n+      {\"current\", METAFN_ACCESS_CONTEXT_CURRENT, METAFN_KIND_ACCESS_CONTEXT_VOID,},\n+#line 628 \"metafns.gperf\"\n+      {\"common_type\", METAFN_COMMON_TYPE, METAFN_KIND_INFO_REFLECTION_RANGET,},\n+#line 483 \"metafns.gperf\"\n+      {\"is_constructor_template\", METAFN_IS_CONSTRUCTOR_TEMPLATE, METAFN_KIND_BOOL_INFO,},\n+#line 638 \"metafns.gperf\"\n+      {\"type_order\", METAFN_TYPE_ORDER, METAFN_KIND_STRONG_ORDERING_TINFO_TINFO,},\n+#line 629 \"metafns.gperf\"\n+      {\"common_reference\", METAFN_COMMON_REFERENCE, METAFN_KIND_INFO_REFLECTION_RANGET,},\n+#line 493 \"metafns.gperf\"\n+      {\"has_default_member_initializer\", METAFN_HAS_DEFAULT_MEMBER_INITIALIZER, METAFN_KIND_BOOL_INFO,},\n+#line 635 \"metafns.gperf\"\n+      {\"tuple_element\", METAFN_TUPLE_ELEMENT, METAFN_KIND_INFO_SIZE_T_TINFO,},\n+#line 522 \"metafns.gperf\"\n+      {\"reflect_function\", METAFN_REFLECT_FUNCTION, METAFN_KIND_INFO_TEMPLATE_PARM_REF,},\n+#line 473 \"metafns.gperf\"\n+      {\"has_default_argument\", METAFN_HAS_DEFAULT_ARGUMENT, METAFN_KIND_BOOL_INFO,},\n+#line 568 \"metafns.gperf\"\n+      {\"is_move_constructible_type\", METAFN_IS_MOVE_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 419 \"metafns.gperf\"\n+      {\"type_of\", METAFN_TYPE_OF, METAFN_KIND_INFO_INFO,},\n+#line 463 \"metafns.gperf\"\n+      {\"is_constructor\", METAFN_IS_CONSTRUCTOR, METAFN_KIND_BOOL_INFO,},\n+#line 573 \"metafns.gperf\"\n+      {\"is_swappable_type\", METAFN_IS_SWAPPABLE_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 591 \"metafns.gperf\"\n+      {\"is_nothrow_swappable_type\", METAFN_IS_NOTHROW_SWAPPABLE_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 543 \"metafns.gperf\"\n+      {\"is_reference_type\", METAFN_IS_REFERENCE_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 450 \"metafns.gperf\"\n+      {\"has_linkage\", METAFN_HAS_LINKAGE, METAFN_KIND_BOOL_INFO,},\n+#line 590 \"metafns.gperf\"\n+      {\"is_nothrow_swappable_with_type\", METAFN_IS_NOTHROW_SWAPPABLE_WITH_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},\n+#line 549 \"metafns.gperf\"\n+      {\"is_member_pointer_type\", METAFN_IS_MEMBER_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 571 \"metafns.gperf\"\n+      {\"is_move_assignable_type\", METAFN_IS_MOVE_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 474 \"metafns.gperf\"\n+      {\"has_ellipsis_parameter\", METAFN_HAS_ELLIPSIS_PARAMETER, METAFN_KIND_BOOL_INFO,},\n+#line 466 \"metafns.gperf\"\n+      {\"is_move_constructor\", METAFN_IS_MOVE_CONSTRUCTOR, METAFN_KIND_BOOL_INFO,},\n+#line 500 \"metafns.gperf\"\n+      {\"parameters_of\", METAFN_PARAMETERS_OF, METAFN_KIND_VECTOR_INFO_INFO,},\n+#line 514 \"metafns.gperf\"\n+      {\"size_of\", METAFN_SIZE_OF, METAFN_KIND_SIZE_T_INFO,},\n+#line 469 \"metafns.gperf\"\n+      {\"is_move_assignment\", METAFN_IS_MOVE_ASSIGNMENT, METAFN_KIND_BOOL_INFO,},\n+#line 569 \"metafns.gperf\"\n+      {\"is_assignable_type\", METAFN_IS_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},\n+#line 488 \"metafns.gperf\"\n+      {\"is_class_member\", METAFN_IS_CLASS_MEMBER, METAFN_KIND_BOOL_INFO,},\n+#line 552 \"metafns.gperf\"\n+      {\"is_trivially_copyable_type\", METAFN_IS_TRIVIALLY_COPYABLE_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 467 \"metafns.gperf\"\n+      {\"is_assignment\", METAFN_IS_ASSIGNMENT, METAFN_KIND_BOOL_INFO,},\n+#line 489 \"metafns.gperf\"\n+      {\"is_namespace_member\", METAFN_IS_NAMESPACE_MEMBER, METAFN_KIND_BOOL_INFO,},\n+#line 507 \"metafns.gperf\"\n+      {\"members_of\", METAFN_MEMBERS_OF, METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,},\n+#line 575 \"metafns.gperf\"\n+      {\"is_trivially_constructible_type\", METAFN_IS_TRIVIALLY_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,},\n+#line 580 \"metafns.gperf\"\n+      {\"is_trivially_copy_assignable_type\", METAFN_IS_TRIVIALLY_COPY_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 577 \"metafns.gperf\"\n+      {\"is_trivially_copy_constructible_type\", METAFN_IS_TRIVIALLY_COPY_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 599 \"metafns.gperf\"\n+      {\"extent\", METAFN_EXTENT, METAFN_KIND_SIZE_T_TINFO_UNSIGNED,},\n+#line 538 \"metafns.gperf\"\n+      {\"is_enum_type\", METAFN_IS_ENUM_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 498 \"metafns.gperf\"\n+      {\"template_of\", METAFN_TEMPLATE_OF, METAFN_KIND_INFO_INFO,},\n+#line 478 \"metafns.gperf\"\n+      {\"is_class_template\", METAFN_IS_CLASS_TEMPLATE, METAFN_KIND_BOOL_INFO,},\n+#line 462 \"metafns.gperf\"\n+      {\"is_special_member_function\", METAFN_IS_SPECIAL_MEMBER_FUNCTION, METAFN_KIND_BOOL_INFO,},\n+#line 423 \"metafns.gperf\"\n+      {\"is_protected\", METAFN_IS_PROTECTED, METAFN_KIND_BOOL_INFO,},\n+#line 490 \"metafns.gperf\"\n+      {\"is_nonstatic_data_member\", METAFN_IS_NONSTATIC_DATA_MEMBER, METAFN_KIND_BOOL_INFO,},\n+#line 632 \"metafns.gperf\"\n+      {\"unwrap_reference\", METAFN_UNWRAP_REFERENCE, METAFN_KIND_INFO_TINFO,},\n+#line 452 \"metafns.gperf\"\n+      {\"is_enumerable_type\", METAFN_IS_ENUMERABLE_TYPE, METAFN_KIND_BOOL_INFO,},\n+#line 544 \"metafns.gperf\"\n+      {\"is_arithmetic_type\", METAFN_IS_ARITHMETIC_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 495 \"metafns.gperf\"\n+      {\"parent_of\", METAFN_PARENT_OF, METAFN_KIND_INFO_INFO,},\n+#line 426 \"metafns.gperf\"\n+      {\"is_pure_virtual\", METAFN_IS_PURE_VIRTUAL, METAFN_KIND_BOOL_INFO,},\n+#line 625 \"metafns.gperf\"\n+      {\"add_pointer\", METAFN_ADD_POINTER, METAFN_KIND_INFO_TINFO,},\n+#line 566 \"metafns.gperf\"\n+      {\"is_default_constructible_type\", METAFN_IS_DEFAULT_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 630 \"metafns.gperf\"\n+      {\"underlying_type\", METAFN_UNDERLYING_TYPE, METAFN_KIND_INFO_TINFO,},\n+#line 471 \"metafns.gperf\"\n+      {\"is_function_parameter\", METAFN_IS_FUNCTION_PARAMETER, METAFN_KIND_BOOL_INFO,},\n+#line 414 \"metafns.gperf\"\n+      {\"identifier_of\", METAFN_IDENTIFIER_OF, METAFN_KIND_STRING_VIEW_INFO,},\n+#line 547 \"metafns.gperf\"\n+      {\"is_scalar_type\", METAFN_IS_SCALAR_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 619 \"metafns.gperf\"\n+      {\"add_rvalue_reference\", METAFN_ADD_RVALUE_REFERENCE, METAFN_KIND_INFO_TINFO,},\n+#line 440 \"metafns.gperf\"\n+      {\"is_mutable_member\", METAFN_IS_MUTABLE_MEMBER, METAFN_KIND_BOOL_INFO,},\n+#line 457 \"metafns.gperf\"\n+      {\"is_namespace_alias\", METAFN_IS_NAMESPACE_ALIAS, METAFN_KIND_BOOL_INFO,},\n+#line 581 \"metafns.gperf\"\n+      {\"is_trivially_move_assignable_type\", METAFN_IS_TRIVIALLY_MOVE_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 578 \"metafns.gperf\"\n+      {\"is_trivially_move_constructible_type\", METAFN_IS_TRIVIALLY_MOVE_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 464 \"metafns.gperf\"\n+      {\"is_default_constructor\", METAFN_IS_DEFAULT_CONSTRUCTOR, METAFN_KIND_BOOL_INFO,},\n+#line 436 \"metafns.gperf\"\n+      {\"is_enumerator\", METAFN_IS_ENUMERATOR, METAFN_KIND_BOOL_INFO,},\n+#line 486 \"metafns.gperf\"\n+      {\"is_object\", METAFN_IS_OBJECT, METAFN_KIND_BOOL_INFO,},\n+#line 558 \"metafns.gperf\"\n+      {\"is_aggregate_type\", METAFN_IS_AGGREGATE_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 470 \"metafns.gperf\"\n+      {\"is_destructor\", METAFN_IS_DESTRUCTOR, METAFN_KIND_BOOL_INFO,},\n+#line 537 \"metafns.gperf\"\n+      {\"is_member_function_pointer_type\", METAFN_IS_MEMBER_FUNCTION_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 546 \"metafns.gperf\"\n+      {\"is_object_type\", METAFN_IS_OBJECT_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 519 \"metafns.gperf\"\n+      {\"substitute\", METAFN_SUBSTITUTE, METAFN_KIND_INFO_INFO_REFLECTION_RANGE,},\n+#line 535 \"metafns.gperf\"\n+      {\"is_rvalue_reference_type\", METAFN_IS_RVALUE_REFERENCE_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 616 \"metafns.gperf\"\n+      {\"add_cv\", METAFN_ADD_CV, METAFN_KIND_INFO_TINFO,},\n+#line 520 \"metafns.gperf\"\n+      {\"reflect_constant\", METAFN_REFLECT_CONSTANT, METAFN_KIND_INFO_TEMPLATE_PARM,},\n+#line 579 \"metafns.gperf\"\n+      {\"is_trivially_assignable_type\", METAFN_IS_TRIVIALLY_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},\n+#line 425 \"metafns.gperf\"\n+      {\"is_virtual\", METAFN_IS_VIRTUAL, METAFN_KIND_BOOL_INFO,},\n+#line 443 \"metafns.gperf\"\n+      {\"has_static_storage_duration\", METAFN_HAS_STATIC_STORAGE_DURATION, METAFN_KIND_BOOL_INFO,},\n+#line 618 \"metafns.gperf\"\n+      {\"add_lvalue_reference\", METAFN_ADD_LVALUE_REFERENCE, METAFN_KIND_INFO_TINFO,},\n+#line 534 \"metafns.gperf\"\n+      {\"is_lvalue_reference_type\", METAFN_IS_LVALUE_REFERENCE_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 512 \"metafns.gperf\"\n+      {\"enumerators_of\", METAFN_ENUMERATORS_OF, METAFN_KIND_VECTOR_INFO_INFO,},\n+#line 574 \"metafns.gperf\"\n+      {\"is_destructible_type\", METAFN_IS_DESTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 499 \"metafns.gperf\"\n+      {\"template_arguments_of\", METAFN_TEMPLATE_ARGUMENTS_OF, METAFN_KIND_VECTOR_INFO_INFO,},\n+#line 607 \"metafns.gperf\"\n+      {\"is_invocable_type\", METAFN_IS_INVOCABLE_TYPE, METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,},\n+#line 614 \"metafns.gperf\"\n+      {\"add_const\", METAFN_ADD_CONST, METAFN_KIND_INFO_TINFO,},\n+#line 479 \"metafns.gperf\"\n+      {\"is_alias_template\", METAFN_IS_ALIAS_TEMPLATE, METAFN_KIND_BOOL_INFO,},\n+#line 554 \"metafns.gperf\"\n+      {\"is_empty_type\", METAFN_IS_EMPTY_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 582 \"metafns.gperf\"\n+      {\"is_trivially_destructible_type\", METAFN_IS_TRIVIALLY_DESTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 448 \"metafns.gperf\"\n+      {\"has_external_linkage\", METAFN_HAS_EXTERNAL_LINKAGE, METAFN_KIND_BOOL_INFO,},\n+#line 503 \"metafns.gperf\"\n+      {\"is_accessible\", METAFN_IS_ACCESSIBLE, METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,},\n+#line 608 \"metafns.gperf\"\n+      {\"is_invocable_r_type\", METAFN_IS_INVOCABLE_R_TYPE, METAFN_KIND_BOOL_TINFO_TINFO_REFLECTION_RANGET,},\n+#line 602 \"metafns.gperf\"\n+      {\"is_virtual_base_of_type\", METAFN_IS_VIRTUAL_BASE_OF_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},\n+#line 551 \"metafns.gperf\"\n+      {\"is_volatile_type\", METAFN_IS_VOLATILE_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 523 \"metafns.gperf\"\n+      {\"reflect_constant_string\", METAFN_REFLECT_CONSTANT_STRING, METAFN_KIND_INFO_INPUT_RANGE,},\n+#line 576 \"metafns.gperf\"\n+      {\"is_trivially_default_constructible_type\", METAFN_IS_TRIVIALLY_DEFAULT_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 482 \"metafns.gperf\"\n+      {\"is_literal_operator_template\", METAFN_IS_LITERAL_OPERATOR_TEMPLATE, METAFN_KIND_BOOL_INFO,},\n+#line 410 \"metafns.gperf\"\n+      {\"operator_of\", METAFN_OPERATOR_OF, METAFN_KIND_OPERATORS_INFO,},\n+#line 560 \"metafns.gperf\"\n+      {\"is_signed_type\", METAFN_IS_SIGNED_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 564 \"metafns.gperf\"\n+      {\"is_scoped_enum_type\", METAFN_IS_SCOPED_ENUM_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 572 \"metafns.gperf\"\n+      {\"is_swappable_with_type\", METAFN_IS_SWAPPABLE_WITH_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},\n+#line 511 \"metafns.gperf\"\n+      {\"subobjects_of\", METAFN_SUBOBJECTS_OF, METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,},\n+#line 513 \"metafns.gperf\"\n+      {\"offset_of\", METAFN_OFFSET_OF, METAFN_KIND_MEMBER_OFFSET_INFO,},\n+#line 487 \"metafns.gperf\"\n+      {\"is_structured_binding\", METAFN_IS_STRUCTURED_BINDING, METAFN_KIND_BOOL_INFO,},\n+#line 428 \"metafns.gperf\"\n+      {\"is_final\", METAFN_IS_FINAL, METAFN_KIND_BOOL_INFO,},\n+#line 461 \"metafns.gperf\"\n+      {\"is_literal_operator\", METAFN_IS_LITERAL_OPERATOR, METAFN_KIND_BOOL_INFO,},\n+#line 621 \"metafns.gperf\"\n+      {\"make_unsigned\", METAFN_MAKE_UNSIGNED, METAFN_KIND_INFO_TINFO,},\n+#line 417 \"metafns.gperf\"\n+      {\"u8display_string_of\", METAFN_U8DISPLAY_STRING_OF, METAFN_KIND_U8STRING_VIEW_INFO,},\n+#line 594 \"metafns.gperf\"\n+      {\"has_virtual_destructor\", METAFN_HAS_VIRTUAL_DESTRUCTOR, METAFN_KIND_BOOL_TINFO,},\n+#line 550 \"metafns.gperf\"\n+      {\"is_const_type\", METAFN_IS_CONST_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 433 \"metafns.gperf\"\n+      {\"is_explicit\", METAFN_IS_EXPLICIT, METAFN_KIND_BOOL_INFO,},\n+#line 526 \"metafns.gperf\"\n+      {\"is_data_member_spec\", METAFN_IS_DATA_MEMBER_SPEC, METAFN_KIND_BOOL_INFO,},\n+#line 451 \"metafns.gperf\"\n+      {\"is_complete_type\", METAFN_IS_COMPLETE_TYPE, METAFN_KIND_BOOL_INFO,},\n+#line 437 \"metafns.gperf\"\n+      {\"is_annotation\", METAFN_IS_ANNOTATION, METAFN_KIND_BOOL_INFO,},\n+#line 541 \"metafns.gperf\"\n+      {\"is_function_type\", METAFN_IS_FUNCTION_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 502 \"metafns.gperf\"\n+      {\"return_type_of\", METAFN_RETURN_TYPE_OF, METAFN_KIND_INFO_INFO,},\n+#line 429 \"metafns.gperf\"\n+      {\"is_deleted\", METAFN_IS_DELETED, METAFN_KIND_BOOL_INFO,},\n+#line 421 \"metafns.gperf\"\n+      {\"constant_of\", METAFN_CONSTANT_OF, METAFN_KIND_INFO_INFO,},\n+#line 615 \"metafns.gperf\"\n+      {\"add_volatile\", METAFN_ADD_VOLATILE, METAFN_KIND_INFO_TINFO,},\n+#line 430 \"metafns.gperf\"\n+      {\"is_defaulted\", METAFN_IS_DEFAULTED, METAFN_KIND_BOOL_INFO,},\n+#line 595 \"metafns.gperf\"\n+      {\"has_unique_object_representations\", METAFN_HAS_UNIQUE_OBJECT_REPRESENTATIONS, METAFN_KIND_BOOL_TINFO,},\n+#line 536 \"metafns.gperf\"\n+      {\"is_member_object_pointer_type\", METAFN_IS_MEMBER_OBJECT_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 416 \"metafns.gperf\"\n+      {\"display_string_of\", METAFN_DISPLAY_STRING_OF, METAFN_KIND_STRING_VIEW_INFO,},\n+#line 472 \"metafns.gperf\"\n+      {\"is_explicit_object_parameter\", METAFN_IS_EXPLICIT_OBJECT_PARAMETER, METAFN_KIND_BOOL_INFO,},\n+#line 491 \"metafns.gperf\"\n+      {\"is_static_member\", METAFN_IS_STATIC_MEMBER, METAFN_KIND_BOOL_INFO,},\n+#line 420 \"metafns.gperf\"\n+      {\"object_of\", METAFN_OBJECT_OF, METAFN_KIND_INFO_INFO,},\n+#line 559 \"metafns.gperf\"\n+      {\"is_consteval_only_type\", METAFN_IS_CONSTEVAL_ONLY_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 427 \"metafns.gperf\"\n+      {\"is_override\", METAFN_IS_OVERRIDE, METAFN_KIND_BOOL_INFO,},\n+#line 613 \"metafns.gperf\"\n+      {\"remove_cv\", METAFN_REMOVE_CV, METAFN_KIND_INFO_TINFO,},\n+#line 521 \"metafns.gperf\"\n+      {\"reflect_object\", METAFN_REFLECT_OBJECT, METAFN_KIND_INFO_TEMPLATE_PARM_REF,},\n+#line 531 \"metafns.gperf\"\n+      {\"is_floating_point_type\", METAFN_IS_FLOATING_POINT_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 413 \"metafns.gperf\"\n+      {\"has_identifier\", METAFN_HAS_IDENTIFIER, METAFN_KIND_BOOL_INFO,},\n+#line 617 \"metafns.gperf\"\n+      {\"remove_reference\", METAFN_REMOVE_REFERENCE, METAFN_KIND_INFO_TINFO,},\n+#line 505 \"metafns.gperf\"\n+      {\"has_inaccessible_bases\", METAFN_HAS_INACCESSIBLE_BASES, METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,},\n+#line 449 \"metafns.gperf\"\n+      {\"has_c_language_linkage\", METAFN_HAS_C_LANGUAGE_LINKAGE, METAFN_KIND_BOOL_INFO,},\n+#line 506 \"metafns.gperf\"\n+      {\"has_inaccessible_subobjects\", METAFN_HAS_INACCESSIBLE_SUBOBJECTS, METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,},\n+#line 622 \"metafns.gperf\"\n+      {\"remove_extent\", METAFN_REMOVE_EXTENT, METAFN_KIND_INFO_TINFO,},\n+#line 504 \"metafns.gperf\"\n+      {\"has_inaccessible_nonstatic_data_members\", METAFN_HAS_INACCESSIBLE_NONSTATIC_DATA_MEMBERS, METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,},\n+#line 442 \"metafns.gperf\"\n+      {\"is_rvalue_reference_qualified\", METAFN_IS_RVALUE_REFERENCE_QUALIFIED, METAFN_KIND_BOOL_INFO,},\n+#line 597 \"metafns.gperf\"\n+      {\"reference_converts_from_temporary\", METAFN_REFERENCE_CONVERTS_FROM_TEMPORARY, METAFN_KIND_BOOL_TINFO_TINFO,},\n+#line 540 \"metafns.gperf\"\n+      {\"is_class_type\", METAFN_IS_CLASS_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 432 \"metafns.gperf\"\n+      {\"is_user_declared\", METAFN_IS_USER_DECLARED, METAFN_KIND_BOOL_INFO,},\n+#line 525 \"metafns.gperf\"\n+      {\"data_member_spec\", METAFN_DATA_MEMBER_SPEC, METAFN_KIND_INFO_TINFO_DATA_MEMBER_OPTIONS,},\n+#line 441 \"metafns.gperf\"\n+      {\"is_lvalue_reference_qualified\", METAFN_IS_LVALUE_REFERENCE_QUALIFIED, METAFN_KIND_BOOL_INFO,},\n+#line 444 \"metafns.gperf\"\n+      {\"has_thread_storage_duration\", METAFN_HAS_THREAD_STORAGE_DURATION, METAFN_KIND_BOOL_INFO,},\n+#line 435 \"metafns.gperf\"\n+      {\"is_bit_field\", METAFN_IS_BIT_FIELD, METAFN_KIND_BOOL_INFO,},\n+#line 626 \"metafns.gperf\"\n+      {\"remove_cvref\", METAFN_REMOVE_CVREF, METAFN_KIND_INFO_TINFO,},\n+#line 631 \"metafns.gperf\"\n+      {\"invoke_result\", METAFN_INVOKE_RESULT, METAFN_KIND_INFO_TINFO_REFLECTION_RANGET,},\n+#line 497 \"metafns.gperf\"\n+      {\"has_template_arguments\", METAFN_HAS_TEMPLATE_ARGUMENTS, METAFN_KIND_BOOL_INFO,},\n+#line 460 \"metafns.gperf\"\n+      {\"is_operator_function\", METAFN_IS_OPERATOR_FUNCTION, METAFN_KIND_BOOL_INFO,},\n+#line 624 \"metafns.gperf\"\n+      {\"remove_pointer\", METAFN_REMOVE_POINTER, METAFN_KIND_INFO_TINFO,},\n+#line 496 \"metafns.gperf\"\n+      {\"dealias\", METAFN_DEALIAS, METAFN_KIND_INFO_INFO,},\n+#line 611 \"metafns.gperf\"\n+      {\"remove_const\", METAFN_REMOVE_CONST, METAFN_KIND_INFO_TINFO,},\n+#line 481 \"metafns.gperf\"\n+      {\"is_operator_function_template\", METAFN_IS_OPERATOR_FUNCTION_TEMPLATE, METAFN_KIND_BOOL_INFO,},\n+#line 596 \"metafns.gperf\"\n+      {\"reference_constructs_from_temporary\", METAFN_REFERENCE_CONSTRUCTS_FROM_TEMPORARY, METAFN_KIND_BOOL_TINFO_TINFO,},\n+#line 623 \"metafns.gperf\"\n+      {\"remove_all_extents\", METAFN_REMOVE_ALL_EXTENTS, METAFN_KIND_INFO_TINFO,},\n+#line 532 \"metafns.gperf\"\n+      {\"is_array_type\", METAFN_IS_ARRAY_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 446 \"metafns.gperf\"\n+      {\"has_internal_linkage\", METAFN_HAS_INTERNAL_LINKAGE, METAFN_KIND_BOOL_INFO,},\n+#line 620 \"metafns.gperf\"\n+      {\"make_signed\", METAFN_MAKE_SIGNED, METAFN_KIND_INFO_TINFO,},\n+#line 509 \"metafns.gperf\"\n+      {\"static_data_members_of\", METAFN_STATIC_DATA_MEMBERS_OF, METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,},\n+#line 548 \"metafns.gperf\"\n+      {\"is_compound_type\", METAFN_IS_COMPOUND_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 556 \"metafns.gperf\"\n+      {\"is_abstract_type\", METAFN_IS_ABSTRACT_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 527 \"metafns.gperf\"\n+      {\"define_aggregate\", METAFN_DEFINE_AGGREGATE, METAFN_KIND_INFO_INFO_REFLECTION_RANGE,},\n+#line 642 \"metafns.gperf\"\n+      {\"_S_exception_cvt_to_utf8\", METAFN_EXCEPTION__S_EXCEPTION_CVT_TO_UTF8, METAFN_KIND_U8STRING_VIEW_INPUT_RANGE,},\n+#line 643 \"metafns.gperf\"\n+      {\"_S_exception_cvt_from_utf8\", METAFN_EXCEPTION__S_EXCEPTION_CVT_FROM_UTF8, METAFN_KIND_STRING_VIEW_INPUT_RANGE,},\n+#line 563 \"metafns.gperf\"\n+      {\"is_unbounded_array_type\", METAFN_IS_UNBOUNDED_ARRAY_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 553 \"metafns.gperf\"\n+      {\"is_standard_layout_type\", METAFN_IS_STANDARD_LAYOUT_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 633 \"metafns.gperf\"\n+      {\"unwrap_ref_decay\", METAFN_UNWRAP_REF_DECAY, METAFN_KIND_INFO_TINFO,},\n+#line 524 \"metafns.gperf\"\n+      {\"reflect_constant_array\", METAFN_REFLECT_CONSTANT_ARRAY, METAFN_KIND_INFO_INPUT_RANGE,},\n+#line 412 \"metafns.gperf\"\n+      {\"u8symbol_of\", METAFN_U8SYMBOL_OF, METAFN_KIND_U8STRING_VIEW_OPERATORS,},\n+#line 530 \"metafns.gperf\"\n+      {\"is_integral_type\", METAFN_IS_INTEGRAL_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 510 \"metafns.gperf\"\n+      {\"nonstatic_data_members_of\", METAFN_NONSTATIC_DATA_MEMBERS_OF, METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,},\n+#line 627 \"metafns.gperf\"\n+      {\"decay\", METAFN_DECAY, METAFN_KIND_INFO_TINFO,},\n+#line 557 \"metafns.gperf\"\n+      {\"is_final_type\", METAFN_IS_FINAL_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 612 \"metafns.gperf\"\n+      {\"remove_volatile\", METAFN_REMOVE_VOLATILE, METAFN_KIND_INFO_TINFO,},\n+#line 515 \"metafns.gperf\"\n+      {\"alignment_of\", METAFN_ALIGNMENT_OF, METAFN_KIND_SIZE_T_INFO,},\n+#line 418 \"metafns.gperf\"\n+      {\"source_location_of\", METAFN_SOURCE_LOCATION_OF, METAFN_KIND_SOURCE_LOCATION_INFO,},\n+#line 640 \"metafns.gperf\"\n+      {\"annotations_of_with_type\", METAFN_ANNOTATIONS_OF_WITH_TYPE, METAFN_KIND_VECTOR_INFO_INFO_INFO,},\n+#line 415 \"metafns.gperf\"\n+      {\"u8identifier_of\", METAFN_U8IDENTIFIER_OF, METAFN_KIND_U8STRING_VIEW_INFO,},\n+#line 639 \"metafns.gperf\"\n+      {\"annotations_of\", METAFN_ANNOTATIONS_OF, METAFN_KIND_VECTOR_INFO_INFO,},\n+#line 539 \"metafns.gperf\"\n+      {\"is_union_type\", METAFN_IS_UNION_TYPE, METAFN_KIND_BOOL_TINFO,},\n+#line 431 \"metafns.gperf\"\n+      {\"is_user_provided\", METAFN_IS_USER_PROVIDED, METAFN_KIND_BOOL_INFO,},\n+#line 561 \"metafns.gperf\"\n+      {\"is_unsigned_type\", METAFN_IS_UNSIGNED_TYPE, METAFN_KIND_BOOL_TINFO,}\n+    };\n+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)\n+#pragma GCC diagnostic pop\n+#endif\n+\n+  static const short lookup[] =\n+    {\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,   0,\n+       -1,  -1,   1,  -1,  -1,   2,   3,  -1,   4,  -1,\n+       -1,  -1,   5,  -1,  -1,  -1,   6,   7,  -1,   8,\n+        9,  10,  11,  -1,  12,  13,  14,  -1,  -1,  15,\n+       16,  -1,  17,  -1,  -1,  18,  -1,  19,  -1,  20,\n+       -1,  21,  22,  -1,  23,  -1,  -1,  -1,  -1,  24,\n+       25,  26,  27,  -1,  -1,  28,  29,  -1,  30,  -1,\n+       31,  -1,  32,  33,  -1,  34,  -1,  -1,  -1,  -1,\n+       35,  36,  37,  38,  39,  40,  -1,  -1,  -1,  -1,\n+       -1,  41,  42,  -1,  43,  -1,  44,  -1,  -1,  45,\n+       -1,  46,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,\n+       -1,  -1,  -1,  -1,  -1,  -1,  47,  48,  49,  -1,\n+       50,  -1,  -1,  51,  52,  -1,  53,  54,  55,  56,\n+       57,  58,  -1,  59,  -1,  -1,  -1,  60,  -1,  -1,\n+       -1,  61,  -1,  62,  -1,  63,  64,  65,  66,  -1,\n+       -1,  67,  -1,  -1,  -1,  -1,  -1,  68,  -1,  -1,\n+       -1,  69,  70,  -1,  71,  -1,  -1,  72,  -1,  -1,\n+       73,  -1,  74,  75,  -1,  76,  -1,  77,  78,  79,\n+       -1,  -1,  -1,  -1,  80,  -1,  -1,  -1,  81,  -1,\n+       -1,  -1,  82,  83,  -1,  -1,  -1,  -1,  84,  -1,\n+       85,  86,  -1,  87,  88,  89,  90,  -1,  91,  -1,\n+       -1,  92,  -1,  -1,  -1,  -1,  93,  94,  -1,  -1,\n+       -1,  95,  96,  -1,  -1,  -1,  97,  98,  -1,  -1,\n+       -1,  -1,  -1,  -1,  99,  -1, 100,  -1, 101,  -1,\n+       -1,  -1,  -1, 102, 103, 104, 105,  -1,  -1, 106,\n+      107, 108,  -1,  -1,  -1,  -1,  -1,  -1, 109, 110,\n+      111,  -1, 112, 113,  -1,  -1,  -1,  -1, 114,  -1,\n+       -1, 115, 116, 117, 118,  -1,  -1,  -1,  -1, 119,\n+       -1,  -1,  -1, 120,  -1,  -1, 121,  -1,  -1, 122,\n+      123,  -1,  -1, 124,  -1,  -1, 125,  -1,  -1,  -1,\n+       -1, 126,  -1, 127,  -1,  -1,  -1,  -1, 128, 129,\n+      130,  -1,  -1, 131, 132, 133, 134, 135,  -1, 136,\n+       -1,  -1, 137,  -1, 138, 139,  -1, 140, 141, 142,\n+       -1, 143, 144, 145, 146,  -1, 147,  -1,  -1,  -1,\n+       -1, 148, 149,  -1, 150,  -1, 151,  -1, 152, 153,\n+       -1, 154,  -1,  -1,  -1,  -1, 155, 156, 157, 158,\n+       -1,  -1,  -1, 159, 160,  -1,  -1, 161,  -1, 162,\n+       -1,  -1, 163, 164,  -1,  -1,  -1,  -1,  -1,  -1,\n+       -1,  -1, 165,  -1, 166, 167, 168,  -1,  -1,  -1,\n+       -1, 169, 170, 171, 172,  -1,  -1, 173,  -1,  -1,\n+       -1,  -1,  -1,  -1, 174,  -1, 175,  -1,  -1, 176,\n+       -1,  -1, 177,  -1,  -1, 178,  -1,  -1,  -1,  -1,\n+       -1,  -1,  -1, 179,  -1,  -1,  -1, 180,  -1,  -1,\n+       -1,  -1, 181,  -1, 182, 183,  -1, 184,  -1, 185,\n+       -1,  -1, 186,  -1,  -1,  -1,  -1,  -1,  -1,  -1,\n+       -1,  -1, 187,  -1, 188,  -1,  -1,  -1, 189, 190,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 191,\n+       -1, 192,  -1,  -1,  -1,  -1, 193,  -1, 194, 195,\n+      196, 197,  -1, 198,  -1,  -1,  -1,  -1,  -1, 199,\n+      200,  -1,  -1, 201,  -1,  -1,  -1,  -1,  -1,  -1,\n+      202, 203,  -1,  -1, 204,  -1,  -1,  -1,  -1,  -1,\n+       -1, 205, 206,  -1,  -1,  -1,  -1,  -1,  -1, 207,\n+      208, 209,  -1,  -1,  -1, 210,  -1,  -1,  -1,  -1,\n+       -1,  -1, 211,  -1,  -1,  -1,  -1, 212,  -1,  -1,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,\n+       -1, 213,  -1,  -1,  -1, 214,  -1, 215, 216,  -1,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 217,  -1,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1, 218,  -1,  -1,\n+       -1,  -1,  -1, 219,  -1,  -1,  -1, 220,  -1,  -1,\n+       -1,  -1, 221,  -1,  -1,  -1,  -1,  -1,  -1,  -1,\n+      222,  -1,  -1,  -1,  -1,  -1, 223,  -1,  -1,  -1,\n+       -1,  -1, 224,  -1,  -1,  -1,  -1,  -1,  -1, 225,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,\n+       -1,  -1, 226,  -1,  -1,  -1,  -1,  -1, 227,  -1,\n+       -1,  -1,  -1,  -1, 228,  -1,  -1,  -1,  -1,  -1,\n+       -1,  -1,  -1,  -1,  -1, 229,  -1,  -1,  -1,  -1,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,\n+       -1,  -1,  -1,  -1, 230,  -1,  -1,  -1,  -1,  -1,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 231,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,\n+       -1, 232,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,\n+       -1,  -1,  -1,  -1,  -1,  -1,  -1, 233\n+    };\n+\n+  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)\n+    {\n+      unsigned int key = hash (str, len);\n+\n+      if (key <= MAX_HASH_VALUE)\n+        {\n+          int index = lookup[key];\n+\n+          if (index >= 0)\n+            {\n+              const char *s = wordlist[index].name;\n+\n+              if (*str == *s && !strcmp (str + 1, s + 1))\n+                return &wordlist[index];\n+            }\n+        }\n+    }\n+  return static_cast<struct metafn_info *> (0);\n+}\n","prefixes":["2/9","v2"]}