1451 lines
103 KiB
HTML
1451 lines
103 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh" dir="ltr" class="client-nojs" xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh">
|
|
<head><meta http-equiv="x-ua-compatible" content="ie=edge">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<title>反射扩展</title>
|
|
<link rel="stylesheet" href="ext.css" />
|
|
<link rel="stylesheet" href="site_modules.css" />
|
|
</head>
|
|
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-cpp_experimental_reflect skin-cppreference2 action-view cpp-navbar">
|
|
<div id="cpp-content-base">
|
|
<div id="content"><a id="top"></a>
|
|
<h1 id="firstHeading" class="firstHeading">反射扩展</h1>
|
|
<div id="bodyContent">
|
|
<div id="contentSub"><span class="subpages">< <a href="cpp.html">cpp</a>‎ | <a href="cpp-experimental.html">experimental</a></span></div>
|
|
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
|
|
<p>C++ 反射扩展, ISO/IEC TS 23619:2021 ,指定对核心语言的更改并对 C++ 标准库定义此页面上列出的新组件。</p>
|
|
<p>反射 TS 基于 C++20 标准(除了概念的定义以<a href="cpp-experimental-constraints.html">概念 TS</a> 的风格指定)。</p>
|
|
<h3><span class="mw-headline" id=".E6.A0.B8.E5.BF.83.E8.AF.AD.E8.A8.80.E6.9B.B4.E6.94.B9">核心语言更改</span></h3>
|
|
<h4><span class="mw-headline" id="reflexpr_.E8.AF.B4.E6.98.8E.E7.AC.A6">reflexpr 说明符</span></h4>
|
|
<p><span class="t-spar">reflexpr-说明符</span> 形式为 <code><b>reflexpr</b></code> <code><b>(</b></code> <span class="t-spar">reflexpr-操作数</span> <code><b>)</b></code> ,并指定一个元对象类型(见后述)。</p>
|
|
<p><span class="t-spar">reflexpr-操作数</span> 能为下列之一:</p>
|
|
<table class="t-sdsc-begin">
|
|
<tr>
|
|
<td colspan="10" class="t-sdsc-sep"></td>
|
|
</tr>
|
|
<tr class="t-sdsc">
|
|
<td><code><b>::</b></code></td>
|
|
<td>(1)</td>
|
|
<td class="t-sdsc-nopad"></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="10" class="t-sdsc-sep"></td>
|
|
</tr>
|
|
<tr class="t-sdsc">
|
|
<td><span class="t-spar">类型标识</span></td>
|
|
<td>(2)</td>
|
|
<td class="t-sdsc-nopad"></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="10" class="t-sdsc-sep"></td>
|
|
</tr>
|
|
<tr class="t-sdsc">
|
|
<td><span class="t-spar">嵌套名说明符</span><span class="t-mark">(可选)</span> <span class="t-spar">命名空间名</span></td>
|
|
<td>(3)</td>
|
|
<td class="t-sdsc-nopad"></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="10" class="t-sdsc-sep"></td>
|
|
</tr>
|
|
<tr class="t-sdsc">
|
|
<td><span class="t-spar">标识表达式</span></td>
|
|
<td>(4)</td>
|
|
<td class="t-sdsc-nopad"></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="10" class="t-sdsc-sep"></td>
|
|
</tr>
|
|
<tr class="t-sdsc">
|
|
<td><code><b>(</b></code> <span class="t-spar">表达式</span> <code><b>)</b></code></td>
|
|
<td>(5)</td>
|
|
<td class="t-sdsc-nopad"></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="10" class="t-sdsc-sep"></td>
|
|
</tr>
|
|
<tr class="t-sdsc">
|
|
<td><span class="t-spar">函数调用表达式</span></td>
|
|
<td>(6)</td>
|
|
<td class="t-sdsc-nopad"></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="10" class="t-sdsc-sep"></td>
|
|
</tr>
|
|
<tr class="t-sdsc">
|
|
<td><span class="t-spar">函数式类型转换表达式</span></td>
|
|
<td>(7)</td>
|
|
<td class="t-sdsc-nopad"></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="10" class="t-sdsc-sep"></td>
|
|
</tr>
|
|
</table>
|
|
<p>其中 <span class="t-spar">函数调用表达式</span> 为</p>
|
|
<table class="t-sdsc-begin">
|
|
<tr>
|
|
<td colspan="10" class="t-sdsc-sep"></td>
|
|
</tr>
|
|
<tr class="t-sdsc">
|
|
<td class="t-sdsc-nopad"><span class="t-spar">后缀表达式</span> <code><b>(</b></code> <span class="t-spar">表达式列表</span><span class="t-mark">(可选)</span> <code><b>)</b></code></td>
|
|
<td class="t-sdsc-nopad"></td>
|
|
<td class="t-sdsc-nopad"></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="10" class="t-sdsc-sep"></td>
|
|
</tr>
|
|
</table>
|
|
<p>而 <span class="t-spar">函数式类型转换表达式</span> 为以下种类的进行<a href="cpp-language-explicit_cast.html">显式转型</a>的表达式:</p>
|
|
<table class="t-sdsc-begin">
|
|
<tr>
|
|
<td colspan="10" class="t-sdsc-sep"></td>
|
|
</tr>
|
|
<tr class="t-sdsc">
|
|
<td><span class="t-spar">简单类型说明符</span> <code><b>(</b></code> <span class="t-spar">表达式列表</span><span class="t-mark">(可选)</span> <code><b>)</b></code></td>
|
|
<td>(1)</td>
|
|
<td class="t-sdsc-nopad"></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="10" class="t-sdsc-sep"></td>
|
|
</tr>
|
|
<tr class="t-sdsc">
|
|
<td><span class="t-spar">typename-说明符</span> <code><b>(</b></code> <span class="t-spar">表达式列表</span><span class="t-mark">(可选)</span> <code><b>)</b></code></td>
|
|
<td>(2)</td>
|
|
<td class="t-sdsc-nopad"></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="10" class="t-sdsc-sep"></td>
|
|
</tr>
|
|
<tr class="t-sdsc">
|
|
<td><span class="t-spar">简单类型说明符</span> <span class="t-spar">花括号初始化器列表</span></td>
|
|
<td>(3)</td>
|
|
<td class="t-sdsc-nopad"></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="10" class="t-sdsc-sep"></td>
|
|
</tr>
|
|
<tr class="t-sdsc">
|
|
<td><span class="t-spar">typename-说明符</span> <span class="t-spar">花括号初始化器列表</span></td>
|
|
<td>(4)</td>
|
|
<td class="t-sdsc-nopad"></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="10" class="t-sdsc-sep"></td>
|
|
</tr>
|
|
</table>
|
|
<p>给 <span class="t-spar">reflexpr-说明符</span> 的操作数应当是<a href="cpp-language-type.html">类型</a>、<a href="cpp-language-namespace.html">命名空间</a>、<a href="cpp-language-enum.html">枚举项</a>、变量、<a href="cpp-language-data_members.html">数据成员</a>、<a href="cpp-language-function.html">函数形参</a>、<a href="cpp-language-lambda.html">被捕获实体</a>、 <span class="t-spar">函数调用表达式</span> 或 <span class="t-spar">函数式类型转换表达式</span> 及有括号表达式。 <span class="t-c"><span class="mw-geshi cpp source-cpp">reflexpr<span class="br0">(</span><span class="sy4">::</span><span class="br0">)</span></span></span> 反射全局命名空间。</p>
|
|
<p>对于形式为 <code><b>(</b></code> <span class="t-spar">表达式</span> <code><b>)</b></code> 的 <span class="t-spar">reflexpr-操作数</span> , <span class="t-spar">表达式</span> 应当为(可能有多重括号的) <span class="t-spar">函数调用表达式</span> 或 <span class="t-spar">函数式类型转换表达式</span> 。</p>
|
|
<p>若无括号的操作数能被当作 <span class="t-spar">类型标识</span> 或 <span class="t-spar">函数式类型转换表达式</span> ,则它被当作 <span class="t-spar">类型标识</span> 。能用括号消歧义函数风格转型与 <span class="t-spar">类型标识</span> 。例如,给定的拥有默认构造函数的类类型 <code>X</code> , <span class="t-c"><span class="mw-geshi cpp source-cpp">reflexpr<span class="br0">(</span>X<span class="br0">(</span><span class="br0">)</span><span class="br0">)</span></span></span> 反射函数类型 <span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="br0">(</span><span class="br0">)</span></span></span> ,而 <span class="t-c"><span class="mw-geshi cpp source-cpp">reflexpr<span class="br0">(</span><span class="br0">(</span>X<span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="br0">)</span></span></span> 反射表达式 <span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="br0">(</span><span class="br0">)</span></span></span> 。</p>
|
|
<p>若操作数一并指代别名和类名,则 reflexpr 说明符所表示的类型反射别名并满足 <code>reflect::Alias</code> 。</p>
|
|
<p>若操作数指代声明被围绕在块作用域内的名字且该具名实体既非捕获亦非函数形参,则程序非良构。</p>
|
|
<h4><span class="mw-headline" id=".E5.85.83.E5.AF.B9.E8.B1.A1.E7.B1.BB.E5.9E.8B">元对象类型</span></h4>
|
|
<p><i>元对象类型</i>是无名、不完整的命名空间作用域类类型。一个类型满足概念 <code>reflect::Object</code> 当且仅当它是元对象类型。元对象类型亦可能满足其他概念,取决于 <code>reflexpr</code> 的操作数。</p>
|
|
<p>重复应用 <code>reflexpr</code> 到同一操作数是产生同一类型还是不同类型是未指定的。若元对象类型反射不完整类类型,则不能应用某些类型变换。</p>
|
|
<p>元对象类型允许通过类型表征或其上的类型变换查询 <code>reflexpr</code> 的操作数的某些属性。</p>
|
|
<h4><span class="mw-headline" id=".E9.87.8D.E8.BD.BD.E5.86.B3.E8.AE.AE">重载决议</span></h4>
|
|
<p>若 <span class="t-spar">函数调用表达式</span> 的 <span class="t-spar">后缀表达式</span> 拥有类类型,例如 是 <span class="t-spar">函数调用表达式</span> <span class="t-c"><span class="mw-geshi cpp source-cpp">e<span class="br0">(</span>args<span class="br0">)</span></span></span> 中的 <span class="t-c"><span class="mw-geshi cpp source-cpp">e</span></span> 拥有类类型,则 <span class="t-spar">后缀表达式</span> ( <span class="t-c"><span class="mw-geshi cpp source-cpp">e</span></span> )的类型的<a href="cpp-language-cast_operator.html">用户定义转换函数</a>不应当被使用。</p>
|
|
<p>若 <span class="t-spar">后缀表达式</span> 不拥有类类型,则它应当指名作为重载决议唯一结果的函数。</p>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">struct</span> Functor <span class="br0">{</span>
|
|
<span class="kw4">void</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="kw4">int</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">using</span> fptr_t <span class="sy1">=</span> <span class="kw4">void</span><span class="br0">(</span><span class="sy2">*</span><span class="br0">)</span><span class="br0">(</span><a href="cpp-types-nullptr_t.html"><span class="kw102">std::<span class="me2">nullptr_t</span></span></a><span class="br0">)</span><span class="sy4">;</span>
|
|
operator fptr_t<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">using</span> Meta0 <span class="sy1">=</span> reflexpr<span class="br0">(</span>Functor<span class="br0">{</span><span class="br0">}</span><span class="br0">(</span><span class="nu0">0</span><span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// OK</span>
|
|
<span class="co1">// using Meta1 = reflexpr(Functor{}(nullptr)); // 错误:使用了转换函数</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E5.8F.8D.E5.B0.84.E7.9B.B8.E5.85.B3">反射相关</span></h4>
|
|
<p><i>别名</i>是 <a href="cpp-language-typedef.html"><tt>typedef</tt></a> 声明、<a href="cpp-language-type_alias.html">别名声明</a>或 <a href="cpp-language-using_declaration.html">using 声明</a>所引入的名字。</p>
|
|
<p>实体或别名 <code>B</code> <i>反射相关</i>到实体或别名 <code>A</code> ,若</p>
|
|
<ol>
|
|
<li><code>A</code> 与 <code>B</code> 为同一实体或别名,</li>
|
|
<li><code>A</code> 为变量或枚举项而 <code>B</code> 为 <code>A</code> 的类型,</li>
|
|
<li><code>A</code> 为枚举而 <code>B</code> 为 <code>A</code> 的底层类型,</li>
|
|
<li><code>A</code> 为类而 <code>B</code> 为 <code>A</code> 的成员或基类,</li>
|
|
<li><code>A</code> 为指代实体 <code>B</code> 的非模板别名,</li>
|
|
<li><code>A</code> 不是全局命名空间而 <code>B</code> 是 <code>A</code> 的外围类或外围命名空间,</li>
|
|
<li><code>A</code> 为有括号表达式 ( <code>B</code> ) ,</li>
|
|
<li><code>A</code> 为闭包类型 <code>B</code> 的 lambda 捕获,</li>
|
|
<li><code>A</code> 为 lambda 捕获 <code>B</code> 的闭包类型,</li>
|
|
<li><code>B</code> 为 <span class="t-spar">函数式类型转换表达式</span> <code>A</code> 所指定的类型,</li>
|
|
<li><code>B</code> 为重载决议对 <span class="t-spar">函数调用表达式</span> <code>A</code> 所选择的函数,</li>
|
|
<li><code>B</code> 为函数 <code>A</code> 的返回类型、形参类型或函数类型,或</li>
|
|
<li><code>B</code> 反射相关到实体或别名 <code>X</code> 而 <code>X</code> 反射相关到 <code>A</code> 。</li>
|
|
</ol>
|
|
<p>反射相关关系为自反和传递,但非对称。</p>
|
|
<p>不正式而言, <code>B</code> 反射相关到 <code>A</code> 的情况表示 <code>B</code> 参与 <code>A</code> 的声明或定义。</p>
|
|
<p>零或多次相继应用产生元对象类型的类型变换到 <span class="t-spar">reflexpr-说明符</span> 所代表的类型,使得用户能查阅反射相关到操作数的实体和别名;我们称这种元对象类型反射相应的反射相关的类型或实体。</p>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">struct</span> X<span class="sy4">;</span>
|
|
<span class="kw1">struct</span> B <span class="br0">{</span>
|
|
<span class="kw1">using</span> X <span class="sy1">=</span> <span class="sy4">::</span><span class="me2">X</span><span class="sy4">;</span>
|
|
<span class="kw1">typedef</span> X Y<span class="sy4">;</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="kw1">struct</span> D <span class="sy4">:</span> B <span class="br0">{</span>
|
|
<span class="kw1">using</span> B<span class="sy4">::</span><span class="me2">Y</span><span class="sy4">;</span>
|
|
<span class="br0">}</span><span class="sy4">;</span>
|
|
<span class="co1">// ::X ,但非 B::X 或 B::Y 反射相关到 D::Y</span></pre></div>
|
|
</div>
|
|
<h4><span class="mw-headline" id=".E6.9D.82.E9.A1.B9">杂项</span></h4>
|
|
<ul>
|
|
<li>用作 <span class="t-spar">reflexpr-操作数</span> 的表达式为<a href="cpp-language-expressions.html#.E4.B8.8D.E6.B1.82.E5.80.BC.E8.A1.A8.E8.BE.BE.E5.BC.8F">不求值表达式</a>并被<a href="cpp-language-constant_expression.html">潜在常量求值</a>。</li>
|
|
<li>对于确定以捕获默认在 <a href="cpp-language-lambda.html#Lambda_.E6.8D.95.E8.8E.B7">lambda 表达式中捕获</a>的变量的目的,不认为 <code>reflexpr</code> 操作数是不求值操作数。</li>
|
|
<li>元对象类型 <code>T</code> 所反射的函数或拥有静态<a href="cpp-language-storage_duration.html">存储期</a>的变量被 <span class="t-c"><span class="mw-geshi cpp source-cpp">std<span class="sy4">::</span><span class="me2">experimental</span><span class="sy4">::</span><span class="me2">reflect</span><span class="sy4">::</span><span class="me2">get_pointer</span><span class="sy1"><</span>T<span class="sy1">></span></span></span> 的特化 <a href="cpp-language-definition.html">odr 式使用</a>,如同通过取指名该函数或变量的标识表达式的地址。</li>
|
|
<li>元对象类型能有多于一个定义,只要此类型上的所有操作都产生相同的常量表达式结果。</li>
|
|
<li>一个类型为<a href="cpp-language-dependent_name.html#.E5.BE.85.E5.86.B3.E7.B1.BB.E5.9E.8B">待决</a>,若它为 reflexpr 说明符所指代,且操作数
|
|
<ul>
|
|
<li>为<a href="cpp-language-dependent_name.html#.E7.B1.BB.E5.9E.8B.E5.BE.85.E5.86.B3.E8.A1.A8.E8.BE.BE.E5.BC.8F">类型待决表达式</a>或(可能有括号的) <span class="t-spar">函数式类型转换表达式</span> 且至少拥有一个类型待决的立即子表达式,或</li>
|
|
<li>指代待决类型或<a href="cpp-language-dependent_name.html#.E6.9C.AA.E7.9F.A5.E7.89.B9.E5.8C.96">未知特化</a>的成员或<a href="cpp-language-dependent_name.html#.E5.80.BC.E5.BE.85.E5.86.B3.E8.A1.A8.E8.BE.BE.E5.BC.8F">值待决的常量表达式</a>。</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<h4><span class="mw-headline" id=".E5.85.B3.E9.94.AE.E8.AF.8D">关键词</span></h4>
|
|
<p><a href="cpp-keyword-reflexpr.html"><tt>reflexpr</tt></a></p>
|
|
<h4><span class="mw-headline" id=".E9.A2.84.E5.AE.9A.E4.B9.89.E5.8A.9F.E8.83.BD.E7.89.B9.E6.80.A7.E6.B5.8B.E8.AF.95.E5.AE.8F">预定义功能特性测试宏</span></h4>
|
|
<table class="t-dsc-begin">
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><span class="t-lines"><span>__cpp_reflection</span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>至少为 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="nu0">201902</span></span></span> 的值,指示反射 TS 受到支持<br />
|
|
<span class="t-mark">(宏常量)</span></td>
|
|
</tr>
|
|
</table>
|
|
<h3><span class="mw-headline" id=".E5.BA.93.E6.94.AF.E6.8C.81">库支持</span></h3>
|
|
<h4><span class="mw-headline" id=".E6.A6.82.E5.BF.B5">概念</span></h4>
|
|
<table class="t-dsc-begin">
|
|
<tr class="t-dsc-header">
|
|
<td colspan="2">
|
|
<div>定义于头文件 <code><a href="cpp-header-experimental-reflect.html"><experimental/reflect></a></code></div>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc-header">
|
|
<td colspan="2">
|
|
<div>定义于命名空间 <code>std::experimental::reflect</code></div>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc-header">
|
|
<td colspan="2">
|
|
<div>定义于内联命名空间 <code>std::experimental::reflect::v1</code></div>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-experimental-reflect-Object.html"><span class="t-lines"><span>Object</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定类型为元对象类型<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-experimental-reflect-ObjectSequence.html"><span class="t-lines"><span>ObjectSequence</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型为元对象序列类型<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/TemplateParameterScope&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/TemplateParameterScope(页面不存在)"><span class="t-lines"><span>TemplateParameterScope</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射模板形参作用域<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/Named&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/Named(页面不存在)"><span class="t-lines"><span>Named</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射具有关联(可能为空的)名字的实体<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/Alias&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/Alias(页面不存在)"><span class="t-lines"><span>Alias</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射类型别名、命名空间别名或由 using 声明引入的别名<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/RecordMember&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/RecordMember(页面不存在)"><span class="t-lines"><span>RecordMember</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射类的 <span class="t-spar">成员说明</span><br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/Enumerator&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/Enumerator(页面不存在)"><span class="t-lines"><span>Enumerator</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射枚举项<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/Variable&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/Variable(页面不存在)"><span class="t-lines"><span>Variable</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射变量或数据成员<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/ScopeMember&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/ScopeMember(页面不存在)"><span class="t-lines"><span>ScopeMember</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型满足 <code>RecordMember</code> 、 <code>Enumerator</code> 或 <code>Variable</code> ,或反射全局命名空间以外的命名空间<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/Typed&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/Typed(页面不存在)"><span class="t-lines"><span>Typed</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射具有类型的实体<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/Namespace&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/Namespace(页面不存在)"><span class="t-lines"><span>Namespace</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射命名空间<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/GlobalScope&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/GlobalScope(页面不存在)"><span class="t-lines"><span>GlobalScope</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射全局命名空间<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/Class&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/Class(页面不存在)"><span class="t-lines"><span>Class</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射非联合类类型<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/Enum&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/Enum(页面不存在)"><span class="t-lines"><span>Enum</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射枚举类型<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/Record&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/Record(页面不存在)"><span class="t-lines"><span>Record</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射类类型<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/Scope&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/Scope(页面不存在)"><span class="t-lines"><span>Scope</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射命名空间、类、枚举、闭包类型、模板实参作用域<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/Type&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/Type(页面不存在)"><span class="t-lines"><span>Type</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射一个类型<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/Constant&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/Constant(页面不存在)"><span class="t-lines"><span>Constant</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射枚举项或 constexpr 变量<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/Base&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/Base(页面不存在)"><span class="t-lines"><span>Base</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射从 <code>get_base_classes</code> 获得的直接基类<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/FunctionParameter&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/FunctionParameter(页面不存在)"><span class="t-lines"><span>FunctionParameter</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射模板形参<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/Callable&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/Callable(页面不存在)"><span class="t-lines"><span>Callable</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射函数(包括构造函数与析构函数)<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/Expression&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/Expression(页面不存在)"><span class="t-lines"><span>Expression</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射表达式<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/ParenthesizedExpression&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/ParenthesizedExpression(页面不存在)"><span class="t-lines"><span>ParenthesizedExpression</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射有括号表达式<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/FunctionCallExpression&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/FunctionCallExpression(页面不存在)"><span class="t-lines"><span>FunctionCallExpression</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射 <span class="t-spar">函数调用表达式</span><br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/FunctionalTypeConversion&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/FunctionalTypeConversion(页面不存在)"><span class="t-lines"><span>FunctionalTypeConversion</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射 <span class="t-spar">函数式类型转换表达式</span><br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/Function&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/Function(页面不存在)"><span class="t-lines"><span>Function</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射函数(不含构造函数与析构函数)<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/MemberFunction&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/MemberFunction(页面不存在)"><span class="t-lines"><span>MemberFunction</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射成员函数I(不含构造函数与析构函数)<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/SpecialMemberFunction&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/SpecialMemberFunction(页面不存在)"><span class="t-lines"><span>SpecialMemberFunction</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射特殊成员函数<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/Constructor&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/Constructor(页面不存在)"><span class="t-lines"><span>Constructor</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射构造函数<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/Destructor&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/Destructor(页面不存在)"><span class="t-lines"><span>Destructor</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射析构函数<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/Operator&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/Operator(页面不存在)"><span class="t-lines"><span>Operator</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射运算符函数或转换函数<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/ConversionOperator&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/ConversionOperator(页面不存在)"><span class="t-lines"><span>ConversionOperator</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射转换函数<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/Lambda&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/Lambda(页面不存在)"><span class="t-lines"><span>Lambda</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射非泛型 lambda 的闭包类型<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/LambdaCapture&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/LambdaCapture(页面不存在)"><span class="t-lines"><span>LambdaCapture</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>指定元对象类型反射 lambda 捕获<br />
|
|
<span class="t-mark">(概念)</span></td>
|
|
</tr>
|
|
</table>
|
|
<h4><span class="mw-headline" id=".E5.85.83.E5.AF.B9.E8.B1.A1.E6.93.8D.E4.BD.9C">元对象操作</span></h4>
|
|
<table class="t-dsc-begin">
|
|
<tr class="t-dsc-header">
|
|
<td colspan="2">
|
|
<div>定义于头文件 <code><a href="cpp-header-experimental-reflect.html"><experimental/reflect></a></code></div>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc-header">
|
|
<td colspan="2">
|
|
<div>定义于命名空间 <code>std::experimental::reflect</code></div>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc-header">
|
|
<td colspan="2">
|
|
<div>定义于内联命名空间 <code>std::experimental::reflect::v1</code></div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id="Object_.E6.93.8D.E4.BD.9C"><code>Object</code> 操作</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/reflects_same&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/reflects same(页面不存在)"><span class="t-lines"><span>reflects_same</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>检查二个元对象类型是否反射同一实体或别名<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-experimental-reflect-get_source_line.html"><span class="t-lines"><span>get_source_line</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>获得被反射实体或别名的声明的预设行号<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/get_source_column&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/get source column(页面不存在)"><span class="t-lines"><span>get_source_column</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>获得被反射实体或别名的声明的实现定义列号<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/get_source_file_name&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/get source file name(页面不存在)"><span class="t-lines"><span>get_source_file_name</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>获得被反射实体或别名的声明的预设文件名<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id="ObjectSequence_.E6.93.8D.E4.BD.9C"><code>ObjectSequence</code> 操作</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/get_size&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/get size(页面不存在)"><span class="t-lines"><span>get_size</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>获得元对象序列的大小<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/get_element&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/get element(页面不存在)"><span class="t-lines"><span>get_element</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>获得元对象序列中拥有给定下标的元对象类型<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/unpack_sequence&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/unpack sequence(页面不存在)"><span class="t-lines"><span>unpack_sequence</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>应用模板到元对象序列<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id="Named_.E6.93.8D.E4.BD.9C"><code>Named</code> 操作</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/is_unnamed&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/is unnamed(页面不存在)"><span class="t-lines"><span>is_unnamed</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>检查被反射实体或别名是否具名<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/get_name&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/get name(页面不存在)"><span class="t-lines"><span>get_name</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>获得被反射实体或别名的无限定名<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/get_display_name&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/get display name(页面不存在)"><span class="t-lines"><span>get_display_name</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>获得被反射实体或别名的实现定义显示名<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id="Alias_.E6.93.8D.E4.BD.9C"><code>Alias</code> 操作</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/get_alias&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/get alias(页面不存在)"><span class="t-lines"><span>get_alias</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>获得反射被反射别名的关联实体的元对象类型<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id="Type_.E6.93.8D.E4.BD.9C"><code>Type</code> 操作</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/get_type&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/get type(页面不存在)"><span class="t-lines"><span>get_type</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>获得反射被反射实体或别名的类型的元对象类型<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/get_reflected_type&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/get reflected type(页面不存在)"><span class="t-lines"><span>get_reflected_type</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>获得反射被反射实体或别名的类型<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/is_enum&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/is enum(页面不存在)"><span class="t-lines"><span>is_enum</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>检查元对象类型是否反射枚举类型<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/is_union&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/is union(页面不存在)"><span class="t-lines"><span>is_union</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>检查元对象类型是否反射联合体类型<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/uses_key&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/uses key(页面不存在)"><span class="t-lines"><span>uses_class_key</span><span>uses_struct_key</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>分别检查元对象类型是否反射声明使用 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw1">class</span></span></span> 或 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw1">struct</span></span></span> 的非联合类类型<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id="ScopeMember_.E6.93.8D.E4.BD.9C"><code>ScopeMember</code> 操作</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/get_scope&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/get scope(页面不存在)"><span class="t-lines"><span>get_scope</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>获得反射被反射实体或别名的作用域的元对象类型<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id="Base_.E6.93.8D.E4.BD.9C"><code>Base</code> 操作</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/get_class&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/get class(页面不存在)"><span class="t-lines"><span>get_class</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>获得反射给定基类关系中基类的元对象类型<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id="RecordMember_.E4.B8.8E_Base_.E6.93.8D.E4.BD.9C"><code>RecordMember</code> 与 <code>Base</code> 操作</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/is_public&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/is public(页面不存在)"><span class="t-lines"><span>is_public</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>检查被反射的成员或基类是否为公开<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/is_protected&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/is protected(页面不存在)"><span class="t-lines"><span>is_protected</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>检查被反射的成员或基类是否为受保护<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/is_private&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/is private(页面不存在)"><span class="t-lines"><span>is_private</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>检查被反射的成员或基类是否为私有<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id="Record_.E6.93.8D.E4.BD.9C"><code>Record</code> 操作</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/get_data_members&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/get data members(页面不存在)"><span class="t-lines"><span>get_public_data_members</span><span>get_accessible_data_members</span><span>get_data_members</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>获得元素反射被反射类的公开、可访问或全部数据成员的元对象序列类型<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/get_member_functions&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/get member functions(页面不存在)"><span class="t-lines"><span>get_public_member_functions</span><span>get_accessible_member_functions</span><span>get_member_functions</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>获得元素反射被反射类的公开、可访问或全部成员函数的元对象序列类型<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/get_constructors&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/get constructors(页面不存在)"><span class="t-lines"><span>get_constructors</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>获得元素反射被反射类的全部构造函数的的元对象序列类型<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/get_operators&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/get operators(页面不存在)"><span class="t-lines"><span>get_operators</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>获得元素反射声明于被反射类中的所有运算符函数及转换函数的的元对象序列类型<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/get_destructor&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/get destructor(页面不存在)"><span class="t-lines"><span>get_destructor</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>获得反射被反射类的析构函数的元对象类型<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/get_member_types&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/get member types(页面不存在)"><span class="t-lines"><span>get_public_member_types</span><span>get_accessible_member_types</span><span>get_member_types</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>获得元素反射被反射类的公开、可访问或全部成员类型的元对象序列类型<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/get_base_classes&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/get base classes(页面不存在)"><span class="t-lines"><span>get_public_base_classes</span><span>get_accessible_base_classes</span><span>get_base_classes</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>获得元素反射被反射类的公开、可访问或全部基类的元对象序列类型<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id="Enum_.E6.93.8D.E4.BD.9C"><code>Enum</code> 操作</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/is_scoped_enum&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/is scoped enum(页面不存在)"><span class="t-lines"><span>is_scoped_enum</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>检查被反射枚举是否有作用域<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/get_enumerators&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/get enumerators(页面不存在)"><span class="t-lines"><span>get_enumerators</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>获得元素反射被反射枚举的枚举项的元对象序列类型<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/get_underlying_type&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/get underlying type(页面不存在)"><span class="t-lines"><span>get_underlying_type</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>获得反射被反射枚举的底层类型的元对象类型<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id="Variable_.E6.93.8D.E4.BD.9C"><code>Variable</code> 操作</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/get_constant&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/get constant(页面不存在)"><span class="t-lines"><span>get_constant</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>获得作为常量表达式的被反射变量的值<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/is_thread_local&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/is thread local(页面不存在)"><span class="t-lines"><span>is_thread_local</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>检查变量是否声明带 <span class="t-c"><span class="mw-geshi cpp source-cpp">thread_local</span></span><br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id="FunctionParameter_.E6.93.8D.E4.BD.9C"><code>FunctionParameter</code> 操作</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/has_default_argument&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/has default argument(页面不存在)"><span class="t-lines"><span>has_default_argument</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>检查被反射的形参是否有默认实参<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id="Callable_.E6.93.8D.E4.BD.9C"><code>Callable</code> 操作</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/get_parameters&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/get parameters(页面不存在)"><span class="t-lines"><span>get_parameters</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>获得元素反射被反射函数的形参的元对象序列类型<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/is_vararg&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/is vararg(页面不存在)"><span class="t-lines"><span>is_vararg</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>检查被反射函数的形参列表是否含有省略号形参<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/is_noexcept&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/is noexcept(页面不存在)"><span class="t-lines"><span>is_noexcept</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>检查被反射函数是否为不抛出<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/is_deleted&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/is deleted(页面不存在)"><span class="t-lines"><span>is_deleted</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>检查被反射函数是否为被删除<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id="Variable_.E4.B8.8E_Callable_.E6.93.8D.E4.BD.9C"><code>Variable</code> 与 <code>Callable</code> 操作</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/is_constexpr&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/is constexpr(页面不存在)"><span class="t-lines"><span>is_constexpr</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>检查被反射变量或函数是否为 constexpr<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id="Namespace_.E4.B8.8E_Callable_.E6.93.8D.E4.BD.9C"><code>Namespace</code> 与 <code>Callable</code> 操作</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/is_inline&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/is inline(页面不存在)"><span class="t-lines"><span>is_inline</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>检查被反射的命名空间或函数是否为 inline<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id="ParenthesizedExpression_.E6.93.8D.E4.BD.9C"><code>ParenthesizedExpression</code> 操作</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/get_subexpression&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/get subexpression(页面不存在)"><span class="t-lines"><span>get_subexpression</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>获得反射被反射的有括号表达式的无括号表达式的元对象类型<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id="FunctionCallExpression_.E6.93.8D.E4.BD.9C"><code>FunctionCallExpression</code> 操作</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/get_callable&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/get callable(页面不存在)"><span class="t-lines"><span>get_callable</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>获得反射被反射的 <span class="t-spar">函数调用表达式</span> 中的函数的元对象类型<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id="FunctionalTypeConversion_.E6.93.8D.E4.BD.9C"><code>FunctionalTypeConversion</code> 操作</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/get_constructor&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/get constructor(页面不存在)"><span class="t-lines"><span>get_constructor</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>获得反射被反射的 <span class="t-spar">函数式类型转换表达式</span> 中的构造函数的元对象类型<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id="Variable_.E4.B8.8E_Function_.E6.93.8D.E4.BD.9C"><code>Variable</code> 与 <code>Function</code> 操作</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/get_pointer&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/get pointer(页面不存在)"><span class="t-lines"><span>get_pointer</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>获得被反射变量或函数的地址,或指向非静态成员的成员指针值<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id="MemberFunction_.E5.87.BD.E6.95.B0"><code>MemberFunction</code> 函数</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/is_qualified&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/is qualified(页面不存在)"><span class="t-lines"><span>is_const</span><span>is_volatile</span><span>has_lvalueref_qualifier</span><span>has_rvalueref_qualifier</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>分别检查被反射成员函数是否声明带 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">const</span></span></span>、 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">volatile</span></span></span>、 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy3">&</span></span></span> 或 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy3">&&</span></span></span> 限定符<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/is_override&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/is override(页面不存在)"><span class="t-lines"><span>is_override</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>检查被反射的成员函数是否重写基类的成员函数<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id="Record_.E4.B8.8E_MemberFunction_.E6.93.8D.E4.BD.9C"><code>Record</code> 与 <code>MemberFunction</code> 操作</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/is_final&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/is final(页面不存在)"><span class="t-lines"><span>is_final</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>检查被反射的类或成员函数是否标记为 <span class="t-c"><span class="mw-geshi cpp source-cpp">final</span></span><br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id="Variable_.E4.B8.8E_MemberFunction_.E6.93.8D.E4.BD.9C"><code>Variable</code> 与 <code>MemberFunction</code> 操作</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/is_static&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/is static(页面不存在)"><span class="t-lines"><span>is_static</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>检查被反射的变量是否拥有静态存储期,或被反射的成员函数是否为静态<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id="SpecialMemberFunction_.E6.93.8D.E4.BD.9C"><code>SpecialMemberFunction</code> 操作</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/is_implicitly_declared&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/is implicitly declared(页面不存在)"><span class="t-lines"><span>is_implicitly_declared</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>检查被反射的特殊成员函数是否为隐式声明<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/is_defaulted&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/is defaulted(页面不存在)"><span class="t-lines"><span>is_defaulted</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>检查被反射的成员函数是否在其首条声明预置<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id="Constructor_.E4.B8.8E_ConversionOperator_.E6.93.8D.E4.BD.9C"><code>Constructor</code> 与 <code>ConversionOperator</code> 操作</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/is_explicit&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/is explicit(页面不存在)"><span class="t-lines"><span>is_explicit</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>检查被反射的构造函数或转换函数是否声明带 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw1">explicit</span></span></span><br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id="MemberFunction_.E4.B8.8E_Destructor_.E6.93.8D.E4.BD.9C"><code>MemberFunction</code> 与 <code>Destructor</code> 操作</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/is_virtual&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/is virtual(页面不存在)"><span class="t-lines"><span>is_virtual</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>检查被反射的成员函数是否为虚<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/is_pure_virtual&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/is pure virtual(页面不存在)"><span class="t-lines"><span>is_pure_virtual</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>检查被反射的成员函数是否为纯虚<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id="Lambda_.E6.93.8D.E4.BD.9C"><code>Lambda</code> 操作</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/get_captures&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/get captures(页面不存在)"><span class="t-lines"><span>get_captures</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>获得元素反射被反射闭包类型的捕获的元对象序列类型<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/uses_default_capture&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/uses default capture(页面不存在)"><span class="t-lines"><span>uses_default_copy_capture</span><span>uses_default_reference_capture</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>分别检查被反射闭包类型的 lambda 表达式的捕获默认是否为 <code>=</code> 或 <code>&</code><br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/is_call_operator_const&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/is call operator const(页面不存在)"><span class="t-lines"><span>is_call_operator_const</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>检查被反射闭包类型的 <code>operator()</code> 是否声明带 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">const</span></span></span><br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id="LambdaCapture_.E6.93.8D.E4.BD.9C"><code>LambdaCapture</code> 操作</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/is_explictly_captured&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/is explictly captured(页面不存在)"><span class="t-lines"><span>is_explictly_captured</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>检查被反射的 lambda 捕获是否被显式捕获<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/reflect/is_init_capture&action=edit&redlink=1" class="new" title="cpp/experimental/reflect/is init capture(页面不存在)"><span class="t-lines"><span>is_init_capture</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>检查被反射的 lambda 捕获是否为初始化捕获<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
</table>
|
|
<h4><span class="mw-headline" id=".E5.BA.93.E5.8A.9F.E8.83.BD.E7.89.B9.E6.80.A7.E6.B5.8B.E8.AF.95.E5.AE.8F">库功能特性测试宏</span></h4>
|
|
<table class="t-dsc-begin">
|
|
<tr class="t-dsc-header">
|
|
<td colspan="2">
|
|
<div>定义于头文件 <code><a href="cpp-header-experimental-reflect.html"><experimental/reflect></a></code></div>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><span class="t-lines"><span>__cpp_lib_reflection</span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>至少为 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="nu0">201902</span></span></span> 的值,指示反射 TS 的支持库受到支持<br />
|
|
<span class="t-mark">(宏常量)</span></td>
|
|
</tr>
|
|
</table>
|
|
<h4><span class="mw-headline" id=".E6.A6.82.E5.BF.B5.E7.9A.84.E6.BB.A1.E8.B6.B3">概念的满足</span></h4>
|
|
<p>下表列出反射一个操作数的类型是否满足一个反射 TS 所引入的概念。</p>
|
|
<table class="wikitable">
|
|
<tr>
|
|
<th>类别</th>
|
|
<th><code>reflexpr</code> 操作数</th>
|
|
<th>满足的概念</th>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="9">类型</td>
|
|
<td>指代<a href="cpp-language-union.html">联合体</a>的 <span class="t-spar">类名</span></td>
|
|
<td><code>reflect::Union</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>指代<a href="cpp-language-lambda.html">闭包类型</a>的 <span class="t-spar">类名</span></td>
|
|
<td><code>reflect::Lambda</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>指代非 union 类的 <span class="t-spar">类名</span></td>
|
|
<td><code>reflect::Record</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td><a href="cpp-language-enum.html"><span class="t-spar">枚举名</span></a></td>
|
|
<td><code>reflect::Enum</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td><a href="cpp-language-template_parameters.html#.E7.B1.BB.E5.9E.8B.E6.A8.A1.E6.9D.BF.E5.BD.A2.E5.8F.82">模板 <span class="t-spar">类型形参</span></a></td>
|
|
<td><code>reflect::Type</code>, <code>reflect::Alias</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td><a href="cpp-language-decltype.html"><span class="t-spar">decltype-说明符</span></a></td>
|
|
<td><code>reflect::Type</code>, <code>reflect::Alias</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td><a href="cpp-language-namespace.html#using_.E5.A3.B0.E6.98.8E">using 声明</a>所引入的 <span class="t-spar">类型名</span></td>
|
|
<td><code>reflect::Type</code>, <code>reflect::Alias</code>, <code>reflect::ScopedMember</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>任何其他 <span class="t-spar">typedef-名</span></td>
|
|
<td><code>reflect::Type</code>, <code>reflect::Alias</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>任何其他 <span class="t-spar">类型标识</span></td>
|
|
<td><code>reflect::Type</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="3">命名空间</td>
|
|
<td><a href="cpp-language-namespace_alias.html"><span class="t-spar">命名空间别名</span></a></td>
|
|
<td><code>reflect::Namespace</code>, <code>reflect::Alias</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>全局命名空间</td>
|
|
<td><code>reflect::GlobalScope</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>任何其他<a href="cpp-language-namespace.html">命名空间</a></td>
|
|
<td><code>reflect::Namespace</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="8">表达式</td>
|
|
<td>数据成员名</td>
|
|
<td><code>reflect::Variable</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>变量名</td>
|
|
<td><code>reflect::Variable</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>枚举项名</td>
|
|
<td><code>reflect::Enumerator</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>函数形参名</td>
|
|
<td><code>reflect::FunctionParameter</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td><a href="cpp-language-lambda.html#Lambda_.E6.8D.95.E8.8E.B7">被捕获实体</a>之名</td>
|
|
<td><code>reflect::LambdaCapture</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>带括号表达式</td>
|
|
<td><code>reflect::ParenthesizedExpression</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-spar">函数调用表达式</span></td>
|
|
<td><code>reflect::FunctionCallExpression</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-spar">函数式类型转换表达式</span></td>
|
|
<td><code>reflect::FunctionalTypeConversion</code></td>
|
|
</tr>
|
|
</table>
|
|
<p>若形式为标识表达式的操作数为常量表达式,则该 reflexpr 说明符所指定的类型亦满足 <code>reflect::Constant</code> 。</p>
|
|
<p>若 reflexpr 操作数指代类成员,则该 reflexpr 说明符所表示的类型亦满足 <code>reflect::RecordMember</code> 。</p>
|
|
<h3><span class="mw-headline" id=".E5.8F.82.E9.98.85">参阅</span></h3>
|
|
<table class="t-dsc-begin">
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-types-type_info.html"><span class="t-lines"><span>type_info</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>含有某个类型的信息,由实现生成。<br />
|
|
这是 <a href="cpp-language-typeid.html">typeid</a> 运算符所返回的类。<br />
|
|
<span class="t-mark">(类)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-header-type_traits.html"><span class="t-lines"><span><type_traits></span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td><a href="cpp-types.html">编译时类型信息</a></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="visualClear"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|