307 lines
25 KiB
HTML
307 lines
25 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>可复制包装 (C++20)</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_ranges_copyable_wrapper skin-cppreference2 action-view cpp-navbar">
|
|
<div id="cpp-content-base">
|
|
<div id="content"><a id="top"></a>
|
|
<h1 id="firstHeading" class="firstHeading">可复制包装 <span class="t-mark-rev t-since-cxx20">(C++20)</span></h1>
|
|
<div id="bodyContent">
|
|
<div id="contentSub"><span class="subpages">< <a href="cpp.html">cpp</a>‎ | <a href="cpp-ranges.html">ranges</a></span></div>
|
|
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
|
|
<table class="t-dcl-begin">
|
|
<tbody>
|
|
<tr class="t-dcl t-since-cxx20">
|
|
<td>
|
|
<div><span class="mw-geshi cpp source-cpp"><span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> T<span class="sy1">></span><br /></span>
|
|
<p> requires std<span class="sy4">::</span><span class="me2">copy_constructible</span><span class="sy1"><</span>T<span class="sy1">></span> <span class="sy3">&&</span> <a href="cpp-types-is_object.html"><span class="kw487">std::<span class="me2">is_object_v</span></span></a><span class="sy1"><</span>T<span class="sy1">></span><br /></p>
|
|
<span class="kw1">class</span> <span class="coMULTI">/*copyable-box*/</span><span class="sy4">;</span></div>
|
|
</td>
|
|
<td class="t-dcl-nopad"></td>
|
|
<td><span class="t-mark-rev t-since-cxx20">(C++20 起)</span></td>
|
|
</tr>
|
|
<tr class="t-dcl-sep">
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><a href="cpp-ranges-single_view.html"><tt>ranges::single_view</tt></a> 与存储一个可调用对象的范围适配器通过仅用于阐释的类模板 <code><i>copyable-box</i></code> 说明。名称 <code><i>copyable-box</i></code> 仅用于阐释目的。</p>
|
|
<p><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="coMULTI">/*copyable-box*/</span><span class="sy1"><</span>T<span class="sy1">></span></span></span> 行为准确同 <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-utility-optional.html"><span class="kw1075">std::<span class="me2">optional</span></span></a><span class="sy1"><</span>T<span class="sy1">></span></span></span> ,除了默认构造函数、复制赋值运算符与移动赋值运算符(条件性地)异于 <span class="t-lc"><a href="cpp-utility-optional.html">std::optional</a></span> 的,这使得它始终满足 <a href="cpp-concepts-copyable.html"><code>copyable</code></a> 。</p>
|
|
<p>若 <code>T</code> 已为 <a href="cpp-concepts-copyable.html"><code>copyable</code></a> ,或 <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-types-is_move_constructible.html"><span class="kw543">std::<span class="me2">is_nothrow_move_constructible_v</span></span></a><span class="sy1"><</span>T<span class="sy1">></span></span></span> 与 <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-types-is_copy_constructible.html"><span class="kw537">std::<span class="me2">is_nothrow_copy_constructible_v</span></span></a><span class="sy1"><</span>T<span class="sy1">></span></span></span> 均为 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw2">true</span></span></span> ,则 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="coMULTI">/*copyable-box*/</span><span class="sy1"><</span>T<span class="sy1">></span></span></span> 可以只存储一个 <code>T</code> 对象,因为它始终含值。</p>
|
|
<h3><span class="mw-headline" id=".E6.A8.A1.E6.9D.BF.E5.BD.A2.E5.8F.82">模板形参</span></h3>
|
|
<table class="t-par-begin">
|
|
<tr class="t-par">
|
|
<td>T</td>
|
|
<td>-</td>
|
|
<td>被含有值的类型,必须为实现 <a href="cpp-concepts-copy_constructible.html"><code>copy_constructible</code></a> 的对象类型</td>
|
|
</tr>
|
|
</table>
|
|
<h3><span class="mw-headline" id=".E6.88.90.E5.91.98.E5.87.BD.E6.95.B0">成员函数</span></h3>
|
|
<div class="t-member">
|
|
<h2><span class="mw-headline" id="copyable-box::copyable-box"><span style="font-size:0.7em; line-height:130%"><i>copyable-box</i>::</span><i>copyable-box</i></span></h2>
|
|
<table class="t-dcl-begin">
|
|
<tbody>
|
|
<tr class="t-dcl t-since-cxx20">
|
|
<td>
|
|
<div><span class="mw-geshi cpp source-cpp"><span class="kw4">constexpr</span> <span class="coMULTI">/*copyable-box*/</span><span class="br0">(</span><span class="br0">)</span> <span class="kw1">noexcept</span><span class="br0">(</span><a href="cpp-types-is_default_constructible.html"><span class="kw531">std::<span class="me2">is_nothrow_default_constructible_v</span></span></a><span class="sy1"><</span>T<span class="sy1">></span><span class="br0">)</span><br /></span>
|
|
<p> requires std<span class="sy4">::</span><span class="me2">default_initializable</span><span class="sy1"><</span>T<span class="sy1">></span><br /></p>
|
|
<span class="sy4">:</span> <span class="coMULTI">/*copyable-box*/</span><span class="br0">(</span><a href="cpp-utility-in_place.html"><span class="kw1081">std::<span class="me2">in_place</span></span></a><span class="br0">)</span> <span class="br0">{</span> <span class="br0">}</span></div>
|
|
</td>
|
|
<td class="t-dcl-nopad"></td>
|
|
<td><span class="t-mark-rev t-since-cxx20">(C++20 起)</span></td>
|
|
</tr>
|
|
<tr class="t-dcl-sep">
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>当且仅当 <code>T</code> 实现 <a href="cpp-concepts-default_initializable.html"><code>default_initializable</code></a> 才提供默认构造函数。</p>
|
|
<p>默认构造的 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="coMULTI">/*copyable-box*/</span><span class="sy1"><</span>T<span class="sy1">></span></span></span> 含有值初始化的 <code>T</code> 对象。</p>
|
|
</div>
|
|
<div class="t-member">
|
|
<h2><span class="mw-headline" id="copyable-box::operator.3D"><span style="font-size:0.7em; line-height:130%"><i>copyable-box</i>::</span>operator=</span></h2>
|
|
<table class="t-dcl-begin">
|
|
<tbody>
|
|
<tr class="t-dcl t-since-cxx20">
|
|
<td>
|
|
<div><span class="mw-geshi cpp source-cpp"><span class="kw4">constexpr</span> <span class="coMULTI">/*copyable-box*/</span><span class="sy3">&</span> operator<span class="sy1">=</span><span class="br0">(</span><span class="kw4">const</span> <span class="coMULTI">/*copyable-box*/</span><span class="sy3">&</span> other<span class="br0">)</span><span class="sy4">;</span><br />
|
|
<span class="kw1">noexcept</span><span class="br0">(</span><span class="coMULTI">/* see below */</span><span class="br0">)</span><span class="sy4">;</span></span></div>
|
|
</td>
|
|
<td>(1)</td>
|
|
<td><span class="t-mark-rev t-since-cxx20">(C++20 起)</span></td>
|
|
</tr>
|
|
<tr class="t-dcl t-since-cxx20">
|
|
<td>
|
|
<div><span class="mw-geshi cpp source-cpp"><span class="kw4">constexpr</span> <span class="coMULTI">/*copyable-box*/</span><span class="sy3">&</span> operator<span class="sy1">=</span><span class="br0">(</span><span class="coMULTI">/*copyable-box*/</span><span class="sy3">&&</span> other<span class="br0">)</span><br />
|
|
<span class="kw1">noexcept</span><span class="br0">(</span><a href="cpp-types-is_move_constructible.html"><span class="kw543">std::<span class="me2">is_nothrow_move_constructible_v</span></span></a><span class="sy1"><</span>T<span class="sy1">></span><span class="br0">)</span><span class="sy4">;</span></span></div>
|
|
</td>
|
|
<td>(2)</td>
|
|
<td><span class="t-mark-rev t-since-cxx20">(C++20 起)</span></td>
|
|
</tr>
|
|
<tr class="t-dcl-sep">
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<div class="t-li1"><span class="t-li">1)</span> 若 <span class="t-c"><span class="mw-geshi cpp source-cpp">std<span class="sy4">::</span><span class="me2">copyable</span><span class="sy1"><</span>T<span class="sy1">></span></span></span> 未得到实现,则复制赋值运算符等价地定义为:
|
|
<p><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">constexpr</span> <span class="coMULTI">/*copyable-box*/</span><span class="sy3">&</span> operator<span class="sy1">=</span><span class="br0">(</span><span class="kw4">const</span> <span class="coMULTI">/*copyable-box*/</span><span class="sy3">&</span> other<span class="br0">)</span><br />
|
|
<span class="kw1">noexcept</span><span class="br0">(</span><a href="cpp-types-is_copy_constructible.html"><span class="kw537">std::<span class="me2">is_nothrow_copy_constructible_v</span></span></a><span class="sy1"><</span>T<span class="sy1">></span><span class="br0">)</span><br />
|
|
<span class="br0">{</span><br />
|
|
<span class="kw1">if</span> <span class="br0">(</span>this <span class="sy3">!</span><span class="sy1">=</span> <a href="cpp-memory-addressof.html"><span class="kw757">std::<span class="me2">addressof</span></span></a><span class="br0">(</span>other<span class="br0">)</span><span class="br0">)</span> <span class="br0">{</span><br />
|
|
<span class="kw1">if</span> <span class="br0">(</span>other<span class="br0">)</span> emplace<span class="br0">(</span><span class="sy2">*</span>other<span class="br0">)</span><span class="sy4">;</span><br />
|
|
<span class="kw1">else</span> reset<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span><br />
|
|
<span class="br0">}</span><br />
|
|
<span class="kw1">return</span> <span class="sy2">*</span>this<span class="sy4">;</span><br />
|
|
<span class="br0">}</span></span></span></p>
|
|
否则,它等同于 <a href="cpp-utility-optional-operator=.html"><code>std::optional</code> 的复制赋值运算符</a>。</div>
|
|
<div class="t-li1"><span class="t-li">2)</span> 若 <span class="t-c"><span class="mw-geshi cpp source-cpp">std<span class="sy4">::</span><span class="me2">movable</span><span class="sy1"><</span>T<span class="sy1">></span></span></span> 未得到实现,则移动赋值运算符等价地定义为:
|
|
<p><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">constexpr</span> <span class="coMULTI">/*copyable-box*/</span><span class="sy3">&</span> operator<span class="sy1">=</span><span class="br0">(</span><span class="coMULTI">/*copyable-box*/</span><span class="sy3">&&</span> other<span class="br0">)</span><br />
|
|
<span class="kw1">noexcept</span><span class="br0">(</span><a href="cpp-types-is_move_constructible.html"><span class="kw543">std::<span class="me2">is_nothrow_move_constructible_v</span></span></a><span class="sy1"><</span>T<span class="sy1">></span><span class="br0">)</span><br />
|
|
<span class="br0">{</span><br />
|
|
<span class="kw1">if</span> <span class="br0">(</span>this <span class="sy3">!</span><span class="sy1">=</span> <a href="cpp-memory-addressof.html"><span class="kw757">std::<span class="me2">addressof</span></span></a><span class="br0">(</span>other<span class="br0">)</span><span class="br0">)</span> <span class="br0">{</span><br />
|
|
<span class="kw1">if</span> <span class="br0">(</span>other<span class="br0">)</span> emplace<span class="br0">(</span>std<span class="sy4">::</span><span class="me2">move</span><span class="br0">(</span><span class="sy2">*</span>other<span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span><br />
|
|
<span class="kw1">else</span> reset<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span><br />
|
|
<span class="br0">}</span><br />
|
|
<span class="kw1">return</span> <span class="sy2">*</span>this<span class="sy4">;</span><br />
|
|
<span class="br0">}</span></span></span></p>
|
|
否则,它等同于 <a href="cpp-utility-optional-operator=.html"><code>std::optional</code> 的移动赋值运算符</a>。</div>
|
|
</div>
|
|
<div style="overflow: hidden; margin: 1em 0 0 0; border: 1px solid #aaa; background-color: #e3f9df; padding: 0.2em 1em 1em 1em;" id="identical-">
|
|
<h2><span class="mw-headline" id=".E7.AD.89.E5.90.8C.E4.BA.8E_std::optional_.E7.9A.84.E6.88.90.E5.91.98">等同于 <span style="font-size:0.7em; line-height:130%">std::</span>optional 的成员</span></h2>
|
|
<h3><span class="mw-headline" id=".E6.88.90.E5.91.98.E5.87.BD.E6.95.B0_2">成员函数</span></h3>
|
|
<table class="t-dsc-begin">
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div t-dsc-member-nobold-div">
|
|
<div><a href="cpp-utility-optional-optional.html"><span class="t-lines"><span>(构造函数)</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>构造<code>optional</code>对象<br />
|
|
<span class="t-mark">(<code>std::optional<T></code> 的公开成员函数)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div t-dsc-member-nobold-div">
|
|
<div><a href="cpp-utility-optional-~optional.html"><span class="t-lines"><span>(析构函数)</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>销毁容纳的值,若存在<br />
|
|
<span class="t-mark">(<code>std::optional<T></code> 的公开成员函数)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-utility-optional-operator=.html"><span class="t-lines"><span>operator=</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>对内容赋值<br />
|
|
<span class="t-mark">(<code>std::optional<T></code> 的公开成员函数)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id=".E8.A7.82.E5.AF.9F.E5.99.A8">观察器</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-utility-optional-operator*.html"><span class="t-lines"><span>operator-></span><span>operator*</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>访问所含值<br />
|
|
<span class="t-mark">(<code>std::optional<T></code> 的公开成员函数)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-utility-optional-operator_bool.html"><span class="t-lines"><span>operator bool</span><span>has_value</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>检查对象是否含值<br />
|
|
<span class="t-mark">(<code>std::optional<T></code> 的公开成员函数)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id=".E4.BF.AE.E6.94.B9.E5.99.A8">修改器</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-utility-optional-reset.html"><span class="t-lines"><span>reset</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>销毁任何所含值<br />
|
|
<span class="t-mark">(<code>std::optional<T></code> 的公开成员函数)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-utility-optional-emplace.html"><span class="t-lines"><span>emplace</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>原位构造所含值<br />
|
|
<span class="t-mark">(<code>std::optional<T></code> 的公开成员函数)</span></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<h3><span class="mw-headline" id=".E6.B3.A8.E8.A7.A3">注解</span></h3>
|
|
<p><code><i>copyable-box</i></code> 不含值,若</p>
|
|
<ul>
|
|
<li><code>T</code> 不实现 <a href="cpp-concepts-movable.html"><code>movable</code></a> 或 <a href="cpp-concepts-copyable.html"><code>copyable</code></a> ,而分别在移动赋值或复制赋值时抛异常,或者</li>
|
|
<li>从另一无值的包装初始化/赋值它。</li>
|
|
</ul>
|
|
<p>在 <a rel="nofollow" class="external text" href="https://wg21.link/P2325R3">P2325R3</a> 前,该包装在标准中被称为 <code><i>semiregular-box</i></code> ,并且始终满足 <a href="cpp-concepts-semiregular.html"><code>semiregular</code></a> ,因为始终提供默认构造函数(可能构造无值的包装)。</p>
|
|
<h3><span class="mw-headline" id=".E7.BC.BA.E9.99.B7.E6.8A.A5.E5.91.8A">缺陷报告</span></h3>
|
|
<p>下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。</p>
|
|
<table class="dsctable" style="font-size:0.8em">
|
|
<tr>
|
|
<th>DR</th>
|
|
<th>应用于</th>
|
|
<th>出版时的行为</th>
|
|
<th>正确行为</th>
|
|
</tr>
|
|
<tr>
|
|
<td><a rel="nofollow" class="external text" href="https://wg21.link/P2325R3">P2325R3</a></td>
|
|
<td>C++20</td>
|
|
<td>若 <code>T</code> 非 <a href="cpp-concepts-default_initializable.html"><code>default_initializable</code></a> 则默认构造函数构造不含值的包装</td>
|
|
<td>包装亦非 <a href="cpp-concepts-default_initializable.html"><code>default_initializable</code></a></td>
|
|
</tr>
|
|
<tr>
|
|
<td><a rel="nofollow" class="external text" href="https://cplusplus.github.io/LWG/issue3572">LWG 3572</a></td>
|
|
<td>C++20</td>
|
|
<td>条件性有别的赋值运算符不是 constexpr</td>
|
|
<td>使之为 constexpr</td>
|
|
</tr>
|
|
</table>
|
|
<h3><span class="mw-headline" id=".E5.8F.82.E9.98.85">参阅</span></h3>
|
|
<table class="t-dsc-begin">
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-ranges-single_view.html"><span class="t-lines"><span>ranges::single_view</span><span>views::single</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>含有具有指定值的单个元素的 <a href="cpp-ranges-view.html"><code>view</code></a><br />
|
|
<span class="t-mark">(类模板)</span> <span class="t-mark">(定制点对象)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-ranges-filter_view.html"><span class="t-lines"><span>ranges::filter_view</span><span>views::filter</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>由 <a href="cpp-ranges-range.html"><code>range</code></a> 中满足某个谓词的元素构成的 <a href="cpp-ranges-view.html"><code>view</code></a><br />
|
|
<span class="t-mark">(类模板)</span> <span class="t-mark">(范围适配器对象)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-ranges-transform_view.html"><span class="t-lines"><span>ranges::transform_view</span><span>views::transform</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>对序列的每个元素应用某个变换函数的 <a href="cpp-ranges-view.html"><code>view</code></a><br />
|
|
<span class="t-mark">(类模板)</span> <span class="t-mark">(范围适配器对象)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-ranges-take_while_view.html"><span class="t-lines"><span>ranges::take_while_view</span><span>views::take_while</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>由另一 <a href="cpp-ranges-view.html"><code>view</code></a> 的到首个谓词返回 <code>false</code> 为止的起始元素组成的 <a href="cpp-ranges-view.html"><code>view</code></a><br />
|
|
<span class="t-mark">(类模板)</span> <span class="t-mark">(范围适配器对象)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-ranges-drop_while_view.html"><span class="t-lines"><span>ranges::drop_while_view</span><span>views::drop_while</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>由另一 <a href="cpp-ranges-view.html"><code>view</code></a> 跳过元素的起始序列,直至首个谓词返回 <code>false</code> 的元素组成的 <a href="cpp-ranges-view.html"><code>view</code></a><br />
|
|
<span class="t-mark">(类模板)</span> <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/ranges/zip_transform_view&action=edit&redlink=1" class="new" title="cpp/ranges/zip transform view(页面不存在)"><span class="t-lines"><span>ranges::zip_transform_view</span><span>views::zip_transform</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx23">(C++23)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>由应用变换函数到被适配视图的对应元素的结果的元组组成的 <a href="cpp-ranges-view.html"><code>view</code></a><br />
|
|
<span class="t-mark">(类模板)</span> <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/ranges/adjacent_transform_view&action=edit&redlink=1" class="new" title="cpp/ranges/adjacent transform view(页面不存在)"><span class="t-lines"><span>ranges::adjacent_transform_view</span><span>views::adjacent_transform</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx23">(C++23)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>由应用变换函数到被适配视图的相邻元素的结果的元组组成的 <a href="cpp-ranges-view.html"><code>view</code></a><br />
|
|
<span class="t-mark">(类模板)</span> <span class="t-mark">(范围适配器对象)</span></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="visualClear"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|