Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.0/patches/2175271/?format=api
{ "id": 2175271, "url": "http://patchwork.ozlabs.org/api/1.0/patches/2175271/?format=api", "project": { "id": 17, "url": "http://patchwork.ozlabs.org/api/1.0/projects/17/?format=api", "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=api", "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=api", "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" ] }