Files
hustoj/web/cppreference-zh/chmhelp/cpp-header-experimental-ranges-iterator.html
2025-08-01 12:57:54 +08:00

1034 lines
96 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>&#23454;&#39564;&#24615;&#24211;&#22836;&#25991;&#20214; &lt;experimental/ranges/iterator&gt;</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_ranges_iterator 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%">&#23454;&#39564;&#24615;&#24211;&#22836;&#25991;&#20214;</span> &lt;experimental/ranges/iterator&gt;</h1>
<div id="bodyContent">
<div id="contentSub"><span class="subpages">&lt; <a href="cpp.html">cpp</a>&lrm; | <a href="cpp-header.html">header</a>&lrm; | <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>&#27492;&#22836;&#25991;&#20214;&#26159;<a href="cpp-experimental-ranges.html">&#33539;&#22260;</a>&#24211;&#30340;&#19968;&#37096;&#20998;&#12290;</p>
<h3><span class="mw-headline" id=".E8.BF.AD.E4.BB.A3.E5.99.A8.E7.9B.B8.E5.85.B3.E6.A6.82.E5.BF.B5">&#36845;&#20195;&#22120;&#30456;&#20851;&#27010;&#24565;</span></h3>
<table class="t-dsc-begin">
<tr class="t-dsc-header">
<td colspan="2">
<div>&#23450;&#20041;&#20110;&#21629;&#21517;&#31354;&#38388; <code>std::experimental::ranges</code></div>
</td>
</tr>
</table>
<h4><span class="mw-headline" id=".E8.BF.AD.E4.BB.A3.E5.99.A8.E6.A6.82.E5.BF.B5">&#36845;&#20195;&#22120;&#27010;&#24565;</span></h4>
<table class="t-dsc-begin">
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-Readable.html"><span class="t-lines"><span>Readable</span></span></a></div>
</div>
</td>
<td>&#25351;&#23450;&#31867;&#22411;&#36890;&#36807;&#24212;&#29992;&#36816;&#31639;&#31526; <code>*</code> &#21487;&#35835;<br />
<span class="t-mark">(&#27010;&#24565;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-Writable.html"><span class="t-lines"><span>Writable</span></span></a></div>
</div>
</td>
<td>&#25351;&#23450;&#21487;&#21521;&#36845;&#20195;&#22120;&#25152;&#24341;&#29992;&#30340;&#23545;&#35937;&#20889;&#20837;&#20540;<br />
<span class="t-mark">(&#27010;&#24565;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-WeaklyIncrementable.html"><span class="t-lines"><span>WeaklyIncrementable</span></span></a></div>
</div>
</td>
<td>&#25351;&#23450; <a href="cpp-experimental-ranges-concepts-Semiregular.html"><code>Semiregular</code></a> &#31867;&#22411;&#33021;&#20197;&#21069;&#21518;&#33258;&#22686;&#36816;&#31639;&#31526;&#33258;&#22686;<br />
<span class="t-mark">(&#27010;&#24565;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-Incrementable.html"><span class="t-lines"><span>Incrementable</span></span></a></div>
</div>
</td>
<td>&#25351;&#23450; <a href="cpp-experimental-ranges-iterator-WeaklyIncrementable.html"><code>WeaklyIncrementable</code></a> &#31867;&#22411;&#19978;&#30340;&#33258;&#22686;&#25805;&#20316;&#20445;&#25345;&#30456;&#31561;&#24615;&#65292;&#32780;&#19988;&#35813;&#31867;&#22411; <a href="cpp-experimental-ranges-concepts-EqualityComparable.html"><code>EqualityComparable</code></a><br />
<span class="t-mark">(&#27010;&#24565;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-Iterator.html"><span class="t-lines"><span>Iterator</span></span></a></div>
</div>
</td>
<td>&#25351;&#23450;&#35813;&#31867;&#22411;&#23545;&#35937;&#33021;&#33258;&#22686;&#24182;&#35299;&#24341;&#29992;<br />
<span class="t-mark">(&#27010;&#24565;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-Sentinel.html"><span class="t-lines"><span>Sentinel</span></span></a></div>
</div>
</td>
<td>&#25351;&#23450;&#31867;&#22411;&#30340;&#23545;&#35937;&#26159; <a href="cpp-experimental-ranges-iterator-Iterator.html"><code>Iterator</code></a> &#31867;&#22411;&#30340;&#21736;&#20301;<br />
<span class="t-mark">(&#27010;&#24565;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-SizedSentinel.html"><span class="t-lines"><span>SizedSentinel</span></span></a></div>
</div>
</td>
<td>&#25351;&#23450;&#33021;&#24212;&#29992; <code>-</code> &#36816;&#31639;&#31526;&#21040;&#36845;&#20195;&#22120;&#21644;&#21736;&#20301;&#65292;&#20197;&#22312;&#24120;&#25968;&#26102;&#38388;&#35745;&#31639;&#20854;&#24046;<br />
<span class="t-mark">(&#27010;&#24565;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-InputIterator.html"><span class="t-lines"><span>InputIterator</span></span></a></div>
</div>
</td>
<td>&#25351;&#23450;&#31867;&#22411;&#20026;&#36755;&#20837;&#36845;&#20195;&#22120;&#65292;&#21363;&#33021;&#35835;&#20854;&#25152;&#24341;&#29992;&#20540;&#65292;&#19988;&#23427;&#33021;&#21069;&#21518;&#33258;&#22686;<br />
<span class="t-mark">(&#27010;&#24565;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-OutputIterator.html"><span class="t-lines"><span>OutputIterator</span></span></a></div>
</div>
</td>
<td>&#25351;&#23450;&#31867;&#22411;&#20026;&#32473;&#23450;&#20540;&#31867;&#22411;&#30340;&#36755;&#20986;&#36845;&#20195;&#22120;&#65292;&#21363;&#33021;&#25226;&#35813;&#31867;&#22411;&#30340;&#20540;&#20889;&#20837;&#23427;&#65292;&#19988;&#23427;&#33021;&#21069;&#21518;&#33258;&#22686;<br />
<span class="t-mark">(&#27010;&#24565;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-ForwardIterator.html"><span class="t-lines"><span>ForwardIterator</span></span></a></div>
</div>
</td>
<td>&#25351;&#23450; <a href="cpp-experimental-ranges-iterator-InputIterator.html"><code>InputIterator</code></a> &#20026;&#21521;&#21069;&#36845;&#20195;&#22120;&#65292;&#25903;&#25345;&#30456;&#31561;&#27604;&#36739;&#21644;&#22810;&#36255;<br />
<span class="t-mark">(&#27010;&#24565;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-BidirectionalIterator.html"><span class="t-lines"><span>BidirectionalIterator</span></span></a></div>
</div>
</td>
<td>&#25351;&#23450; <a href="cpp-experimental-ranges-iterator-ForwardIterator.html"><code>ForwardIterator</code></a> &#20026;&#21452;&#21521;&#36845;&#20195;&#22120;&#65292;&#25903;&#25345;&#21521;&#21518;&#31227;&#21160;<br />
<span class="t-mark">(&#27010;&#24565;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-RandomAccessIterator.html"><span class="t-lines"><span>RandomAccessIterator</span></span></a></div>
</div>
</td>
<td>&#25351;&#23450; <a href="cpp-experimental-ranges-iterator-BidirectionalIterator.html"><code>BidirectionalIterator</code></a> &#20026;&#38543;&#26426;&#35775;&#38382;&#36845;&#20195;&#22120;&#65292;&#25903;&#25345;&#24120;&#25968;&#26102;&#38388;&#21069;&#36827;&#21644;&#19979;&#26631;&#35775;&#38382;<br />
<span class="t-mark">(&#27010;&#24565;)</span></td>
</tr>
</table>
<h4><span class="mw-headline" id=".E9.97.B4.E6.8E.A5.E5.8F.AF.E8.B0.83.E7.94.A8.E6.A6.82.E5.BF.B5">&#38388;&#25509;&#21487;&#35843;&#29992;&#27010;&#24565;</span></h4>
<table class="t-dsc-begin">
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-IndirectUnaryInvocable.html"><span class="t-lines"><span>IndirectUnaryInvocable</span><span>IndirectRegularUnaryInvocable</span></span></a></div>
</div>
</td>
<td>&#25351;&#23450;&#21487;&#35843;&#29992;&#23545;&#35937;&#33021;&#20197;&#35299;&#24341;&#29992;&#19968;&#20010; <a href="cpp-experimental-ranges-iterator-Readable.html"><code>Readable</code></a> &#31867;&#22411;&#30340;&#32467;&#26524;&#35843;&#29992;<br />
<span class="t-mark">(&#27010;&#24565;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-IndirectUnaryPredicate.html"><span class="t-lines"><span>IndirectUnaryPredicate</span></span></a></div>
</div>
</td>
<td>&#25351;&#23450;&#21487;&#35843;&#29992;&#23545;&#35937;&#65292;&#20197;&#35299;&#24341;&#29992;&#26576;&#20010; <a href="cpp-experimental-ranges-iterator-Readable.html"><code>Readable</code></a> &#31867;&#22411;&#30340;&#32467;&#26524;&#35843;&#29992;&#26102;&#65292;&#28385;&#36275; <a href="cpp-experimental-ranges-concepts-Predicate.html"><code>Predicate</code></a><br />
<span class="t-mark">(&#27010;&#24565;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-IndirectRelation.html"><span class="t-lines"><span>IndirectRelation</span></span></a></div>
</div>
</td>
<td>&#25351;&#23450;&#21487;&#35843;&#29992;&#23545;&#35937;&#20197;&#35299;&#24341;&#29992;&#26576;&#20123; <a href="cpp-experimental-ranges-iterator-Readable.html"><code>Readable</code></a> &#31867;&#22411;&#30340;&#32467;&#26524;&#35843;&#29992;&#26102;&#65292;&#28385;&#36275; <a href="cpp-experimental-ranges-concepts-Relation.html"><code>Relation</code></a><br />
<span class="t-mark">(&#27010;&#24565;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-IndirectStrictWeakOrder.html"><span class="t-lines"><span>IndirectStrictWeakOrder</span></span></a></div>
</div>
</td>
<td>&#25351;&#23450;&#21487;&#35843;&#29992;&#23545;&#35937;&#65292;&#20197;&#35299;&#24341;&#29992;&#26576;&#20123; <a href="cpp-experimental-ranges-iterator-Readable.html"><code>Readable</code></a> &#31867;&#22411;&#30340;&#32467;&#26524;&#35843;&#29992;&#26102;&#65292;&#28385;&#36275; <a href="cpp-experimental-ranges-concepts-StrictWeakOrder.html"><code>StrictWeakOrder</code></a><br />
<span class="t-mark">(&#27010;&#24565;)</span></td>
</tr>
</table>
<h4><span class="mw-headline" id=".E5.B8.B8.E7.94.A8.E7.AE.97.E6.B3.95.E8.A6.81.E6.B1.82">&#24120;&#29992;&#31639;&#27861;&#35201;&#27714;</span></h4>
<table class="t-dsc-begin">
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-IndirectlyMovable.html"><span class="t-lines"><span>IndirectlyMovable</span></span></a></div>
</div>
</td>
<td>&#25351;&#23450;&#20540;&#21487;&#20174; <a href="cpp-experimental-ranges-iterator-Readable.html"><code>Readable</code></a> &#31867;&#22411;&#31227;&#21160;&#21040; <a href="cpp-experimental-ranges-iterator-Writable.html"><code>Writable</code></a> &#31867;&#22411;<br />
<span class="t-mark">(&#27010;&#24565;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-IndirectlyMovableStorable.html"><span class="t-lines"><span>IndirectlyMovableStorable</span></span></a></div>
</div>
</td>
<td>&#25351;&#23450;&#31867;&#22411;&#21487;&#20174; <a href="cpp-experimental-ranges-iterator-Readable.html"><code>Readable</code></a> &#31867;&#22411;&#31227;&#21160;&#21040; <a href="cpp-experimental-ranges-iterator-Writable.html"><code>Writable</code></a> &#31867;&#22411;&#65292;&#19988;&#31227;&#21160;&#21487;&#20197;&#36890;&#36807;&#20013;&#38388;&#23545;&#35937;&#36827;&#34892;<br />
<span class="t-mark">(&#27010;&#24565;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-IndirectlyCopyable.html"><span class="t-lines"><span>IndirectlyCopyable</span></span></a></div>
</div>
</td>
<td>&#25351;&#23450;&#20540;&#21487;&#20174; <a href="cpp-experimental-ranges-iterator-Readable.html"><code>Readable</code></a> &#31867;&#22411;&#22797;&#21046;&#21040; <a href="cpp-experimental-ranges-iterator-Writable.html"><code>Writable</code></a> &#31867;&#22411;<br />
<span class="t-mark">(&#27010;&#24565;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-IndirectlyCopyableStorable.html"><span class="t-lines"><span>IndirectlyCopyableStorable</span></span></a></div>
</div>
</td>
<td>&#25351;&#23450;&#20540;&#21487;&#20174; <a href="cpp-experimental-ranges-iterator-Readable.html"><code>Readable</code></a> &#31867;&#22411;&#22797;&#21046;&#21040; <a href="cpp-experimental-ranges-iterator-Writable.html"><code>Writable</code></a> &#31867;&#22411;&#65292;&#19988;&#35813;&#22797;&#21046;&#21487;&#33021;&#36890;&#36807;&#20013;&#38388;&#23545;&#35937;&#36827;&#34892;<br />
<span class="t-mark">(&#27010;&#24565;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-IndirectlySwappable.html"><span class="t-lines"><span>IndirectlySwappable</span></span></a></div>
</div>
</td>
<td>&#25351;&#23450;&#20004;&#20010; <a href="cpp-experimental-ranges-iterator-Readable.html"><code>Readable</code></a> &#31867;&#22411;&#25152;&#24341;&#29992;&#30340;&#20540;&#21487;&#20132;&#25442;<br />
<span class="t-mark">(&#27010;&#24565;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-IndirectlyComparable.html"><span class="t-lines"><span>IndirectlyComparable</span></span></a></div>
</div>
</td>
<td>&#25351;&#23450;&#20004;&#20010; <a href="cpp-experimental-ranges-iterator-Readable.html"><code>Readable</code></a> &#31867;&#22411;&#25152;&#24341;&#29992;&#30340;&#20540;&#33021;&#27604;&#36739;<br />
<span class="t-mark">(&#27010;&#24565;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-Permutable.html"><span class="t-lines"><span>Permutable</span></span></a></div>
</div>
</td>
<td>&#25351;&#23450;&#21407;&#20301;&#37325;&#25490;&#20803;&#32032;&#30340;&#31639;&#27861;&#30340;&#20844;&#20849;&#35201;&#27714;<br />
<span class="t-mark">(&#27010;&#24565;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-Mergeable.html"><span class="t-lines"><span>Mergeable</span></span></a></div>
</div>
</td>
<td>&#25351;&#23450;&#31639;&#27861;&#30340;&#35201;&#27714;&#65292;&#35813;&#31639;&#27861;&#38656;&#35201;&#36890;&#36807;&#22797;&#21046;&#20803;&#32032;&#24402;&#24182;&#24050;&#25490;&#24207;&#24207;&#21015;&#21040;&#36755;&#20986;&#24207;&#21015;<br />
<span class="t-mark">(&#27010;&#24565;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-Sortable.html"><span class="t-lines"><span>Sortable</span></span></a></div>
</div>
</td>
<td>&#25351;&#23450;&#37325;&#25490;&#20803;&#32032;&#20026;&#26377;&#24207;&#24207;&#21015;&#30340;&#31639;&#27861;&#30340;&#20844;&#20849;&#35201;&#27714;<br />
<span class="t-mark">(&#27010;&#24565;)</span></td>
</tr>
</table>
<h4><span class="mw-headline" id=".E6.A6.82.E5.BF.B5.E5.B7.A5.E5.85.B7">&#27010;&#24565;&#24037;&#20855;</span></h4>
<table class="t-dsc-begin">
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-indirect_result_of.html"><span class="t-lines"><span>indirect_result_of</span></span></a></div>
</div>
</td>
<td>&#35745;&#31639;&#22312;&#26576; <a href="cpp-experimental-ranges-iterator-Readable.html"><code>Readable</code></a> &#31867;&#22411;&#38598;&#21512;&#30340;&#35299;&#24341;&#29992;&#32467;&#26524;&#19978;&#35843;&#29992;&#21487;&#35843;&#29992;&#23545;&#35937;&#30340;&#32467;&#26524;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-projected.html"><span class="t-lines"><span>projected</span></span></a></div>
</div>
</td>
<td>&#29992;&#20110;&#25351;&#23450;&#25509;&#21463;&#25237;&#24433;&#30340;&#31639;&#27861;&#19978;&#30340;&#21046;&#32422;&#30340;&#24110;&#21161;&#27169;&#26495;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E8.BF.AD.E4.BB.A3.E5.99.A8.E5.8E.9F.E8.AF.AD">&#36845;&#20195;&#22120;&#21407;&#35821;</span></h3>
<h4><span class="mw-headline" id=".E8.BF.AD.E4.BB.A3.E5.99.A8.E5.B7.A5.E5.85.B7">&#36845;&#20195;&#22120;&#24037;&#20855;</span></h4>
<table class="t-dsc-begin">
<tr class="t-dsc-header">
<td colspan="2">
<div>&#23450;&#20041;&#20110;&#21629;&#21517;&#31354;&#38388; <code>std::experimental::ranges</code></div>
</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/ranges/iterator/iter_move&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/iterator/iter move&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>iter_move</span></span></a></div>
</div>
</td>
<td>&#36716;&#22411;&#35299;&#24341;&#29992;&#23545;&#35937;&#30340;&#32467;&#26524;&#20026;&#20854;&#25152;&#20851;&#32852;&#30340;&#21491;&#20540;&#24341;&#29992;&#31867;&#22411;<br />
<span class="t-mark">(&#23450;&#21046;&#28857;&#23545;&#35937;)</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/ranges/iterator/iter_swap&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/iterator/iter swap&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>iter_swap</span></span></a></div>
</div>
</td>
<td>&#20132;&#25442;&#20004;&#20010;&#21487;&#35299;&#24341;&#29992;&#23545;&#35937;&#25152;&#24341;&#29992;&#30340;&#20540;<br />
<span class="t-mark">(&#23450;&#21046;&#28857;&#23545;&#35937;)</span></td>
</tr>
</table>
<h4><span class="mw-headline" id=".E8.BF.AD.E4.BB.A3.E5.99.A8.E7.89.B9.E5.BE.81">&#36845;&#20195;&#22120;&#29305;&#24449;</span></h4>
<table class="t-dsc-begin">
<tr class="t-dsc-header">
<td colspan="2">
<div>&#23450;&#20041;&#20110;&#21629;&#21517;&#31354;&#38388; <code>std::experimental::ranges</code></div>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-difference_type.html"><span class="t-lines"><span>difference_type</span></span></a></div>
</div>
</td>
<td>&#33719;&#24471; <a href="cpp-experimental-ranges-iterator-WeaklyIncrementable.html"><code>WeaklyIncrementable</code></a> &#31867;&#22411;&#30340;&#24046;&#31867;&#22411;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-value_type.html"><span class="t-lines"><span>value_type</span></span></a></div>
</div>
</td>
<td>&#33719;&#24471; <a href="cpp-experimental-ranges-iterator-Readable.html"><code>Readable</code></a> &#31867;&#22411;&#30340;&#20540;&#31867;&#22411;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-iterator_category.html"><span class="t-lines"><span>iterator_category</span></span></a></div>
</div>
</td>
<td>&#33719;&#24471;&#36755;&#20837;&#36845;&#20195;&#22120;&#31867;&#22411;&#30340;&#36845;&#20195;&#22120;&#31867;&#21035;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</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/ranges/iterator/iterator_traits&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/iterator/iterator traits&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>iterator_traits</span></span></a></div>
</div>
</td>
<td>&#27719;&#38598;&#36845;&#20195;&#22120;&#30340;&#20851;&#32852;&#31867;&#22411;&#30340;&#20860;&#23481;&#24615;&#29305;&#24615;&#31867;<br />
<span class="t-mark">(&#21035;&#21517;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-reference_t.html"><span class="t-lines"><span>reference_t</span><span>rvalue_reference_t</span><span>iter_common_reference_t</span></span></a></div>
</div>
</td>
<td>&#33719;&#24471;&#21487;&#35299;&#24341;&#29992;&#23545;&#35937;&#30340;&#20851;&#32852;&#24341;&#29992;&#31867;&#22411;<br />
<span class="t-mark">(&#21035;&#21517;&#27169;&#26495;)</span></td>
</tr>
</table>
<h4><span class="mw-headline" id=".E8.BF.AD.E4.BB.A3.E5.99.A8.E7.B1.BB.E5.88.AB.E6.A0.87.E7.AD.BE">&#36845;&#20195;&#22120;&#31867;&#21035;&#26631;&#31614;</span></h4>
<table class="t-dsc-begin">
<tr class="t-dsc-header">
<td colspan="2">
<div>&#23450;&#20041;&#20110;&#21629;&#21517;&#31354;&#38388; <code>std::experimental::ranges</code></div>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-iterator_tags.html"><span class="t-lines"><span>input_iterator_tag</span><span>output_iterator_tag</span><span>forward_iterator_tag</span><span>bidirectional_iterator_tag</span><span>random_access_iterator_tag</span></span></a></div>
</div>
</td>
<td>&#29992;&#20110;&#25351;&#31034;&#36845;&#20195;&#22120;&#31867;&#21035;&#30340;&#31354;&#31867;<br />
<span class="t-mark">(&#31867;)</span></td>
</tr>
</table>
<h4><span class="mw-headline" id="std::iterator_traits_.E7.9A.84.E7.89.B9.E5.8C.96"><span class="t-lc"><a href="cpp-iterator-iterator_traits.html">std::iterator_traits</a></span> &#30340;&#29305;&#21270;</span></h4>
<table class="t-dsc-begin">
<tr class="t-dsc-header">
<td colspan="2">
<div>&#23450;&#20041;&#20110;&#21629;&#21517;&#31354;&#38388; <code>std</code></div>
</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/ranges/iterator/std_iter_traits&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/iterator/std iter traits&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>std::iterator_traits<span style="font-size:0.7em; line-height:130%">&lt;InputIterator&gt;</span></span><span>std::iterator_traits<span style="font-size:0.7em; line-height:130%">&lt;OutputIterator&gt;</span></span></span></a></div>
</div>
</td>
<td>&#20026;&#33539;&#22260; TS &#36845;&#20195;&#22120;&#29305;&#21270; <span class="t-lc"><a href="cpp-iterator-iterator_traits.html">std::iterator_traits</a></span><br />
<span class="t-mark">(&#31867;&#27169;&#26495;&#29305;&#21270;)</span></td>
</tr>
</table>
<h4><span class="mw-headline" id=".E8.BF.AD.E4.BB.A3.E5.99.A8.E6.93.8D.E4.BD.9C">&#36845;&#20195;&#22120;&#25805;&#20316;</span></h4>
<table class="t-dsc-begin">
<tr class="t-dsc-header">
<td colspan="2">
<div>&#23450;&#20041;&#20110;&#21629;&#21517;&#31354;&#38388; <code>std::experimental::ranges</code></div>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-advance.html"><span class="t-lines"><span>advance</span></span></a></div>
</div>
</td>
<td>&#20196;&#36845;&#20195;&#22120;&#21069;&#36827;&#32473;&#23450;&#30340;&#36317;&#31163;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-distance.html"><span class="t-lines"><span>distance</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#36845;&#20195;&#22120;&#21644;&#21736;&#20301;&#20043;&#38388;&#30340;&#36317;&#31163;&#65292;&#25110;&#33539;&#22260;&#36215;&#22987;&#21644;&#32467;&#23614;&#38388;&#30340;&#36317;&#31163;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-next.html"><span class="t-lines"><span>next</span></span></a></div>
</div>
</td>
<td>&#33258;&#22686;&#36845;&#20195;&#22120;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-prev.html"><span class="t-lines"><span>prev</span></span></a></div>
</div>
</td>
<td>&#33258;&#20943;&#36845;&#20195;&#22120;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E8.BF.AD.E4.BB.A3.E5.99.A8.E9.80.82.E9.85.8D.E5.99.A8">&#36845;&#20195;&#22120;&#36866;&#37197;&#22120;</span></h3>
<table class="t-dsc-begin">
<tr class="t-dsc-header">
<td colspan="2">
<div>&#23450;&#20041;&#20110;&#21629;&#21517;&#31354;&#38388; <code>std::experimental::ranges</code></div>
</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/ranges/iterator/reverse_iterator&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/iterator/reverse iterator&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>reverse_iterator</span></span></a></div>
</div>
</td>
<td>&#29992;&#20110;&#36870;&#24207;&#36941;&#21382;&#30340;&#36845;&#20195;&#22120;&#36866;&#37197;&#22120;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</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/ranges/iterator/back_insert_iterator&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/iterator/back insert iterator&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>back_insert_iterator</span></span></a></div>
</div>
</td>
<td>&#29992;&#20110;&#22312;&#23481;&#22120;&#23614;&#25554;&#20837;&#30340;&#36845;&#20195;&#22120;&#36866;&#37197;&#22120;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</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/ranges/iterator/front_insert_iterator&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/iterator/front insert iterator&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>front_insert_iterator</span></span></a></div>
</div>
</td>
<td>&#29992;&#20110;&#22312;&#23481;&#22120;&#39318;&#25554;&#20837;&#30340;&#36845;&#20195;&#22120;&#36866;&#37197;&#22120;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</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/ranges/iterator/insert_iterator&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/iterator/insert iterator&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>insert_iterator</span></span></a></div>
</div>
</td>
<td>&#29992;&#20110;&#25554;&#20837;&#20803;&#32032;&#21040;&#23481;&#22120;&#20013;&#30340;&#36845;&#20195;&#22120;&#36866;&#37197;&#22120;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</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/ranges/iterator/move_iterator&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/iterator/move iterator&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>move_iterator</span></span></a></div>
</div>
</td>
<td>&#35299;&#24341;&#29992;&#20026;&#21491;&#20540;&#24341;&#29992;&#30340;&#36845;&#20195;&#22120;&#36866;&#37197;&#22120;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</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/ranges/iterator/move_sentinel&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/iterator/move sentinel&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>move_sentinel</span></span></a></div>
</div>
</td>
<td>&#20026; <code>move_iterator</code> &#25152;&#29992;&#30340;&#21736;&#20301;&#36866;&#37197;&#22120;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</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/ranges/iterator/common_iterator&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/iterator/common iterator&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>common_iterator</span></span></a></div>
</div>
</td>
<td>&#23558;&#36845;&#20195;&#22120;-&#21736;&#20301;&#23545;&#36866;&#37197;&#25104;&#20844;&#20849;&#36845;&#20195;&#22120;&#31867;&#22411;&#65292;&#20197;&#29992;&#20110;&#36951;&#30041;&#31639;&#27861;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</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/ranges/iterator/counted_iterator&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/iterator/counted iterator&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>counted_iterator</span></span></a></div>
</div>
</td>
<td>&#20445;&#25345;&#36317;&#36215;&#22987;&#20301;&#32622;&#36317;&#31163;&#36394;&#36857;&#30340;&#36845;&#20195;&#22120;&#36866;&#37197;&#22120;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</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/ranges/iterator/default_sentinel&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/iterator/default sentinel&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>default_sentinel</span></span></a></div>
</div>
</td>
<td>&#30693;&#26195;&#20854;&#33539;&#22260;&#30340;&#36845;&#20195;&#22120;&#31867;&#22411;&#25152;&#29992;&#30340;&#31354;&#21736;&#20301;&#31867;&#22411;<br />
<span class="t-mark">(&#31867;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-dangling.html"><span class="t-lines"><span>dangling</span></span></a></div>
</div>
</td>
<td>&#21487;&#33021;&#24748;&#22402;&#30340;&#36845;&#20195;&#22120;&#30340;&#21253;&#35013;&#22120;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-iterator-dangling.html"><span class="t-lines"><span>safe_iterator_t</span></span></a></div>
</div>
</td>
<td>&#20197; <code>dangling</code> &#21253;&#35013;&#21491;&#20540;&#33539;&#22260;&#30340;&#36845;&#20195;&#22120;&#31867;&#22411;&#30340;&#21035;&#21517;&#27169;&#29256;<br />
<span class="t-mark">(&#21035;&#21517;&#27169;&#26495;)</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/ranges/iterator/unreachable&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/iterator/unreachable&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>unreachable</span></span></a></div>
</div>
</td>
<td>&#29992;&#20110;&#19982;&#20219;&#20309;&#36845;&#20195;&#22120;&#19968;&#21516;&#25351;&#31034;&#26080;&#38480;&#33539;&#22260;&#30340;&#21736;&#20301;&#31867;&#22411;<br />
<span class="t-mark">(&#31867;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E6.B5.81.E8.BF.AD.E4.BB.A3.E5.99.A8">&#27969;&#36845;&#20195;&#22120;</span></h3>
<table class="t-dsc-begin">
<tr class="t-dsc-header">
<td colspan="2">
<div>&#23450;&#20041;&#20110;&#21629;&#21517;&#31354;&#38388; <code>std::experimental::ranges</code></div>
</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/ranges/iterator/istream_iterator&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/iterator/istream iterator&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>istream_iterator</span></span></a></div>
</div>
</td>
<td>&#20174; <span class="t-lc"><a href="cpp-io-basic_istream.html">std::basic_istream</a></span> &#35835;&#21462;&#30340;&#36755;&#20837;&#36845;&#20195;&#22120;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</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/ranges/iterator/ostream_iterator&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/iterator/ostream iterator&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>ostream_iterator</span></span></a></div>
</div>
</td>
<td>&#20889;&#20837; <span class="t-lc"><a href="cpp-io-basic_ostream.html">std::basic_ostream</a></span> &#30340;&#36755;&#20986;&#36845;&#20195;&#22120;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</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/ranges/iterator/istreambuf_iterator&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/iterator/istreambuf iterator&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>istreambuf_iterator</span></span></a></div>
</div>
</td>
<td>&#20174; <span class="t-lc"><a href="cpp-io-basic_streambuf.html">std::basic_streambuf</a></span> &#35835;&#21462;&#30340;&#36755;&#20837;&#36845;&#20195;&#22120;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</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/ranges/iterator/ostreambuf_iterator&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/iterator/ostreambuf iterator&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>ostreambuf_iterator</span></span></a></div>
</div>
</td>
<td>&#20889;&#20837; <span class="t-lc"><a href="cpp-io-basic_streambuf.html">std::basic_streambuf</a></span> &#30340;&#36755;&#20986;&#36845;&#20195;&#22120;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E6.A6.82.E8.A6.81">&#27010;&#35201;</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="br0">{</span> <span class="kw1">namespace</span> experimental <span class="br0">{</span> <span class="kw1">namespace</span> ranges <span class="br0">{</span> <span class="kw1">inline</span> <span class="kw1">namespace</span> v1 <span class="br0">{</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> concept <span class="kw4">bool</span> <span class="coMULTI">/* dereferenceable */</span> <span class="co1">// &#20165;&#29992;&#20110;&#38416;&#37322;</span>
<span class="sy1">=</span> requires<span class="br0">(</span>T<span class="sy3">&amp;</span> t<span class="br0">)</span> <span class="br0">{</span> <span class="br0">{</span><span class="sy2">*</span>t<span class="br0">}</span> <span class="sy2">-</span><span class="sy1">&gt;</span> <span class="kw4">auto</span><span class="sy3">&amp;&amp;</span><span class="sy4">;</span> <span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">namespace</span> <span class="br0">{</span>
<span class="kw4">constexpr</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span> iter_move <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="kw4">constexpr</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span> iter_swap <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> difference_type<span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw1">using</span> difference_type_t
<span class="sy1">=</span> <span class="kw1">typename</span> difference_type<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> value_type<span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw1">using</span> value_type_t
<span class="sy1">=</span> <span class="kw1">typename</span> value_type<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> iterator_category<span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw1">using</span> iterator_category_t
<span class="sy1">=</span> <span class="kw1">typename</span> iterator_category<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="coMULTI">/* dereferenceable */</span> T<span class="sy1">&gt;</span> <span class="kw1">using</span> reference_t
<span class="sy1">=</span> decltype<span class="br0">(</span><span class="sy2">*</span>declval<span class="sy1">&lt;</span>T<span class="sy3">&amp;</span><span class="sy1">&gt;</span><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="coMULTI">/* dereferenceable */</span> T<span class="sy1">&gt;</span>
requires <span class="coMULTI">/* &#35265;&#23450;&#20041; */</span> <span class="kw1">using</span> rvalue_reference_t
<span class="sy1">=</span> decltype<span class="br0">(</span>ranges<span class="sy4">::</span><span class="me2">iter_move</span><span class="br0">(</span>declval<span class="sy1">&lt;</span>T<span class="sy3">&amp;</span><span class="sy1">&gt;</span><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> In<span class="sy1">&gt;</span>
concept <span class="kw4">bool</span> Readable <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#23450;&#20041; */</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> Out, <span class="kw1">class</span> T<span class="sy1">&gt;</span>
concept <span class="kw4">bool</span> Writable <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#23450;&#20041; */</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I<span class="sy1">&gt;</span>
concept <span class="kw4">bool</span> WeaklyIncrementable <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#23450;&#20041; */</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I<span class="sy1">&gt;</span>
concept <span class="kw4">bool</span> Incrementable <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#23450;&#20041; */</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I<span class="sy1">&gt;</span>
concept <span class="kw4">bool</span> Iterator <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#23450;&#20041; */</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> S, <span class="kw1">class</span> I<span class="sy1">&gt;</span>
concept <span class="kw4">bool</span> Sentinel <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#23450;&#20041; */</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> S, <span class="kw1">class</span> I<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> disable_sized_sentinel <span class="sy1">=</span> <span class="kw2">false</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> S, <span class="kw1">class</span> I<span class="sy1">&gt;</span>
concept <span class="kw4">bool</span> SizedSentinel <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#23450;&#20041; */</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I<span class="sy1">&gt;</span>
concept <span class="kw4">bool</span> InputIterator <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#23450;&#20041; */</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I<span class="sy1">&gt;</span>
concept <span class="kw4">bool</span> OutputIterator <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#23450;&#20041; */</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I<span class="sy1">&gt;</span>
concept <span class="kw4">bool</span> ForwardIterator <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#23450;&#20041; */</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I<span class="sy1">&gt;</span>
concept <span class="kw4">bool</span> BidirectionalIterator <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#23450;&#20041; */</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I<span class="sy1">&gt;</span>
concept <span class="kw4">bool</span> RandomAccessIterator <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#23450;&#20041; */</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> F, <span class="kw1">class</span> I<span class="sy1">&gt;</span>
concept <span class="kw4">bool</span> IndirectUnaryInvocable <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#23450;&#20041; */</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> F, <span class="kw1">class</span> I<span class="sy1">&gt;</span>
concept <span class="kw4">bool</span> IndirectRegularUnaryInvocable <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#23450;&#20041; */</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> F, <span class="kw1">class</span> I<span class="sy1">&gt;</span>
concept <span class="kw4">bool</span> IndirectUnaryPredicate <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#23450;&#20041; */</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> F, <span class="kw1">class</span> I1, <span class="kw1">class</span> I2 <span class="sy1">=</span> I1<span class="sy1">&gt;</span>
concept <span class="kw4">bool</span> IndirectRelation <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#23450;&#20041; */</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> F, <span class="kw1">class</span> I1, <span class="kw1">class</span> I2 <span class="sy1">=</span> I1<span class="sy1">&gt;</span>
concept <span class="kw4">bool</span> IndirectStrictWeakOrder <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#23450;&#20041; */</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> indirect_result_of<span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> F, <span class="kw1">class</span>... <span class="me1">Is</span><span class="sy1">&gt;</span>
requires Invocable<span class="sy1">&lt;</span>F, reference_t<span class="sy1">&lt;</span>Is<span class="sy1">&gt;</span>...<span class="sy1">&gt;</span>
<span class="kw1">struct</span> indirect_result_of<span class="sy1">&lt;</span>F<span class="br0">(</span>Is...<span class="br0">)</span><span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> F<span class="sy1">&gt;</span>
<span class="kw1">using</span> indirect_result_of_t
<span class="sy1">=</span> <span class="kw1">typename</span> indirect_result_of<span class="sy1">&lt;</span>F<span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>Readable I, IndirectRegularUnaryInvocable<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> Proj<span class="sy1">&gt;</span>
<span class="kw1">struct</span> projected<span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>WeaklyIncrementable I, <span class="kw1">class</span> Proj<span class="sy1">&gt;</span>
<span class="kw1">struct</span> difference_type<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> In, <span class="kw1">class</span> Out<span class="sy1">&gt;</span>
concept <span class="kw4">bool</span> IndirectlyMovable <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#23450;&#20041; */</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> In, <span class="kw1">class</span> Out<span class="sy1">&gt;</span>
concept <span class="kw4">bool</span> IndirectlyMovableStorable <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#23450;&#20041; */</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> In, <span class="kw1">class</span> Out<span class="sy1">&gt;</span>
concept <span class="kw4">bool</span> IndirectlyCopyable <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#23450;&#20041; */</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> In, <span class="kw1">class</span> Out<span class="sy1">&gt;</span>
concept <span class="kw4">bool</span> IndirectlyCopyableStorable <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#23450;&#20041; */</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2 <span class="sy1">=</span> I1<span class="sy1">&gt;</span>
concept <span class="kw4">bool</span> IndirectlySwappable <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#23450;&#20041; */</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2, <span class="kw1">class</span> R <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> P1 <span class="sy1">=</span> identity,
<span class="kw1">class</span> P2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
concept <span class="kw4">bool</span> IndirectlyComparable <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#23450;&#20041; */</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I<span class="sy1">&gt;</span>
concept <span class="kw4">bool</span> Permutable <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#23450;&#20041; */</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2, <span class="kw1">class</span> Out,
<span class="kw1">class</span> R <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> P1 <span class="sy1">=</span> identity, <span class="kw1">class</span> P2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
concept <span class="kw4">bool</span> Mergeable <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#23450;&#20041; */</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I, <span class="kw1">class</span> R <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> P <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
concept <span class="kw4">bool</span> Sortable <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#23450;&#20041; */</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> Iterator<span class="sy1">&gt;</span> <span class="kw1">using</span> iterator_traits <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#23450;&#20041; */</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>Readable T<span class="sy1">&gt;</span> <span class="kw1">using</span> iter_common_reference_t
<span class="sy1">=</span> common_reference_t<span class="sy1">&lt;</span>reference_t<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span>, value_type_t<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="sy3">&amp;</span><span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">struct</span> output_iterator_tag <span class="br0">{</span> <span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">struct</span> input_iterator_tag <span class="br0">{</span> <span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">struct</span> forward_iterator_tag <span class="sy4">:</span> input_iterator_tag <span class="br0">{</span> <span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">struct</span> bidirectional_iterator_tag <span class="sy4">:</span> forward_iterator_tag <span class="br0">{</span> <span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">struct</span> random_access_iterator_tag <span class="sy4">:</span> bidirectional_iterator_tag <span class="br0">{</span> <span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">namespace</span> <span class="br0">{</span>
<span class="kw4">constexpr</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span> advance <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="kw4">constexpr</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span> distance <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="kw4">constexpr</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span> next <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="kw4">constexpr</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span> prev <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>BidirectionalIterator I<span class="sy1">&gt;</span> <span class="kw1">class</span> reverse_iterator<span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2<span class="sy1">&gt;</span>
requires EqualityComparableWith<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy1">==</span><span class="br0">(</span>
<span class="kw4">const</span> reverse_iterator<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x,
<span class="kw4">const</span> reverse_iterator<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2<span class="sy1">&gt;</span>
requires EqualityComparableWith<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy3">!</span><span class="sy1">=</span><span class="br0">(</span>
<span class="kw4">const</span> reverse_iterator<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x,
<span class="kw4">const</span> reverse_iterator<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2<span class="sy1">&gt;</span>
requires StrictTotallyOrderedWith<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy1">&lt;</span><span class="br0">(</span>
<span class="kw4">const</span> reverse_iterator<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x,
<span class="kw4">const</span> reverse_iterator<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2<span class="sy1">&gt;</span>
requires StrictTotallyOrderedWith<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy1">&gt;</span><span class="br0">(</span>
<span class="kw4">const</span> reverse_iterator<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x,
<span class="kw4">const</span> reverse_iterator<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2<span class="sy1">&gt;</span>
requires StrictTotallyOrderedWith<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy1">&gt;=</span><span class="br0">(</span>
<span class="kw4">const</span> reverse_iterator<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x,
<span class="kw4">const</span> reverse_iterator<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2<span class="sy1">&gt;</span>
requires StrictTotallyOrderedWith<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy1">&lt;=</span><span class="br0">(</span>
<span class="kw4">const</span> reverse_iterator<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x,
<span class="kw4">const</span> reverse_iterator<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2<span class="sy1">&gt;</span>
requires SizedSentinel<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> difference_type_t<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> operator<span class="sy2">-</span><span class="br0">(</span>
<span class="kw4">const</span> reverse_iterator<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x,
<span class="kw4">const</span> reverse_iterator<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>RandomAccessIterator I<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> reverse_iterator<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> operator<span class="sy2">+</span><span class="br0">(</span>
difference_type_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> n,
<span class="kw4">const</span> reverse_iterator<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>BidirectionalIterator I<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> reverse_iterator<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> make_reverse_iterator<span class="br0">(</span>I i<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> Container<span class="sy1">&gt;</span> <span class="kw1">class</span> back_insert_iterator<span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> Container<span class="sy1">&gt;</span>
back_insert_iterator<span class="sy1">&lt;</span>Container<span class="sy1">&gt;</span> back_inserter<span class="br0">(</span>Container<span class="sy3">&amp;</span> x<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> Container<span class="sy1">&gt;</span> <span class="kw1">class</span> front_insert_iterator<span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> Container<span class="sy1">&gt;</span>
front_insert_iterator<span class="sy1">&lt;</span>Container<span class="sy1">&gt;</span> front_inserter<span class="br0">(</span>Container<span class="sy3">&amp;</span> x<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> Container<span class="sy1">&gt;</span> <span class="kw1">class</span> insert_iterator<span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> Container<span class="sy1">&gt;</span>
insert_iterator<span class="sy1">&lt;</span>Container<span class="sy1">&gt;</span> inserter<span class="br0">(</span>Container<span class="sy3">&amp;</span> x, iterator_t<span class="sy1">&lt;</span>Container<span class="sy1">&gt;</span> i<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I<span class="sy1">&gt;</span> <span class="kw1">class</span> move_iterator<span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2<span class="sy1">&gt;</span>
requires EqualityComparableWith<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy1">==</span><span class="br0">(</span>
<span class="kw4">const</span> move_iterator<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x, <span class="kw4">const</span> move_iterator<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2<span class="sy1">&gt;</span>
requires EqualityComparableWith<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy3">!</span><span class="sy1">=</span><span class="br0">(</span>
<span class="kw4">const</span> move_iterator<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x, <span class="kw4">const</span> move_iterator<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2<span class="sy1">&gt;</span>
requires StrictTotallyOrderedWith<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy1">&lt;</span><span class="br0">(</span>
<span class="kw4">const</span> move_iterator<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x, <span class="kw4">const</span> move_iterator<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2<span class="sy1">&gt;</span>
requires StrictTotallyOrderedWith<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy1">&lt;=</span><span class="br0">(</span>
<span class="kw4">const</span> move_iterator<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x, <span class="kw4">const</span> move_iterator<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2<span class="sy1">&gt;</span>
requires StrictTotallyOrderedWith<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy1">&gt;</span><span class="br0">(</span>
<span class="kw4">const</span> move_iterator<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x, <span class="kw4">const</span> move_iterator<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2<span class="sy1">&gt;</span>
requires StrictTotallyOrderedWith<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy1">&gt;=</span><span class="br0">(</span>
<span class="kw4">const</span> move_iterator<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x, <span class="kw4">const</span> move_iterator<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2<span class="sy1">&gt;</span>
requires SizedSentinel<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> difference_type_t<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> operator<span class="sy2">-</span><span class="br0">(</span>
<span class="kw4">const</span> move_iterator<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x,
<span class="kw4">const</span> move_iterator<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>RandomAccessIterator I<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> move_iterator<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> operator<span class="sy2">+</span><span class="br0">(</span>
difference_type_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> n,
<span class="kw4">const</span> move_iterator<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> move_iterator<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> make_move_iterator<span class="br0">(</span>I i<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>Semiregular S<span class="sy1">&gt;</span> <span class="kw1">class</span> move_sentinel<span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy1">==</span><span class="br0">(</span>
<span class="kw4">const</span> move_iterator<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span><span class="sy3">&amp;</span> i, <span class="kw4">const</span> move_sentinel<span class="sy1">&lt;</span>S<span class="sy1">&gt;</span><span class="sy3">&amp;</span> s<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy1">==</span><span class="br0">(</span>
<span class="kw4">const</span> move_sentinel<span class="sy1">&lt;</span>S<span class="sy1">&gt;</span><span class="sy3">&amp;</span> s, <span class="kw4">const</span> move_iterator<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span><span class="sy3">&amp;</span> i<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy3">!</span><span class="sy1">=</span><span class="br0">(</span>
<span class="kw4">const</span> move_iterator<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span><span class="sy3">&amp;</span> i, <span class="kw4">const</span> move_sentinel<span class="sy1">&lt;</span>S<span class="sy1">&gt;</span><span class="sy3">&amp;</span> s<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy3">!</span><span class="sy1">=</span><span class="br0">(</span>
<span class="kw4">const</span> move_sentinel<span class="sy1">&lt;</span>S<span class="sy1">&gt;</span><span class="sy3">&amp;</span> s, <span class="kw4">const</span> move_iterator<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span><span class="sy3">&amp;</span> i<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I, SizedSentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> difference_type_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> operator<span class="sy2">-</span><span class="br0">(</span>
<span class="kw4">const</span> move_sentinel<span class="sy1">&lt;</span>S<span class="sy1">&gt;</span><span class="sy3">&amp;</span> s, <span class="kw4">const</span> move_iterator<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span><span class="sy3">&amp;</span> i<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I, SizedSentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> difference_type_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> operator<span class="sy2">-</span><span class="br0">(</span>
<span class="kw4">const</span> move_iterator<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span><span class="sy3">&amp;</span> i, <span class="kw4">const</span> move_sentinel<span class="sy1">&lt;</span>S<span class="sy1">&gt;</span><span class="sy3">&amp;</span> s<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>Semiregular S<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> move_sentinel<span class="sy1">&lt;</span>S<span class="sy1">&gt;</span> make_move_sentinel<span class="br0">(</span>S s<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>Iterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S<span class="sy1">&gt;</span>
requires <span class="sy3">!</span>Same<span class="sy1">&lt;</span>I, S<span class="sy1">&gt;</span>
<span class="kw1">class</span> common_iterator<span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>Readable I, <span class="kw1">class</span> S<span class="sy1">&gt;</span>
<span class="kw1">struct</span> value_type<span class="sy1">&lt;</span>common_iterator<span class="sy1">&lt;</span>I, S<span class="sy1">&gt;&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, <span class="kw1">class</span> S<span class="sy1">&gt;</span>
<span class="kw1">struct</span> iterator_category<span class="sy1">&lt;</span>common_iterator<span class="sy1">&lt;</span>I, S<span class="sy1">&gt;&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardIterator I, <span class="kw1">class</span> S<span class="sy1">&gt;</span>
<span class="kw1">struct</span> iterator_category<span class="sy1">&lt;</span>common_iterator<span class="sy1">&lt;</span>I, S<span class="sy1">&gt;&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S2<span class="sy1">&gt;</span>
<span class="kw4">bool</span> operator<span class="sy1">==</span><span class="br0">(</span>
<span class="kw4">const</span> common_iterator<span class="sy1">&lt;</span>I1, S1<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x, <span class="kw4">const</span> common_iterator<span class="sy1">&lt;</span>I2, S2<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S2<span class="sy1">&gt;</span>
requires EqualityComparableWith<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
<span class="kw4">bool</span> operator<span class="sy1">==</span><span class="br0">(</span>
<span class="kw4">const</span> common_iterator<span class="sy1">&lt;</span>I1, S1<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x, <span class="kw4">const</span> common_iterator<span class="sy1">&lt;</span>I2, S2<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S2<span class="sy1">&gt;</span>
<span class="kw4">bool</span> operator<span class="sy3">!</span><span class="sy1">=</span><span class="br0">(</span>
<span class="kw4">const</span> common_iterator<span class="sy1">&lt;</span>I1, S1<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x, <span class="kw4">const</span> common_iterator<span class="sy1">&lt;</span>I2, S2<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I2, SizedSentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> I1, SizedSentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S1, SizedSentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S2<span class="sy1">&gt;</span>
difference_type_t<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> operator<span class="sy2">-</span><span class="br0">(</span>
<span class="kw4">const</span> common_iterator<span class="sy1">&lt;</span>I1, S1<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x, <span class="kw4">const</span> common_iterator<span class="sy1">&lt;</span>I2, S2<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">class</span> default_sentinel<span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>Iterator I<span class="sy1">&gt;</span> <span class="kw1">class</span> counted_iterator<span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2<span class="sy1">&gt;</span>
requires Common<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy1">==</span><span class="br0">(</span>
<span class="kw4">const</span> counted_iterator<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x, <span class="kw4">const</span> counted_iterator<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy1">==</span><span class="br0">(</span>
<span class="kw4">const</span> counted_iterator<span class="sy1">&lt;</span><span class="kw4">auto</span><span class="sy1">&gt;</span><span class="sy3">&amp;</span> x, default_sentinel<span class="br0">)</span><span class="sy4">;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy1">==</span><span class="br0">(</span>
default_sentinel, <span class="kw4">const</span> counted_iterator<span class="sy1">&lt;</span><span class="kw4">auto</span><span class="sy1">&gt;</span><span class="sy3">&amp;</span> x<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2<span class="sy1">&gt;</span>
requires Common<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy3">!</span><span class="sy1">=</span><span class="br0">(</span>
<span class="kw4">const</span> counted_iterator<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x, <span class="kw4">const</span> counted_iterator<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy3">!</span><span class="sy1">=</span><span class="br0">(</span>
<span class="kw4">const</span> counted_iterator<span class="sy1">&lt;</span><span class="kw4">auto</span><span class="sy1">&gt;</span><span class="sy3">&amp;</span> x, default_sentinel y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy3">!</span><span class="sy1">=</span><span class="br0">(</span>
default_sentinel x, <span class="kw4">const</span> counted_iterator<span class="sy1">&lt;</span><span class="kw4">auto</span><span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2<span class="sy1">&gt;</span>
requires Common<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy1">&lt;</span><span class="br0">(</span>
<span class="kw4">const</span> counted_iterator<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x, <span class="kw4">const</span> counted_iterator<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2<span class="sy1">&gt;</span>
requires Common<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy1">&lt;=</span><span class="br0">(</span>
<span class="kw4">const</span> counted_iterator<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x, <span class="kw4">const</span> counted_iterator<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2<span class="sy1">&gt;</span>
requires Common<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy1">&gt;</span><span class="br0">(</span>
<span class="kw4">const</span> counted_iterator<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x, <span class="kw4">const</span> counted_iterator<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2<span class="sy1">&gt;</span>
requires Common<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy1">&gt;=</span><span class="br0">(</span>
<span class="kw4">const</span> counted_iterator<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x, <span class="kw4">const</span> counted_iterator<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2<span class="sy1">&gt;</span>
requires Common<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> difference_type_t<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> operator<span class="sy2">-</span><span class="br0">(</span>
<span class="kw4">const</span> counted_iterator<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x, <span class="kw4">const</span> counted_iterator<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> difference_type_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> operator<span class="sy2">-</span><span class="br0">(</span>
<span class="kw4">const</span> counted_iterator<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x, default_sentinel y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> I<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> difference_type_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> operator<span class="sy2">-</span><span class="br0">(</span>
default_sentinel x, <span class="kw4">const</span> counted_iterator<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>RandomAccessIterator I<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> counted_iterator<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>
operator<span class="sy2">+</span><span class="br0">(</span>difference_type_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> n, <span class="kw4">const</span> counted_iterator<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>Iterator I<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> counted_iterator<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> make_counted_iterator<span class="br0">(</span>I i, difference_type_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> n<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">class</span> unreachable<span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>Iterator I<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy1">==</span><span class="br0">(</span><span class="kw4">const</span> I<span class="sy3">&amp;</span>, unreachable<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>Iterator I<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy1">==</span><span class="br0">(</span>unreachable, <span class="kw4">const</span> I<span class="sy3">&amp;</span><span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>Iterator I<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy3">!</span><span class="sy1">=</span><span class="br0">(</span><span class="kw4">const</span> I<span class="sy3">&amp;</span>, unreachable<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>Iterator I<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="sy3">!</span><span class="sy1">=</span><span class="br0">(</span>unreachable, <span class="kw4">const</span> I<span class="sy3">&amp;</span><span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw1">class</span> dangling<span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> charT <span class="sy1">=</span> <span class="kw4">char</span>, <span class="kw1">class</span> traits <span class="sy1">=</span> char_traits<span class="sy1">&lt;</span>charT<span class="sy1">&gt;</span>,
<span class="kw1">class</span> Distance <span class="sy1">=</span> ptrdiff_t<span class="sy1">&gt;</span>
<span class="kw1">class</span> istream_iterator<span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> charT, <span class="kw1">class</span> traits, <span class="kw1">class</span> Distance<span class="sy1">&gt;</span>
<span class="kw4">bool</span> operator<span class="sy1">==</span><span class="br0">(</span><span class="kw4">const</span> istream_iterator<span class="sy1">&lt;</span>T, charT, traits, Distance<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x,
<span class="kw4">const</span> istream_iterator<span class="sy1">&lt;</span>T, charT, traits, Distance<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> charT, <span class="kw1">class</span> traits, <span class="kw1">class</span> Distance<span class="sy1">&gt;</span>
<span class="kw4">bool</span> operator<span class="sy1">==</span><span class="br0">(</span>default_sentinel x,
<span class="kw4">const</span> istream_iterator<span class="sy1">&lt;</span>T, charT, traits, Distance<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> charT, <span class="kw1">class</span> traits, <span class="kw1">class</span> Distance<span class="sy1">&gt;</span>
<span class="kw4">bool</span> operator<span class="sy1">==</span><span class="br0">(</span><span class="kw4">const</span> istream_iterator<span class="sy1">&lt;</span>T, charT, traits, Distance<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x,
default_sentinel y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> charT, <span class="kw1">class</span> traits, <span class="kw1">class</span> Distance<span class="sy1">&gt;</span>
<span class="kw4">bool</span> operator<span class="sy3">!</span><span class="sy1">=</span><span class="br0">(</span><span class="kw4">const</span> istream_iterator<span class="sy1">&lt;</span>T, charT, traits, Distance<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x,
<span class="kw4">const</span> istream_iterator<span class="sy1">&lt;</span>T, charT, traits, Distance<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> charT, <span class="kw1">class</span> traits, <span class="kw1">class</span> Distance<span class="sy1">&gt;</span>
<span class="kw4">bool</span> operator<span class="sy3">!</span><span class="sy1">=</span><span class="br0">(</span>default_sentinel x,
<span class="kw4">const</span> istream_iterator<span class="sy1">&lt;</span>T, charT, traits, Distance<span class="sy1">&gt;</span><span class="sy3">&amp;</span> y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> charT, <span class="kw1">class</span> traits, <span class="kw1">class</span> Distance<span class="sy1">&gt;</span>
<span class="kw4">bool</span> operator<span class="sy3">!</span><span class="sy1">=</span><span class="br0">(</span><span class="kw4">const</span> istream_iterator<span class="sy1">&lt;</span>T, charT, traits, Distance<span class="sy1">&gt;</span><span class="sy3">&amp;</span> x,
default_sentinel y<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> charT <span class="sy1">=</span> <span class="kw4">char</span>, <span class="kw1">class</span> traits <span class="sy1">=</span> char_traits<span class="sy1">&lt;</span>charT<span class="sy1">&gt;&gt;</span>
<span class="kw1">class</span> ostream_iterator<span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> charT, <span class="kw1">class</span> traits <span class="sy1">=</span> char_traits<span class="sy1">&lt;</span>charT<span class="sy1">&gt;</span> <span class="sy1">&gt;</span>
<span class="kw1">class</span> istreambuf_iterator<span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> charT, <span class="kw1">class</span> traits<span class="sy1">&gt;</span>
<span class="kw4">bool</span> operator<span class="sy1">==</span><span class="br0">(</span><span class="kw4">const</span> istreambuf_iterator<span class="sy1">&lt;</span>charT, traits<span class="sy1">&gt;</span><span class="sy3">&amp;</span> a,
<span class="kw4">const</span> istreambuf_iterator<span class="sy1">&lt;</span>charT, traits<span class="sy1">&gt;</span><span class="sy3">&amp;</span> b<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> charT, <span class="kw1">class</span> traits<span class="sy1">&gt;</span>
<span class="kw4">bool</span> operator<span class="sy1">==</span><span class="br0">(</span>default_sentinel a,
<span class="kw4">const</span> istreambuf_iterator<span class="sy1">&lt;</span>charT, traits<span class="sy1">&gt;</span><span class="sy3">&amp;</span> b<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> charT, <span class="kw1">class</span> traits<span class="sy1">&gt;</span>
<span class="kw4">bool</span> operator<span class="sy1">==</span><span class="br0">(</span><span class="kw4">const</span> istreambuf_iterator<span class="sy1">&lt;</span>charT, traits<span class="sy1">&gt;</span><span class="sy3">&amp;</span> a,
default_sentinel b<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> charT, <span class="kw1">class</span> traits<span class="sy1">&gt;</span>
<span class="kw4">bool</span> operator<span class="sy3">!</span><span class="sy1">=</span><span class="br0">(</span><span class="kw4">const</span> istreambuf_iterator<span class="sy1">&lt;</span>charT, traits<span class="sy1">&gt;</span><span class="sy3">&amp;</span> a,
<span class="kw4">const</span> istreambuf_iterator<span class="sy1">&lt;</span>charT, traits<span class="sy1">&gt;</span><span class="sy3">&amp;</span> b<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> charT, <span class="kw1">class</span> traits<span class="sy1">&gt;</span>
<span class="kw4">bool</span> operator<span class="sy3">!</span><span class="sy1">=</span><span class="br0">(</span>default_sentinel a,
<span class="kw4">const</span> istreambuf_iterator<span class="sy1">&lt;</span>charT, traits<span class="sy1">&gt;</span><span class="sy3">&amp;</span> b<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> charT, <span class="kw1">class</span> traits<span class="sy1">&gt;</span>
<span class="kw4">bool</span> operator<span class="sy3">!</span><span class="sy1">=</span><span class="br0">(</span><span class="kw4">const</span> istreambuf_iterator<span class="sy1">&lt;</span>charT, traits<span class="sy1">&gt;</span><span class="sy3">&amp;</span> a,
default_sentinel b<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> charT, <span class="kw1">class</span> traits <span class="sy1">=</span> char_traits<span class="sy1">&lt;</span>charT<span class="sy1">&gt;</span> <span class="sy1">&gt;</span>
<span class="kw1">class</span> ostreambuf_iterator<span class="sy4">;</span>
<span class="br0">}</span><span class="br0">}</span><span class="br0">}</span><span class="br0">}</span>
<span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>experimental<span class="sy4">::</span><a href="cpp-experimental-ranges-iterator-Iterator.html"><span class="kw2566">ranges::<span class="me2">Iterator</span></span></a> Out<span class="sy1">&gt;</span>
<span class="kw1">struct</span> iterator_traits<span class="sy1">&lt;</span>Out<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>experimental<span class="sy4">::</span><a href="cpp-experimental-ranges-iterator-InputIterator.html"><span class="kw2569">ranges::<span class="me2">InputIterator</span></span></a> In<span class="sy1">&gt;</span>
<span class="kw1">struct</span> iterator_traits<span class="sy1">&lt;</span>In<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>experimental<span class="sy4">::</span><a href="cpp-experimental-ranges-iterator-InputIterator.html"><span class="kw2569">ranges::<span class="me2">InputIterator</span></span></a> In<span class="sy1">&gt;</span>
requires experimental<span class="sy4">::</span><a href="cpp-experimental-ranges-iterator-Sentinel.html"><span class="kw2567">ranges::<span class="me2">Sentinel</span></span></a><span class="sy1">&lt;</span>In, In<span class="sy1">&gt;</span>
<span class="kw1">struct</span> iterator_traits<span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
</div>
<div class="visualClear"></div>
</div>
</div>
</div>
</body>
</html>