1496 lines
133 KiB
HTML
1496 lines
133 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>实验性库头文件 <experimental/reflect></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_header_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"><span style="font-size:0.7em; line-height:130%">实验性库头文件</span> <experimental/reflect></h1>
|
|
<div id="bodyContent">
|
|
<div id="contentSub"><span class="subpages">< <a href="cpp.html">cpp</a>‎ | <a href="cpp-header.html">header</a>‎ | <a href="cpp-header-experimental.html">experimental</a></span></div>
|
|
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
|
|
<p>此头文件是<a href="cpp-experimental-reflect.html">反射 TS</a> 的一部分。</p>
|
|
<table class="t-dsc-begin">
|
|
<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">
|
|
<h3><span class="mw-headline" id=".E6.A6.82.E5.BF.B5">概念</span></h3>
|
|
</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>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h3><span class="mw-headline" id=".E7.B1.BB">类</span></h3>
|
|
</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>
|
|
<h3><span class="mw-headline" id=".E6.A6.82.E8.A6.81">概要</span></h3>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="kw1">namespace</span> std<span class="sy4">::</span><span class="me2">experimental</span><span class="sy4">::</span><span class="me2">reflect</span> <span class="br0">{</span>
|
|
<span class="kw1">inline</span> <span class="kw1">namespace</span> v1 <span class="br0">{</span>
|
|
|
|
<span class="co1">// 21.12.3 Concepts for meta-object types</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept Object <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept ObjectSequence <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Object</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept TemplateParameterScope <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Scope</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept Named <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Object</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept Alias <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Named 与 ScopeMember</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept RecordMember <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 ScopeMember</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept Enumerator <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Constant</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept Variable <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Typed 与 ScopeMember</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept ScopeMember <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Named</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept Typed <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Object</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept Namespace <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Named 与 Scope</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept GlobalScope <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Namespace</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept Class <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Record</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept Enum <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Type, Scope, 与 ScopeMember</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept Record <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Type, Scope, 与 ScopeMember</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept Scope <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Object</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept Type <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Named</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept Constant <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Typed 与 ScopeMember</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept Base <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Object</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept FunctionParameter <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Typed 与 ScopeMember</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept Callable <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Scope 与 ScopeMember</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept Expression <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Object</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept ParenthesizedExpression <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Expression</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept FunctionCallExpression <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Expression</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept FunctionalTypeConversion <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Expression</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept Function <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Typed 与 Callable</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept MemberFunction <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 RecordMember 与 Function</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept SpecialMemberFunction <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 RecordMember</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept Constructor <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Callable 与 RecordMember</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept Destructor <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Callable 与 SpecialMemberFunction</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept Operator <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Function</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept ConversionOperator <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 MemberFunction 与 Operator</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept Lambda <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Type 与 Scope</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
concept LambdaCapture <span class="sy1">=</span> <span class="coMULTI">/* 见描述 */</span><span class="sy4">;</span> <span class="co1">// 细化 Variable</span>
|
|
|
|
<span class="co1">// 21.12.4 Meta-object operations</span>
|
|
<span class="co1">// Multi-concept operations</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Object T<span class="sy1">></span> <span class="kw1">struct</span> is_public<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Object T<span class="sy1">></span> <span class="kw1">struct</span> is_protected<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Object T<span class="sy1">></span> <span class="kw1">struct</span> is_private<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Object T<span class="sy1">></span> <span class="kw1">struct</span> is_constexpr<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Object T<span class="sy1">></span> <span class="kw1">struct</span> is_static<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Object T<span class="sy1">></span> <span class="kw1">struct</span> is_final<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Object T<span class="sy1">></span> <span class="kw1">struct</span> is_explicit<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Object T<span class="sy1">></span> <span class="kw1">struct</span> is_inline<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Object T<span class="sy1">></span> <span class="kw1">struct</span> is_virtual<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Object T<span class="sy1">></span> <span class="kw1">struct</span> is_pure_virtual<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Object T<span class="sy1">></span> <span class="kw1">struct</span> get_pointer<span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
requires RecordMember<span class="sy1"><</span>T<span class="sy1">></span> <span class="sy3">||</span> Base<span class="sy1"><</span>T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> is_public_v <span class="sy1">=</span> is_public<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
requires RecordMember<span class="sy1"><</span>T<span class="sy1">></span> <span class="sy3">||</span> Base<span class="sy1"><</span>T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> is_protected_v <span class="sy1">=</span> is_protected<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
requires RecordMember<span class="sy1"><</span>T<span class="sy1">></span> <span class="sy3">||</span> Base<span class="sy1"><</span>T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> is_private_v <span class="sy1">=</span> is_private<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
requires Variable<span class="sy1"><</span>T<span class="sy1">></span> <span class="sy3">||</span> Callable<span class="sy1"><</span>T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> is_constexpr_v <span class="sy1">=</span> is_constexpr<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
requires Variable<span class="sy1"><</span>T<span class="sy1">></span> <span class="sy3">||</span> MemberFunction<span class="sy1"><</span>T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> is_static_v <span class="sy1">=</span> is_static<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
requires Class<span class="sy1"><</span>T<span class="sy1">></span> <span class="sy3">||</span> MemberFunction<span class="sy1"><</span>T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> is_final_v <span class="sy1">=</span> is_final<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
requires Constructor<span class="sy1"><</span>T<span class="sy1">></span> <span class="sy3">||</span> ConversionOperator<span class="sy1"><</span>T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> is_explicit_v <span class="sy1">=</span> is_explicit<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
requires Namespace<span class="sy1"><</span>T<span class="sy1">></span> <span class="sy3">||</span> Callable<span class="sy1"><</span>T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> is_inline_v <span class="sy1">=</span> is_inline<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
requires Base<span class="sy1"><</span>T<span class="sy1">></span> <span class="sy3">||</span> MemberFunction<span class="sy1"><</span>T<span class="sy1">></span> <span class="sy3">||</span> Destructor<span class="sy1"><</span>T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> is_virtual_v <span class="sy1">=</span> is_virtual<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
requires MemberFunction<span class="sy1"><</span>T<span class="sy1">></span> <span class="sy3">||</span> Destructor<span class="sy1"><</span>T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> is_pure_virtual_v <span class="sy1">=</span> is_pure_virtual<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
requires Variable<span class="sy1"><</span>T<span class="sy1">></span> <span class="sy3">||</span> Function<span class="sy1"><</span>T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> get_pointer_v <span class="sy1">=</span> get_pointer<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 21.12.4.1 Object operations</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Object T1, Object T2<span class="sy1">></span> <span class="kw1">struct</span> reflects_same<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Object T<span class="sy1">></span> <span class="kw1">struct</span> get_source_line<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Object T<span class="sy1">></span> <span class="kw1">struct</span> get_source_column<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Object T<span class="sy1">></span> <span class="kw1">struct</span> get_source_file_name<span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Object T1, Object T2<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> reflects_same_v <span class="sy1">=</span> reflects_same<span class="sy1"><</span>T1, T2<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> get_source_line_v <span class="sy1">=</span> get_source_line<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> get_source_column_v <span class="sy1">=</span> get_source_column<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> get_source_file_name_v <span class="sy1">=</span> get_source_file_name<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 21.12.4.2 ObjectSequence operations</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ObjectSequence T<span class="sy1">></span> <span class="kw1">struct</span> get_size<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>size_t I, ObjectSequence T<span class="sy1">></span> <span class="kw1">struct</span> get_element<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span>...<span class="sy1">></span> <span class="kw1">class</span> Tpl, ObjectSequence T<span class="sy1">></span>
|
|
<span class="kw1">struct</span> unpack_sequence<span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ObjectSequence T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> get_size_v <span class="sy1">=</span> get_size<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>size_t I, ObjectSequence T<span class="sy1">></span>
|
|
<span class="kw1">using</span> get_element_t <span class="sy1">=</span> <span class="kw1">typename</span> get_element<span class="sy1"><</span>I, T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span>...<span class="sy1">></span> <span class="kw1">class</span> Tpl, ObjectSequence T<span class="sy1">></span>
|
|
<span class="kw1">using</span> unpack_sequence_t <span class="sy1">=</span> <span class="kw1">typename</span> unpack_sequence<span class="sy1"><</span>Tpl, T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 21.12.4.3 Named operations</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Named T<span class="sy1">></span> <span class="kw1">struct</span> is_unnamed<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Named T<span class="sy1">></span> <span class="kw1">struct</span> get_name<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Named T<span class="sy1">></span> <span class="kw1">struct</span> get_display_name<span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Named T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> is_unnamed_v <span class="sy1">=</span> is_unnamed<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Named T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> get_name_v <span class="sy1">=</span> get_name<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Named T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> get_display_name_v <span class="sy1">=</span> get_display_name<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 21.12.4.4 Alias operations</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Alias T<span class="sy1">></span> <span class="kw1">struct</span> get_aliased<span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Alias T<span class="sy1">></span>
|
|
<span class="kw1">using</span> get_aliased_t <span class="sy1">=</span> <span class="kw1">typename</span> get_aliased<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 21.12.4.5 Type operations</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Typed T<span class="sy1">></span> <span class="kw1">struct</span> get_type<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Type T<span class="sy1">></span> <span class="kw1">struct</span> get_reflected_type<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Type T<span class="sy1">></span> <span class="kw1">struct</span> is_enum<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Class T<span class="sy1">></span> <span class="kw1">struct</span> uses_class_key<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Class T<span class="sy1">></span> <span class="kw1">struct</span> uses_struct_key<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Type T<span class="sy1">></span> <span class="kw1">struct</span> is_union<span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Typed T<span class="sy1">></span>
|
|
<span class="kw1">using</span> get_type_t <span class="sy1">=</span> <span class="kw1">typename</span> get_type<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Type T<span class="sy1">></span>
|
|
<span class="kw1">using</span> get_reflected_type_t <span class="sy1">=</span> <span class="kw1">typename</span> get_reflected_type<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Type T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> is_enum_v <span class="sy1">=</span> is_enum<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Class T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> uses_class_key_v <span class="sy1">=</span> uses_class_key<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Class T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> uses_struct_key_v <span class="sy1">=</span> uses_struct_key<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Type T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> is_union_v <span class="sy1">=</span> is_union<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 21.12.4.6 Member operations</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ScopeMember T<span class="sy1">></span> <span class="kw1">struct</span> get_scope<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>RecordMember T<span class="sy1">></span> <span class="kw1">struct</span> is_public<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>RecordMember T<span class="sy1">></span> <span class="kw1">struct</span> is_protected<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>RecordMember T<span class="sy1">></span> <span class="kw1">struct</span> is_private<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ScopeMember T<span class="sy1">></span>
|
|
<span class="kw1">using</span> get_scope_t <span class="sy1">=</span> <span class="kw1">typename</span> get_scope<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 21.12.4.7 Record operations</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Record T<span class="sy1">></span> <span class="kw1">struct</span> get_public_data_members<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Record T<span class="sy1">></span> <span class="kw1">struct</span> get_accessible_data_members<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Record T<span class="sy1">></span> <span class="kw1">struct</span> get_data_members<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Record T<span class="sy1">></span> <span class="kw1">struct</span> get_public_member_functions<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Record T<span class="sy1">></span> <span class="kw1">struct</span> get_accessible_member_functions<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Record T<span class="sy1">></span> <span class="kw1">struct</span> get_member_functions<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Record T<span class="sy1">></span> <span class="kw1">struct</span> get_public_member_types<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Record T<span class="sy1">></span> <span class="kw1">struct</span> get_accessible_member_types<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Record T<span class="sy1">></span> <span class="kw1">struct</span> get_member_types<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Record T<span class="sy1">></span> <span class="kw1">struct</span> get_constructors<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Record T<span class="sy1">></span> <span class="kw1">struct</span> get_destructor<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Record T<span class="sy1">></span> <span class="kw1">struct</span> get_operators<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Class T<span class="sy1">></span> <span class="kw1">struct</span> get_public_base_classes<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Class T<span class="sy1">></span> <span class="kw1">struct</span> get_accessible_base_classes<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Class T<span class="sy1">></span> <span class="kw1">struct</span> get_base_classes<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Class T<span class="sy1">></span> <span class="kw1">struct</span> is_final<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Record T<span class="sy1">></span>
|
|
<span class="kw1">using</span> get_public_data_members_t <span class="sy1">=</span> <span class="kw1">typename</span> get_public_data_members<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Record T<span class="sy1">></span>
|
|
<span class="kw1">using</span> get_accessible_data_members_t <span class="sy1">=</span> <span class="kw1">typename</span> get_accessible_data_members<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Record T<span class="sy1">></span>
|
|
<span class="kw1">using</span> get_data_members_t <span class="sy1">=</span> <span class="kw1">typename</span> get_data_members<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Record T<span class="sy1">></span>
|
|
<span class="kw1">using</span> get_public_member_functions_t <span class="sy1">=</span> <span class="kw1">typename</span> get_public_member_functions<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Record T<span class="sy1">></span>
|
|
<span class="kw1">using</span> get_accessible_member_functions_t <span class="sy1">=</span> <span class="kw1">typename</span> get_accessible_member_functions<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Record T<span class="sy1">></span>
|
|
<span class="kw1">using</span> get_member_functions_t <span class="sy1">=</span> <span class="kw1">typename</span> get_member_functions<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Record T<span class="sy1">></span>
|
|
<span class="kw1">using</span> get_public_member_types_t <span class="sy1">=</span> <span class="kw1">typename</span> get_public_member_types<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Record T<span class="sy1">></span>
|
|
<span class="kw1">using</span> get_accessible_member_types_t <span class="sy1">=</span> <span class="kw1">typename</span> get_accessible_member_types<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Record T<span class="sy1">></span>
|
|
<span class="kw1">using</span> get_member_types_t <span class="sy1">=</span> <span class="kw1">typename</span> get_member_types<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Record T<span class="sy1">></span>
|
|
<span class="kw1">using</span> get_constructors_t <span class="sy1">=</span> <span class="kw1">typename</span> get_constructors<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Record T<span class="sy1">></span>
|
|
<span class="kw1">using</span> get_destructor_t <span class="sy1">=</span> <span class="kw1">typename</span> get_destructor<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Record T<span class="sy1">></span>
|
|
<span class="kw1">using</span> get_operators_t <span class="sy1">=</span> <span class="kw1">typename</span> get_operators<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Class T<span class="sy1">></span>
|
|
<span class="kw1">using</span> get_public_base_classes_t <span class="sy1">=</span> <span class="kw1">typename</span> get_public_base_classes<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Class T<span class="sy1">></span>
|
|
<span class="kw1">using</span> get_accessible_base_classes_t <span class="sy1">=</span> <span class="kw1">typename</span> get_accessible_base_classes<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Class T<span class="sy1">></span>
|
|
<span class="kw1">using</span> get_base_classes_t <span class="sy1">=</span> <span class="kw1">typename</span> get_base_classes<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 21.12.4.8 Enum operations</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Enum T<span class="sy1">></span> <span class="kw1">struct</span> is_scoped_enum<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Enum T<span class="sy1">></span> <span class="kw1">struct</span> get_enumerators<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Enum T<span class="sy1">></span> <span class="kw1">struct</span> get_underlying_type<span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Enum T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> is_scoped_enum_v <span class="sy1">=</span> is_scoped_enum<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Enum T<span class="sy1">></span>
|
|
<span class="kw1">using</span> get_enumerators_t <span class="sy1">=</span> <span class="kw1">typename</span> get_enumerators<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Enum T<span class="sy1">></span>
|
|
<span class="kw1">using</span> get_underlying_type_t <span class="sy1">=</span> <span class="kw1">typename</span> get_underlying_type<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 21.12.4.9 Value operations</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Constant T<span class="sy1">></span> <span class="kw1">struct</span> get_constant<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Variable T<span class="sy1">></span> <span class="kw1">struct</span> is_constexpr<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Variable T<span class="sy1">></span> <span class="kw1">struct</span> is_static<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Variable T<span class="sy1">></span> <span class="kw1">struct</span> is_thread_local<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Variable T<span class="sy1">></span> <span class="kw1">struct</span> get_pointer<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Constant T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> get_constant_v <span class="sy1">=</span> get_constant<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Variable T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> is_thread_local_v <span class="sy1">=</span> is_thread_local<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 21.12.4.10 Base operations</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Base T<span class="sy1">></span> <span class="kw1">struct</span> get_class<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Base T<span class="sy1">></span> <span class="kw1">struct</span> is_virtual<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Base T<span class="sy1">></span> <span class="kw1">struct</span> is_public<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Base T<span class="sy1">></span> <span class="kw1">struct</span> is_protected<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Base T<span class="sy1">></span> <span class="kw1">struct</span> is_private<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Base T<span class="sy1">></span>
|
|
<span class="kw1">using</span> get_class_t <span class="sy1">=</span> <span class="kw1">typename</span> get_class<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 21.12.4.11 Namespace operations</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Namespace T<span class="sy1">></span> <span class="kw1">struct</span> is_inline<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 21.12.4.12 FunctionParameter operations</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>FunctionParameter T<span class="sy1">></span> <span class="kw1">struct</span> has_default_argument<span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>FunctionParameter T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> has_default_argument_v <span class="sy1">=</span> has_default_argument<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 21.12.4.13 Callable operations</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Callable T<span class="sy1">></span> <span class="kw1">struct</span> get_parameters<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Callable T<span class="sy1">></span> <span class="kw1">struct</span> is_vararg<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Callable T<span class="sy1">></span> <span class="kw1">struct</span> is_constexpr<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Callable T<span class="sy1">></span> <span class="kw1">struct</span> is_noexcept<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Callable T<span class="sy1">></span> <span class="kw1">struct</span> is_inline<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Callable T<span class="sy1">></span> <span class="kw1">struct</span> is_deleted<span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Callable T<span class="sy1">></span>
|
|
<span class="kw1">using</span> get_parameters_t <span class="sy1">=</span> <span class="kw1">typename</span> get_parameters<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Callable T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> is_vararg_v <span class="sy1">=</span> is_vararg<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Callable T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> is_deleted_v <span class="sy1">=</span> is_deleted<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 21.12.4.14 ParenthesizedExpression operations</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ParenthesizedExpression T<span class="sy1">></span> <span class="kw1">struct</span> get_subexpression<span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ParenthesizedExpression T<span class="sy1">></span>
|
|
<span class="kw1">using</span> get_subexpression_t <span class="sy1">=</span> <span class="kw1">typename</span> get_subexpression<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 21.12.4.15 FunctionCallExpression operations</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>FunctionCallExpression T<span class="sy1">></span> <span class="kw1">struct</span> get_callable<span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>FunctionCallExpression T<span class="sy1">></span>
|
|
<span class="kw1">using</span> get_callable_t <span class="sy1">=</span> <span class="kw1">typename</span> get_callable<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 21.12.4.16 FunctionalTypeConversion operations</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>FunctionalTypeConversion T<span class="sy1">></span> <span class="kw1">struct</span> get_constructor<span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>FunctionalTypeConversion T<span class="sy1">></span>
|
|
<span class="kw1">using</span> get_constructor_t <span class="sy1">=</span> <span class="kw1">typename</span> get_constructor<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 21.12.4.17 Function operations</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Function T<span class="sy1">></span> <span class="kw1">struct</span> get_pointer<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 21.12.4.18 MemberFunction operations</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>MemberFunction T<span class="sy1">></span> <span class="kw1">struct</span> is_static<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>MemberFunction T<span class="sy1">></span> <span class="kw1">struct</span> is_const<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>MemberFunction T<span class="sy1">></span> <span class="kw1">struct</span> is_volatile<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>MemberFunction T<span class="sy1">></span> <span class="kw1">struct</span> has_lvalueref_qualifier<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>MemberFunction T<span class="sy1">></span> <span class="kw1">struct</span> has_rvalueref_qualifier<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>MemberFunction T<span class="sy1">></span> <span class="kw1">struct</span> is_virtual<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>MemberFunction T<span class="sy1">></span> <span class="kw1">struct</span> is_pure_virtual<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>MemberFunction T<span class="sy1">></span> <span class="kw1">struct</span> is_override<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>MemberFunction T<span class="sy1">></span> <span class="kw1">struct</span> is_final<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>MemberFunction T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> is_const_v <span class="sy1">=</span> is_const<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>MemberFunction T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> is_volatile_v <span class="sy1">=</span> is_volatile<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>MemberFunction T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> has_lvalueref_qualifier_v <span class="sy1">=</span> has_lvalueref_qualifier<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>MemberFunction T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> has_rvalueref_qualifier_v <span class="sy1">=</span> has_rvalueref_qualifier<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>MemberFunction T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> is_override_v <span class="sy1">=</span> is_override<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 21.12.4.19 SpecialMemberFunction operations</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>SpecialMemberFunction T<span class="sy1">></span> <span class="kw1">struct</span> is_implicitly_declared<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>SpecialMemberFunction T<span class="sy1">></span> <span class="kw1">struct</span> is_defaulted<span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>SpecialMemberFunction T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> is_implicitly_declared_v <span class="sy1">=</span> is_implicitly_declared<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>SpecialMemberFunction T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> is_defaulted_v <span class="sy1">=</span> is_defaulted<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 21.12.4.20 Constructor operations</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Constructor T<span class="sy1">></span> <span class="kw1">struct</span> is_explicit<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 21.12.4.21 Destructor operations</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Destructor T<span class="sy1">></span> <span class="kw1">struct</span> is_virtual<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Destructor T<span class="sy1">></span> <span class="kw1">struct</span> is_pure_virtual<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 21.12.4.22 ConversionOperator operations</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ConversionOperator T<span class="sy1">></span> <span class="kw1">struct</span> is_explicit<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 21.12.4.23 Lambda operations</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Lambda T<span class="sy1">></span> <span class="kw1">struct</span> get_captures<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Lambda T<span class="sy1">></span> <span class="kw1">struct</span> uses_default_copy_capture<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Lambda T<span class="sy1">></span> <span class="kw1">struct</span> uses_default_reference_capture<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Lambda T<span class="sy1">></span> <span class="kw1">struct</span> is_call_operator_const<span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Lambda T<span class="sy1">></span>
|
|
<span class="kw1">using</span> get_captures_t <span class="sy1">=</span> <span class="kw1">typename</span> get_captures<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Lambda T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> uses_default_copy_capture_v <span class="sy1">=</span> uses_default_copy_capture<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Lambda T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> uses_default_reference_capture_v <span class="sy1">=</span> uses_default_reference_capture<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Lambda T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> is_call_operator_const_v <span class="sy1">=</span> is_call_operator_const<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
|
|
<span class="co1">// 21.12.4.24 LambdaCapture operations</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>LambdaCapture T<span class="sy1">></span> <span class="kw1">struct</span> is_explicitly_captured<span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>LambdaCapture T<span class="sy1">></span> <span class="kw1">struct</span> is_init_capture<span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>LambdaCapture T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> is_explicitly_captured_v <span class="sy1">=</span> is_explicitly_captured<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
<span class="kw1">template</span> <span class="sy1"><</span>LambdaCapture T<span class="sy1">></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">auto</span> is_init_capture_v <span class="sy1">=</span> is_init_capture<span class="sy1"><</span>T<span class="sy1">></span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
|
|
|
|
<span class="br0">}</span> <span class="co1">// inline namespace v1</span>
|
|
<span class="br0">}</span> <span class="co1">// namespace std::experimental::reflect</span></pre></div>
|
|
</div>
|
|
</div>
|
|
<div class="visualClear"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|