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

1739 lines
207 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/algorithm&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_algorithm 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/algorithm&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=".E6.A0.87.E7.AD.BE.E8.AF.B4.E6.98.8E.E7.AC.A6">&#26631;&#31614;&#35828;&#26126;&#31526;</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::tag</code></div>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-ranges-algorithm-tags.html"><span class="t-lines"><span>in</span><span>in1</span><span>in2</span><span>out</span><span>out1</span><span>out2</span><span>fun</span><span>min</span><span>max</span><span>begin</span><span>end</span></span></a></div>
</div>
</td>
<td>&#29992;&#20110; <span class="t-lc">ranges::tagged</span> &#30340;&#26631;&#31614;&#35828;&#26126;&#31526;<br />
<span class="t-mark">(&#31867;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E4.B8.8D.E4.BF.AE.E6.94.B9.E5.BA.8F.E5.88.97.E7.9A.84.E6.93.8D.E4.BD.9C">&#19981;&#20462;&#25913;&#24207;&#21015;&#30340;&#25805;&#20316;</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="cpp-experimental-ranges-algorithm-all_any_none_of.html"><span class="t-lines"><span>all_of</span><span>any_of</span><span>none_of</span></span></a></div>
</div>
</td>
<td>&#26816;&#26597;&#35859;&#35789;&#26159;&#21542;&#23545;&#33539;&#22260;&#20013;&#25152;&#26377;&#12289;&#20219;&#19968;&#25110;&#26080;&#20803;&#32032;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw2">true</span></span></span><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-algorithm-for_each.html"><span class="t-lines"><span>for_each</span></span></a></div>
</div>
</td>
<td>&#24212;&#29992;&#20989;&#25968;&#21040;&#20803;&#32032;&#33539;&#22260;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/count&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/count&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>count</span><span>count_if</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#28385;&#36275;&#29305;&#23450;&#21028;&#21035;&#26631;&#20934;&#30340;&#20803;&#32032;&#25968;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/mismatch&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/mismatch&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>mismatch</span></span></a></div>
</div>
</td>
<td>&#23547;&#25214;&#20004;&#20010;&#33539;&#22260;&#20986;&#29616;&#19981;&#21516;&#30340;&#39318;&#20010;&#20301;&#32622;<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-algorithm-equal.html"><span class="t-lines"><span>equal</span></span></a></div>
</div>
</td>
<td>&#30830;&#23450;&#20803;&#32032;&#30340;&#20108;&#20010;&#38598;&#21512;&#26159;&#21542;&#30456;&#21516;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/lexicographical_compare&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/lexicographical compare&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>lexicographical_compare</span></span></a></div>
</div>
</td>
<td>&#24403;&#19968;&#20010;&#33539;&#22260;&#25353;&#23383;&#20856;&#39034;&#24207;&#23567;&#20110;&#21478;&#19968;&#20010;&#33539;&#22260;&#26102;&#65292;&#36820;&#22238; true<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/find&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/find&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>find</span><span>find_if</span><span>find_if_not</span></span></a></div>
</div>
</td>
<td>&#23547;&#25214;&#39318;&#20010;&#28385;&#36275;&#29305;&#23450;&#21028;&#21035;&#26631;&#20934;&#30340;&#20803;&#32032;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/find_end&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/find end&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>find_end</span></span></a></div>
</div>
</td>
<td>&#22312;&#29305;&#23450;&#33539;&#22260;&#20013;&#23547;&#25214;&#26368;&#21518;&#20986;&#29616;&#30340;&#20803;&#32032;&#24207;&#21015;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/find_first_of&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/find first of&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>find_first_of</span></span></a></div>
</div>
</td>
<td>&#25628;&#32034;&#20803;&#32032;&#38598;&#20013;&#30340;&#20219;&#20309;&#20803;&#32032;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/adjacent_find&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/adjacent find&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>adjacent_find</span></span></a></div>
</div>
</td>
<td>&#23547;&#25214;&#22836;&#20004;&#20010;&#30456;&#31561;&#65288;&#25110;&#28385;&#36275;&#32473;&#23450;&#35859;&#35789;&#65289;&#30340;&#30456;&#37051;&#39033;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/search&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/search&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>search</span></span></a></div>
</div>
</td>
<td>&#25628;&#32034;&#19968;&#20010;&#20803;&#32032;&#33539;&#22260;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/search_n&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/search n&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>search_n</span></span></a></div>
</div>
</td>
<td>&#22312;&#33539;&#22260;&#20013;&#25628;&#32034;&#19968;&#23450;&#37327;&#30340;&#26576;&#20010;&#20803;&#32032;&#30340;&#36830;&#32493;&#21103;&#26412;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E4.BF.AE.E6.94.B9.E5.BA.8F.E5.88.97.E7.9A.84.E6.93.8D.E4.BD.9C">&#20462;&#25913;&#24207;&#21015;&#30340;&#25805;&#20316;</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="cpp-experimental-ranges-algorithm-copy.html"><span class="t-lines"><span>copy</span><span>copy_if</span></span></a></div>
</div>
</td>
<td>&#23558;&#26576;&#19968;&#33539;&#22260;&#30340;&#20803;&#32032;&#22797;&#21046;&#21040;&#19968;&#20010;&#26032;&#30340;&#20301;&#32622;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/copy_n&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/copy n&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>copy_n</span></span></a></div>
</div>
</td>
<td>&#23558;&#19968;&#23450;&#25968;&#30446;&#30340;&#20803;&#32032;&#22797;&#21046;&#21040;&#19968;&#20010;&#26032;&#30340;&#20301;&#32622;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/copy_backward&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/copy backward&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>copy_backward</span></span></a></div>
</div>
</td>
<td>&#25353;&#20174;&#21518;&#24448;&#21069;&#30340;&#39034;&#24207;&#22797;&#21046;&#19968;&#20010;&#33539;&#22260;&#20869;&#30340;&#20803;&#32032;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/move&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/move&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>move</span></span></a></div>
</div>
</td>
<td>&#23558;&#26576;&#19968;&#33539;&#22260;&#30340;&#20803;&#32032;&#31227;&#21160;&#21040;&#19968;&#20010;&#26032;&#30340;&#20301;&#32622;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/move_backward&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/move backward&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>move_backward</span></span></a></div>
</div>
</td>
<td>&#25353;&#20174;&#21518;&#24448;&#21069;&#30340;&#39034;&#24207;&#31227;&#21160;&#26576;&#19968;&#33539;&#22260;&#30340;&#20803;&#32032;&#21040;&#26032;&#30340;&#20301;&#32622;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/fill&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/fill&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>fill</span></span></a></div>
</div>
</td>
<td>&#23558;&#19968;&#20010;&#29305;&#23450;&#20540;&#36171;&#20540;&#32473;&#19968;&#20010;&#20803;&#32032;&#33539;&#22260;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/fill_n&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/fill n&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>fill_n</span></span></a></div>
</div>
</td>
<td>&#23558;&#19968;&#20010;&#20540;&#36171;&#20540;&#32473;&#19968;&#23450;&#25968;&#37327;&#30340;&#20803;&#32032;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/transform&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/transform&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>transform</span></span></a></div>
</div>
</td>
<td>&#24212;&#29992;&#19968;&#20010;&#20989;&#25968;&#21040;&#20803;&#32032;&#33539;&#22260;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/generate&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/generate&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>generate</span></span></a></div>
</div>
</td>
<td>&#20445;&#23384;&#20989;&#25968;&#32467;&#26524;&#20110;&#19968;&#20010;&#33539;&#22260;&#20013;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/generate_n&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/generate n&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>generate_n</span></span></a></div>
</div>
</td>
<td>&#20445;&#23384; N &#27425;&#24212;&#29992;&#19968;&#20010;&#20989;&#25968;&#30340;&#32467;&#26524;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/remove&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/remove&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>remove</span><span>remove_if</span></span></a></div>
</div>
</td>
<td>&#31227;&#38500;&#28385;&#36275;&#29305;&#23450;&#21028;&#21035;&#26631;&#20934;&#30340;&#20803;&#32032;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/remove_copy&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/remove copy&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>remove_copy</span><span>remove_copy_if</span></span></a></div>
</div>
</td>
<td>&#22797;&#21046;&#20803;&#32032;&#33539;&#22260;&#65292;&#24573;&#30053;&#28385;&#36275;&#29305;&#23450;&#21028;&#21035;&#26631;&#20934;&#30340;&#20803;&#32032;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/replace&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/replace&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>replace</span><span>replace_if</span></span></a></div>
</div>
</td>
<td>&#23558;&#25152;&#26377;&#28385;&#36275;&#29305;&#23450;&#21028;&#21035;&#26631;&#20934;&#30340;&#20540;&#26367;&#25442;&#20026;&#21478;&#19968;&#20540;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/replace_copy&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/replace copy&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>replace_copy</span><span>replace_copy_if</span></span></a></div>
</div>
</td>
<td>&#22797;&#21046;&#33539;&#22260;&#65292;&#20197;&#21478;&#19968;&#20540;&#26367;&#25442;&#28385;&#36275;&#29305;&#23450;&#21028;&#21035;&#26631;&#20934;&#30340;&#20803;&#32032;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/swap_ranges&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/swap ranges&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>swap_ranges</span></span></a></div>
</div>
</td>
<td>&#20132;&#25442;&#20004;&#20010;&#20803;&#32032;&#33539;&#22260;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/reverse&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/reverse&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>reverse</span></span></a></div>
</div>
</td>
<td>&#36870;&#36716;&#33539;&#22260;&#20013;&#30340;&#20803;&#32032;&#39034;&#24207;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/reverse_copy&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/reverse copy&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>reverse_copy</span></span></a></div>
</div>
</td>
<td>&#21019;&#24314;&#19968;&#20010;&#33539;&#22260;&#30340;&#36870;&#21521;&#21103;&#26412;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/rotate&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/rotate&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>rotate</span></span></a></div>
</div>
</td>
<td>&#26059;&#36716;&#33539;&#22260;&#20013;&#30340;&#20803;&#32032;&#39034;&#24207;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/rotate_copy&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/rotate copy&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>rotate_copy</span></span></a></div>
</div>
</td>
<td>&#22797;&#21046;&#24182;&#26059;&#36716;&#20803;&#32032;&#33539;&#22260;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/shuffle&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/shuffle&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>shuffle</span></span></a></div>
</div>
</td>
<td>&#38543;&#26426;&#37325;&#25490;&#33539;&#22260;&#20013;&#30340;&#20803;&#32032;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/unique&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/unique&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>unique</span></span></a></div>
</div>
</td>
<td>&#31227;&#38500;&#33539;&#22260;&#20013;&#36830;&#32493;&#30340;&#37325;&#22797;&#20803;&#32032;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/unique_copy&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/unique copy&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>unique_copy</span></span></a></div>
</div>
</td>
<td>&#21019;&#24314;&#26576;&#33539;&#22260;&#30340;&#19981;&#21547;&#36830;&#32493;&#37325;&#22797;&#20803;&#32032;&#30340;&#21103;&#26412;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E5.88.92.E5.88.86.E6.93.8D.E4.BD.9C">&#21010;&#20998;&#25805;&#20316;</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/algorithm/is_partitioned&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/is partitioned&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>is_partitioned</span></span></a></div>
</div>
</td>
<td>&#21028;&#26029;&#33539;&#22260;&#26159;&#21542;&#24050;&#25353;&#32473;&#23450;&#30340;&#35859;&#35789;&#21010;&#20998;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/partition&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/partition&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>partition</span></span></a></div>
</div>
</td>
<td>&#23558;&#33539;&#22260;&#20013;&#30340;&#20803;&#32032;&#20998;&#20026;&#20004;&#32452;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/partition_copy&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/partition copy&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>partition_copy</span></span></a></div>
</div>
</td>
<td>&#22797;&#21046;&#19968;&#20010;&#33539;&#22260;&#65292;&#23558;&#21508;&#20803;&#32032;&#20998;&#20026;&#20004;&#32452;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/stable_partition&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/stable partition&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>stable_partition</span></span></a></div>
</div>
</td>
<td>&#21010;&#20998;&#20803;&#32032;&#21040;&#20004;&#20010;&#32452;&#20013;&#65292;&#21516;&#26102;&#20445;&#25345;&#20854;&#30456;&#23545;&#39034;&#24207;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/partition_point&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/partition point&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>partition_point</span></span></a></div>
</div>
</td>
<td>&#23450;&#20301;&#24050;&#21010;&#20998;&#33539;&#22260;&#30340;&#21010;&#20998;&#28857;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E6.8E.92.E5.BA.8F.E6.93.8D.E4.BD.9C">&#25490;&#24207;&#25805;&#20316;</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/algorithm/is_sorted&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/is sorted&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>is_sorted</span></span></a></div>
</div>
</td>
<td>&#26816;&#26597;&#33539;&#22260;&#26159;&#21542;&#20197;&#21319;&#24207;&#25490;&#24207;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/is_sorted_until&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/is sorted until&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>is_sorted_until</span></span></a></div>
</div>
</td>
<td>&#23547;&#25214;&#26368;&#22823;&#24050;&#25490;&#24207;&#23376;&#33539;&#22260;<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-algorithm-sort.html"><span class="t-lines"><span>sort</span></span></a></div>
</div>
</td>
<td>&#23558;&#33539;&#22260;&#25353;&#21319;&#24207;&#25490;&#24207;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/partial_sort&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/partial sort&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>partial_sort</span></span></a></div>
</div>
</td>
<td>&#25490;&#24207;&#19968;&#20010;&#33539;&#22260;&#30340;&#21069; N &#20010;&#20803;&#32032;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/partial_sort_copy&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/partial sort copy&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>partial_sort_copy</span></span></a></div>
</div>
</td>
<td>&#23545;&#33539;&#22260;&#20869;&#30340;&#20803;&#32032;&#36827;&#34892;&#22797;&#21046;&#24182;&#37096;&#20998;&#25490;&#24207;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/stable_sort&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/stable sort&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>stable_sort</span></span></a></div>
</div>
</td>
<td>&#23558;&#33539;&#22260;&#20869;&#30340;&#20803;&#32032;&#25490;&#24207;&#65292;&#21516;&#26102;&#20445;&#25345;&#30456;&#31561;&#30340;&#20803;&#32032;&#20043;&#38388;&#30340;&#39034;&#24207;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/nth_element&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/nth element&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>nth_element</span></span></a></div>
</div>
</td>
<td>&#23558;&#32473;&#23450;&#30340;&#33539;&#22260;&#37096;&#20998;&#25490;&#24207;&#65292;&#30830;&#20445;&#20854;&#25353;&#32473;&#23450;&#20803;&#32032;&#21010;&#20998;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".EF.BC.88.E5.B7.B2.E6.8E.92.E5.BA.8F.E8.8C.83.E5.9B.B4.E4.B8.8A.E7.9A.84.EF.BC.89.E4.BA.8C.E5.88.86.E6.90.9C.E7.B4.A2.E6.93.8D.E4.BD.9C">&#65288;&#24050;&#25490;&#24207;&#33539;&#22260;&#19978;&#30340;&#65289;&#20108;&#20998;&#25628;&#32034;&#25805;&#20316;</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/algorithm/lower_bound&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/lower bound&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>lower_bound</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#25351;&#21521;&#39318;&#20010;<i>&#19981;&#23567;&#20110;</i>&#32473;&#23450;&#20540;&#30340;&#20803;&#32032;&#30340;&#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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/upper_bound&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/upper bound&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>upper_bound</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#25351;&#21521;&#39318;&#20010;<i>&#22823;&#20110;</i>&#22266;&#23450;&#20540;&#30340;&#20803;&#32032;&#30340;&#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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/binary_search&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/binary search&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>binary_search</span></span></a></div>
</div>
</td>
<td>&#30830;&#23450;&#20803;&#32032;&#26159;&#21542;&#23384;&#22312;&#20110;&#22266;&#23450;&#33539;&#22260;&#20013;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/equal_range&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/equal range&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>equal_range</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#21305;&#37197;&#29305;&#23450;&#20851;&#38190;&#30340;&#20803;&#32032;&#33539;&#22260;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".EF.BC.88.E5.B7.B2.E6.8E.92.E5.BA.8F.E8.8C.83.E5.9B.B4.E4.B8.8A.E7.9A.84.EF.BC.89.E9.9B.86.E5.90.88.E6.93.8D.E4.BD.9C">&#65288;&#24050;&#25490;&#24207;&#33539;&#22260;&#19978;&#30340;&#65289;&#38598;&#21512;&#25805;&#20316;</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/algorithm/merge&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/merge&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>merge</span></span></a></div>
</div>
</td>
<td>&#24402;&#24182;&#20004;&#20010;&#24050;&#25490;&#24207;&#33539;&#22260;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/inplace_merge&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/inplace merge&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>inplace_merge</span></span></a></div>
</div>
</td>
<td>&#23601;&#22320;&#24402;&#24182;&#20004;&#20010;&#24050;&#25490;&#24207;&#33539;&#22260;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/includes&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/includes&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>includes</span></span></a></div>
</div>
</td>
<td>&#33509;&#19968;&#20010;&#38598;&#21512;&#26159;&#21478;&#19968;&#20010;&#30340;&#23376;&#38598;&#21017;&#36820;&#22238; true<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/set_difference&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/set difference&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>set_difference</span></span></a></div>
</div>
</td>
<td>&#35745;&#31639;&#20004;&#20010;&#38598;&#21512;&#30340;&#24046;&#38598;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/set_intersection&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/set intersection&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>set_intersection</span></span></a></div>
</div>
</td>
<td>&#35745;&#31639;&#20004;&#20010;&#38598;&#21512;&#30340;&#20132;&#38598;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/set_symmetric_difference&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/set symmetric difference&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>set_symmetric_difference</span></span></a></div>
</div>
</td>
<td>&#35745;&#31639;&#20004;&#20010;&#38598;&#21512;&#30340;&#23545;&#31216;&#24046;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/set_union&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/set union&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>set_union</span></span></a></div>
</div>
</td>
<td>&#35745;&#31639;&#20004;&#20010;&#38598;&#21512;&#30340;&#24182;&#38598;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E5.A0.86.E6.93.8D.E4.BD.9C">&#22534;&#25805;&#20316;</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/algorithm/is_heap&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/is heap&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>is_heap</span></span></a></div>
</div>
</td>
<td>&#26816;&#26597;&#32473;&#23450;&#33539;&#22260;&#26159;&#21542;&#20026;&#19968;&#20010;&#26368;&#22823;&#22534;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/is_heap_until&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/is heap until&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>is_heap_until</span></span></a></div>
</div>
</td>
<td>&#23547;&#25214;&#20316;&#20026;&#26368;&#22823;&#22534;&#30340;&#26368;&#22823;&#23376;&#33539;&#22260;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/make_heap&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/make heap&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>make_heap</span></span></a></div>
</div>
</td>
<td>&#20174;&#20803;&#32032;&#33539;&#22260;&#20013;&#21019;&#24314;&#20986;&#26368;&#22823;&#22534;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/push_heap&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/push heap&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>push_heap</span></span></a></div>
</div>
</td>
<td>&#28155;&#21152;&#20803;&#32032;&#21040;&#26368;&#22823;&#22534;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/pop_heap&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/pop heap&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>pop_heap</span></span></a></div>
</div>
</td>
<td>&#20174;&#26368;&#22823;&#22534;&#31227;&#38500;&#26368;&#22823;&#20803;&#32032;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/sort_heap&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/sort heap&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>sort_heap</span></span></a></div>
</div>
</td>
<td>&#23558;&#26368;&#22823;&#22534;&#36716;&#21270;&#25104;&#20197;&#21319;&#24207;&#25490;&#24207;&#30340;&#20803;&#32032;&#33539;&#22260;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E6.9C.80.E5.B0.8F.2F.E6.9C.80.E5.A4.A7.E6.93.8D.E4.BD.9C">&#26368;&#23567;/&#26368;&#22823;&#25805;&#20316;</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/algorithm/max&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/max&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>max</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#32473;&#23450;&#20540;&#30340;&#36739;&#22823;&#32773;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/max_element&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/max element&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>max_element</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#33539;&#22260;&#20013;&#30340;&#26368;&#22823;&#20803;&#32032;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/min&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/min&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>min</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#32473;&#23450;&#20540;&#30340;&#36739;&#23567;&#32773;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/min_element&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/min element&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>min_element</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#33539;&#22260;&#20013;&#30340;&#26368;&#23567;&#20803;&#32032;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/minmax&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/minmax&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>minmax</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#20108;&#20010;&#20803;&#32032;&#30340;&#36739;&#23567;&#21644;&#36739;&#22823;&#32773;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/minmax_element&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/minmax element&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>minmax_element</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#33539;&#22260;&#20013;&#30340;&#26368;&#23567;&#21644;&#26368;&#22823;&#20803;&#32032;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E6.8E.92.E5.88.97.E6.93.8D.E4.BD.9C">&#25490;&#21015;&#25805;&#20316;</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/algorithm/is_permutation&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/is permutation&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>is_permutation</span></span></a></div>
</div>
</td>
<td>&#21028;&#26029;&#19968;&#20010;&#24207;&#21015;&#26159;&#21542;&#20026;&#21478;&#19968;&#20010;&#24207;&#21015;&#30340;&#25490;&#21015;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/next_permutation&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/next permutation&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>next_permutation</span></span></a></div>
</div>
</td>
<td>&#20135;&#29983;&#26576;&#20010;&#20803;&#32032;&#33539;&#22260;&#30340;&#25353;&#23383;&#20856;&#39034;&#24207;&#30340;&#19979;&#19968;&#20010;&#36739;&#22823;&#30340;&#25490;&#21015;<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="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/prev_permutation&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/ranges/algorithm/prev permutation&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>prev_permutation</span></span></a></div>
</div>
</td>
<td>&#20135;&#29983;&#26576;&#20010;&#20803;&#32032;&#33539;&#22260;&#30340;&#25353;&#23383;&#20856;&#39034;&#24207;&#30340;&#19979;&#19968;&#20010;&#36739;&#23567;&#30340;&#25490;&#21015;<br />
<span class="t-mark">(&#20989;&#25968;&#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="co2">#include &lt;initializer_list&gt;</span>
<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">namespace</span> tag <span class="br0">{</span>
<span class="kw1">struct</span> in<span class="sy4">;</span>
<span class="kw1">struct</span> in1<span class="sy4">;</span>
<span class="kw1">struct</span> in2<span class="sy4">;</span>
<span class="kw1">struct</span> out<span class="sy4">;</span>
<span class="kw1">struct</span> out1<span class="sy4">;</span>
<span class="kw1">struct</span> out2<span class="sy4">;</span>
<span class="kw1">struct</span> fun<span class="sy4">;</span>
<span class="kw1">struct</span> min<span class="sy4">;</span>
<span class="kw1">struct</span> max<span class="sy4">;</span>
<span class="kw1">struct</span> begin<span class="sy4">;</span>
<span class="kw1">struct</span> end<span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">bool</span> all_of<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<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>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">bool</span> all_of<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<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>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">bool</span> any_of<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<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>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">bool</span> any_of<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<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>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">bool</span> none_of<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<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>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">bool</span> none_of<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<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>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryInvocable<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Fun<span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">fun</span><span class="br0">(</span>Fun<span class="br0">)</span><span class="sy1">&gt;</span>
for_each<span class="br0">(</span>I first, S last, Fun f, Proj proj <span class="sy1">=</span> Proj<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>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryInvocable<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Fun<span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">fun</span><span class="br0">(</span>Fun<span class="br0">)</span><span class="sy1">&gt;</span>
for_each<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Fun f, Proj proj <span class="sy1">=</span> Proj<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>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires IndirectRelation<span class="sy1">&lt;</span>equal_to<span class="sy1">&lt;&gt;</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">&gt;</span>
I find<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Proj proj <span class="sy1">=</span> Proj<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>InputRange Rng, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires IndirectRelation<span class="sy1">&lt;</span>equal_to<span class="sy1">&lt;&gt;</span>, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
find<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Proj proj <span class="sy1">=</span> Proj<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>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
I find_if<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<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>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
find_if<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<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>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
I find_if_not<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<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>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
find_if_not<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<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>ForwardIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, ForwardIterator I2,
Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectRelation<span class="sy1">&lt;</span>I2, projected<span class="sy1">&lt;</span>I1, Proj<span class="sy1">&gt;&gt;</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
I1
find_end<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2,
Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>ForwardRange Rng1, ForwardRange Rng2, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectRelation<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>,
projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>
find_end<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>InputIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, ForwardIterator I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
IndirectRelation<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I1, Proj1<span class="sy1">&gt;</span>, projected<span class="sy1">&lt;</span>I2, Proj2<span class="sy1">&gt;&gt;</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
I1
find_first_of<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2,
Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<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>InputRange Rng1, ForwardRange Rng2, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity,
<span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
IndirectRelation<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, Proj1<span class="sy1">&gt;</span>,
projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, Proj2<span class="sy1">&gt;&gt;</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>
find_first_of<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2,
Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<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>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectRelation<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
I
adjacent_find<span class="br0">(</span>I first, S last, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
Proj proj <span class="sy1">=</span> Proj<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>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectRelation<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
adjacent_find<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires IndirectRelation<span class="sy1">&lt;</span>equal_to<span class="sy1">&lt;&gt;</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">&gt;</span>
difference_type_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>
count<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Proj proj <span class="sy1">=</span> Proj<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>InputRange Rng, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires IndirectRelation<span class="sy1">&lt;</span>equal_to<span class="sy1">&lt;&gt;</span>, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">&gt;</span>
difference_type_t<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span>
count<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Proj proj <span class="sy1">=</span> Proj<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>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
difference_type_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>
count_if<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<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>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
difference_type_t<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span>
count_if<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<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>InputIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, InputIterator I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
IndirectRelation<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I1, Proj1<span class="sy1">&gt;</span>, projected<span class="sy1">&lt;</span>I2, Proj2<span class="sy1">&gt;&gt;</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>I1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>I2<span class="br0">)</span><span class="sy1">&gt;</span>
mismatch<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<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>InputRange Rng1, InputRange Rng2,
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
IndirectRelation<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, Proj1<span class="sy1">&gt;</span>,
projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, Proj2<span class="sy1">&gt;&gt;</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span><span class="br0">)</span>,
tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span><span class="br0">)</span><span class="sy1">&gt;</span>
mismatch<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<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>InputIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, InputIterator I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
<span class="kw1">class</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires IndirectlyComparable<span class="sy1">&lt;</span>I1, I2, Pred, Proj1, Proj2<span class="sy1">&gt;</span>
<span class="kw4">bool</span> equal<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2,
Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<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>InputRange Rng1, InputRange Rng2, <span class="kw1">class</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;</span>,
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires IndirectlyComparable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, Pred, Proj1, Proj2<span class="sy1">&gt;</span>
<span class="kw4">bool</span> equal<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<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>ForwardIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, ForwardIterator I2,
Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2, <span class="kw1">class</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity,
<span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires IndirectlyComparable<span class="sy1">&lt;</span>I1, I2, Pred, Proj1, Proj2<span class="sy1">&gt;</span>
<span class="kw4">bool</span> is_permutation<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2,
Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<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>ForwardRange Rng1, ForwardRange Rng2, <span class="kw1">class</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;</span>,
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires IndirectlyComparable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, Pred, Proj1, Proj2<span class="sy1">&gt;</span>
<span class="kw4">bool</span> is_permutation<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<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>ForwardIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, ForwardIterator I2,
Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2, <span class="kw1">class</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;</span>,
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires IndirectlyComparable<span class="sy1">&lt;</span>I1, I2, Pred, Proj1, Proj2<span class="sy1">&gt;</span>
I1
search<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2,
Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<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>ForwardRange Rng1, ForwardRange Rng2, <span class="kw1">class</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;</span>,
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires IndirectlyComparable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, Pred, Proj1, Proj2<span class="sy1">&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>
search<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<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>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T,
<span class="kw1">class</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires IndirectlyComparable<span class="sy1">&lt;</span>I, <span class="kw4">const</span> T<span class="sy2">*</span>, Pred, Proj<span class="sy1">&gt;</span>
I
search_n<span class="br0">(</span>I first, S last, difference_type_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> count,
<span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
Proj proj <span class="sy1">=</span> Proj<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>ForwardRange Rng, <span class="kw1">class</span> T, <span class="kw1">class</span> Pred <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;</span>,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires IndirectlyComparable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy2">*</span>, Pred, Proj<span class="sy1">&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
search_n<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, difference_type_t<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span> count,
<span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, WeaklyIncrementable O<span class="sy1">&gt;</span>
requires IndirectlyCopyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
copy<span class="br0">(</span>I first, S last, O result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng, WeaklyIncrementable O<span class="sy1">&gt;</span>
requires IndirectlyCopyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
copy<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, O result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, WeaklyIncrementable O<span class="sy1">&gt;</span>
requires IndirectlyCopyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
copy_n<span class="br0">(</span>I first, difference_type_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> n, O result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, WeaklyIncrementable O, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires IndirectlyCopyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
copy_if<span class="br0">(</span>I first, S last, O result, Pred pred, Proj proj <span class="sy1">=</span> Proj<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>InputRange Rng, WeaklyIncrementable O, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires IndirectlyCopyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
copy_if<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, O result, Pred pred, Proj proj <span class="sy1">=</span> Proj<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>BidirectionalIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, BidirectionalIterator I2<span class="sy1">&gt;</span>
requires IndirectlyCopyable<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>I2<span class="br0">)</span><span class="sy1">&gt;</span>
copy_backward<span class="br0">(</span>I1 first, S1 last, I2 result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>BidirectionalRange Rng, BidirectionalIterator I<span class="sy1">&gt;</span>
requires IndirectlyCopyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, I<span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>I<span class="br0">)</span><span class="sy1">&gt;</span>
copy_backward<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, I result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, WeaklyIncrementable O<span class="sy1">&gt;</span>
requires IndirectlyMovable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
move<span class="br0">(</span>I first, S last, O result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputRange Rng, WeaklyIncrementable O<span class="sy1">&gt;</span>
requires IndirectlyMovable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
move<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, O result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>BidirectionalIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, BidirectionalIterator I2<span class="sy1">&gt;</span>
requires IndirectlyMovable<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>I2<span class="br0">)</span><span class="sy1">&gt;</span>
move_backward<span class="br0">(</span>I1 first, S1 last, I2 result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>BidirectionalRange Rng, BidirectionalIterator I<span class="sy1">&gt;</span>
requires IndirectlyMovable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, I<span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>I<span class="br0">)</span><span class="sy1">&gt;</span>
move_backward<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, I result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, ForwardIterator I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2<span class="sy1">&gt;</span>
requires IndirectlySwappable<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>I1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>I2<span class="br0">)</span><span class="sy1">&gt;</span>
swap_ranges<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardRange Rng1, ForwardRange Rng2<span class="sy1">&gt;</span>
requires IndirectlySwappable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span><span class="br0">)</span><span class="sy1">&gt;</span>
swap_ranges<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, WeaklyIncrementable O,
CopyConstructible F, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Writable<span class="sy1">&lt;</span>O, indirect_result_of_t<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span><span class="br0">(</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;</span><span class="br0">)</span><span class="sy1">&gt;&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
transform<span class="br0">(</span>I first, S last, O result, F op, Proj proj <span class="sy1">=</span> Proj<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>InputRange Rng, WeaklyIncrementable O, CopyConstructible F,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Writable<span class="sy1">&lt;</span>O, indirect_result_of_t<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span><span class="br0">(</span>
projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;</span><span class="br0">)</span><span class="sy1">&gt;&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
transform<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, O result, F op, Proj proj <span class="sy1">=</span> Proj<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>InputIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, InputIterator I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
WeaklyIncrementable O, CopyConstructible F, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity,
<span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Writable<span class="sy1">&lt;</span>O, indirect_result_of_t<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span><span class="br0">(</span>projected<span class="sy1">&lt;</span>I1, Proj1<span class="sy1">&gt;</span>,
projected<span class="sy1">&lt;</span>I2, Proj2<span class="sy1">&gt;</span><span class="br0">)</span><span class="sy1">&gt;&gt;</span>
tagged_tuple<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>I1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>I2<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
transform<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, O result,
F binary_op, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<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>InputRange Rng1, InputRange Rng2, WeaklyIncrementable O,
CopyConstructible F, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Writable<span class="sy1">&lt;</span>O, indirect_result_of_t<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span><span class="br0">(</span>
projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, Proj1<span class="sy1">&gt;</span>, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, Proj2<span class="sy1">&gt;</span><span class="br0">)</span><span class="sy1">&gt;&gt;</span>
tagged_tuple<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span><span class="br0">)</span>,
tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span><span class="br0">)</span>,
tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
transform<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2, O result,
F binary_op, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<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>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T1, <span class="kw1">class</span> T2, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Writable<span class="sy1">&lt;</span>I, <span class="kw4">const</span> T2<span class="sy3">&amp;</span><span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
IndirectRelation<span class="sy1">&lt;</span>equal_to<span class="sy1">&lt;&gt;</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T1<span class="sy2">*</span><span class="sy1">&gt;</span>
I
replace<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T1<span class="sy3">&amp;</span> old_value, <span class="kw4">const</span> T2<span class="sy3">&amp;</span> new_value, Proj proj <span class="sy1">=</span> Proj<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>InputRange Rng, <span class="kw1">class</span> T1, <span class="kw1">class</span> T2, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Writable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, <span class="kw4">const</span> T2<span class="sy3">&amp;</span><span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
IndirectRelation<span class="sy1">&lt;</span>equal_to<span class="sy1">&lt;&gt;</span>, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T1<span class="sy2">*</span><span class="sy1">&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
replace<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, <span class="kw4">const</span> T1<span class="sy3">&amp;</span> old_value, <span class="kw4">const</span> T2<span class="sy3">&amp;</span> new_value, Proj proj <span class="sy1">=</span> Proj<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>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires Writable<span class="sy1">&lt;</span>I, <span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="sy1">&gt;</span>
I
replace_if<span class="br0">(</span>I first, S last, Pred pred, <span class="kw4">const</span> T<span class="sy3">&amp;</span> new_value, Proj proj <span class="sy1">=</span> Proj<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>InputRange Rng, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires Writable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="sy1">&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
replace_if<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Pred pred, <span class="kw4">const</span> T<span class="sy3">&amp;</span> new_value, Proj proj <span class="sy1">=</span> Proj<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>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T1, <span class="kw1">class</span> T2, OutputIterator<span class="sy1">&lt;</span><span class="kw4">const</span> T2<span class="sy3">&amp;</span><span class="sy1">&gt;</span> O,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires IndirectlyCopyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
IndirectRelation<span class="sy1">&lt;</span>equal_to<span class="sy1">&lt;&gt;</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T1<span class="sy2">*</span><span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
replace_copy<span class="br0">(</span>I first, S last, O result, <span class="kw4">const</span> T1<span class="sy3">&amp;</span> old_value, <span class="kw4">const</span> T2<span class="sy3">&amp;</span> new_value,
Proj proj <span class="sy1">=</span> Proj<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>InputRange Rng, <span class="kw1">class</span> T1, <span class="kw1">class</span> T2, OutputIterator<span class="sy1">&lt;</span><span class="kw4">const</span> T2<span class="sy3">&amp;</span><span class="sy1">&gt;</span> O,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires IndirectlyCopyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
IndirectRelation<span class="sy1">&lt;</span>equal_to<span class="sy1">&lt;&gt;</span>, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T1<span class="sy2">*</span><span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
replace_copy<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, O result, <span class="kw4">const</span> T1<span class="sy3">&amp;</span> old_value, <span class="kw4">const</span> T2<span class="sy3">&amp;</span> new_value,
Proj proj <span class="sy1">=</span> Proj<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>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T, OutputIterator<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="sy1">&gt;</span> O,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity, IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires IndirectlyCopyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
replace_copy_if<span class="br0">(</span>I first, S last, O result, Pred pred, <span class="kw4">const</span> T<span class="sy3">&amp;</span> new_value,
Proj proj <span class="sy1">=</span> Proj<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>InputRange Rng, <span class="kw1">class</span> T, OutputIterator<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="sy1">&gt;</span> O, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires IndirectlyCopyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
replace_copy_if<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, O result, Pred pred, <span class="kw4">const</span> T<span class="sy3">&amp;</span> new_value,
Proj proj <span class="sy1">=</span> Proj<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> T, OutputIterator<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="sy1">&gt;</span> O, Sentinel<span class="sy1">&lt;</span>O<span class="sy1">&gt;</span> S<span class="sy1">&gt;</span>
O fill<span class="br0">(</span>O first, S last, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> T, OutputRange<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="sy1">&gt;</span> Rng<span class="sy1">&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
fill<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> T, OutputIterator<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="sy1">&gt;</span> O<span class="sy1">&gt;</span>
O fill_n<span class="br0">(</span>O first, difference_type_t<span class="sy1">&lt;</span>O<span class="sy1">&gt;</span> n, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>Iterator O, Sentinel<span class="sy1">&lt;</span>O<span class="sy1">&gt;</span> S, CopyConstructible F<span class="sy1">&gt;</span>
requires Invocable<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span><span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span> Writable<span class="sy1">&lt;</span>O, result_of_t<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span><span class="br0">(</span><span class="br0">)</span><span class="sy1">&gt;&gt;</span>
O generate<span class="br0">(</span>O first, S last, F gen<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> Rng, CopyConstructible F<span class="sy1">&gt;</span>
requires Invocable<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span><span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span> OutputRange<span class="sy1">&lt;</span>Rng, result_of_t<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span><span class="br0">(</span><span class="br0">)</span><span class="sy1">&gt;&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
generate<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, F gen<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>Iterator O, CopyConstructible F<span class="sy1">&gt;</span>
requires Invocable<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span><span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span> Writable<span class="sy1">&lt;</span>O, result_of_t<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span><span class="br0">(</span><span class="br0">)</span><span class="sy1">&gt;&gt;</span>
O generate_n<span class="br0">(</span>O first, difference_type_t<span class="sy1">&lt;</span>O<span class="sy1">&gt;</span> n, F gen<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Permutable<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
IndirectRelation<span class="sy1">&lt;</span>equal_to<span class="sy1">&lt;&gt;</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">&gt;</span>
I remove<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Proj proj <span class="sy1">=</span> Proj<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>ForwardRange Rng, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Permutable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span> <span class="sy3">&amp;&amp;</span>
IndirectRelation<span class="sy1">&lt;</span>equal_to<span class="sy1">&lt;&gt;</span>, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
remove<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Proj proj <span class="sy1">=</span> Proj<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>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires Permutable<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>
I remove_if<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<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>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires Permutable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
remove_if<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<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>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, WeaklyIncrementable O, <span class="kw1">class</span> T,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires IndirectlyCopyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
IndirectRelation<span class="sy1">&lt;</span>equal_to<span class="sy1">&lt;&gt;</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
remove_copy<span class="br0">(</span>I first, S last, O result, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Proj proj <span class="sy1">=</span> Proj<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>InputRange Rng, WeaklyIncrementable O, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires IndirectlyCopyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
IndirectRelation<span class="sy1">&lt;</span>equal_to<span class="sy1">&lt;&gt;</span>, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
remove_copy<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, O result, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Proj proj <span class="sy1">=</span> Proj<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>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, WeaklyIncrementable O,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity, IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires IndirectlyCopyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
remove_copy_if<span class="br0">(</span>I first, S last, O result, Pred pred, Proj proj <span class="sy1">=</span> Proj<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>InputRange Rng, WeaklyIncrementable O, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires IndirectlyCopyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
remove_copy_if<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, O result, Pred pred, Proj proj <span class="sy1">=</span> Proj<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>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectRelation<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> R <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
requires Permutable<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>
I unique<span class="br0">(</span>I first, S last, R comp <span class="sy1">=</span> R<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectRelation<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> R <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
requires Permutable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
unique<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, R comp <span class="sy1">=</span> R<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, WeaklyIncrementable O,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity, IndirectRelation<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> R <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
requires IndirectlyCopyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
<span class="br0">(</span>ForwardIterator<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> <span class="sy3">||</span>
<span class="br0">(</span>InputIterator<span class="sy1">&lt;</span>O<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span> Same<span class="sy1">&lt;</span>value_type_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>, value_type_t<span class="sy1">&lt;</span>O<span class="sy1">&gt;&gt;</span><span class="br0">)</span> <span class="sy3">||</span>
IndirectlyCopyableStorable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span><span class="br0">)</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
unique_copy<span class="br0">(</span>I first, S last, O result, R comp <span class="sy1">=</span> R<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>InputRange Rng, WeaklyIncrementable O, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectRelation<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> R <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
requires IndirectlyCopyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
<span class="br0">(</span>ForwardIterator<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span> <span class="sy3">||</span>
<span class="br0">(</span>InputIterator<span class="sy1">&lt;</span>O<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span> Same<span class="sy1">&lt;</span>value_type_t<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span>, value_type_t<span class="sy1">&lt;</span>O<span class="sy1">&gt;&gt;</span><span class="br0">)</span> <span class="sy3">||</span>
IndirectlyCopyableStorable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span><span class="br0">)</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
unique_copy<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, O result, R comp <span class="sy1">=</span> R<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>BidirectionalIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S<span class="sy1">&gt;</span>
requires Permutable<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>
I reverse<span class="br0">(</span>I first, S last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>BidirectionalRange Rng<span class="sy1">&gt;</span>
requires Permutable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
reverse<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>BidirectionalIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, WeaklyIncrementable O<span class="sy1">&gt;</span>
requires IndirectlyCopyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span> reverse_copy<span class="br0">(</span>I first, S last, O result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>BidirectionalRange Rng, WeaklyIncrementable O<span class="sy1">&gt;</span>
requires IndirectlyCopyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
reverse_copy<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, O result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S<span class="sy1">&gt;</span>
requires Permutable<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">begin</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">end</span><span class="br0">(</span>I<span class="br0">)</span><span class="sy1">&gt;</span>
rotate<span class="br0">(</span>I first, I middle, S last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardRange Rng<span class="sy1">&gt;</span>
requires Permutable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">begin</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>,
tag<span class="sy4">::</span><span class="me2">end</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span><span class="sy1">&gt;</span>
rotate<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span> middle<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, WeaklyIncrementable O<span class="sy1">&gt;</span>
requires IndirectlyCopyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
rotate_copy<span class="br0">(</span>I first, I middle, S last, O result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>ForwardRange Rng, WeaklyIncrementable O<span class="sy1">&gt;</span>
requires IndirectlyCopyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
rotate_copy<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span> middle, O result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>RandomAccessIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Gen<span class="sy1">&gt;</span>
requires Permutable<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
UniformRandomNumberGenerator<span class="sy1">&lt;</span>remove_reference_t<span class="sy1">&lt;</span>Gen<span class="sy1">&gt;&gt;</span> <span class="sy3">&amp;&amp;</span>
ConvertibleTo<span class="sy1">&lt;</span>result_of_t<span class="sy1">&lt;</span>Gen<span class="sy3">&amp;</span><span class="br0">(</span><span class="br0">)</span><span class="sy1">&gt;</span>, difference_type_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;&gt;</span>
I shuffle<span class="br0">(</span>I first, S last, Gen<span class="sy3">&amp;&amp;</span> g<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>RandomAccessRange Rng, <span class="kw1">class</span> Gen<span class="sy1">&gt;</span>
requires Permutable<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
UniformRandomNumberGenerator<span class="sy1">&lt;</span>remove_reference_t<span class="sy1">&lt;</span>Gen<span class="sy1">&gt;&gt;</span> <span class="sy3">&amp;&amp;</span>
ConvertibleTo<span class="sy1">&lt;</span>result_of_t<span class="sy1">&lt;</span>Gen<span class="sy3">&amp;</span><span class="br0">(</span><span class="br0">)</span><span class="sy1">&gt;</span>, difference_type_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
shuffle<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Gen<span class="sy3">&amp;&amp;</span> g<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">bool</span> is_partitioned<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<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>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">bool</span>
is_partitioned<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<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>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires Permutable<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>
I partition<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<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>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires Permutable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
partition<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<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>BidirectionalIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires Permutable<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>
I stable_partition<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<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>BidirectionalRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires Permutable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
stable_partition<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<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>InputIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, WeaklyIncrementable O1, WeaklyIncrementable O2,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity, IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires IndirectlyCopyable<span class="sy1">&lt;</span>I, O1<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span> IndirectlyCopyable<span class="sy1">&lt;</span>I, O2<span class="sy1">&gt;</span>
tagged_tuple<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out1</span><span class="br0">(</span>O1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out2</span><span class="br0">(</span>O2<span class="br0">)</span><span class="sy1">&gt;</span>
partition_copy<span class="br0">(</span>I first, S last, O1 out_true, O2 out_false, Pred pred,
Proj proj <span class="sy1">=</span> Proj<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>InputRange Rng, WeaklyIncrementable O1, WeaklyIncrementable O2,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires IndirectlyCopyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, O1<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
IndirectlyCopyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, O2<span class="sy1">&gt;</span>
tagged_tuple<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out1</span><span class="br0">(</span>O1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out2</span><span class="br0">(</span>O2<span class="br0">)</span><span class="sy1">&gt;</span>
partition_copy<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, O1 out_true, O2 out_false, Pred pred, Proj proj <span class="sy1">=</span> Proj<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>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
I partition_point<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<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>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectUnaryPredicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
partition_point<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<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>RandomAccessIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
I sort<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>RandomAccessRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
sort<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>RandomAccessIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
I stable_sort<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>RandomAccessRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
stable_sort<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>RandomAccessIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
I partial_sort<span class="br0">(</span>I first, I middle, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>RandomAccessRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
partial_sort<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span> middle, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
Proj proj <span class="sy1">=</span> Proj<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>InputIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, RandomAccessIterator I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
<span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires IndirectlyCopyable<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span> Sortable<span class="sy1">&lt;</span>I2, Comp, Proj2<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
IndirectStrictWeakOrder<span class="sy1">&lt;</span>Comp, projected<span class="sy1">&lt;</span>I1, Proj1<span class="sy1">&gt;</span>, projected<span class="sy1">&lt;</span>I2, Proj2<span class="sy1">&gt;&gt;</span>
I2
partial_sort_copy<span class="br0">(</span>I1 first, S1 last, I2 result_first, S2 result_last,
Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<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>InputRange Rng1, RandomAccessRange Rng2, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires IndirectlyCopyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;&gt;</span> <span class="sy3">&amp;&amp;</span>
Sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, Comp, Proj2<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
IndirectStrictWeakOrder<span class="sy1">&lt;</span>Comp, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, Proj1<span class="sy1">&gt;</span>,
projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, Proj2<span class="sy1">&gt;&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>
partial_sort_copy<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng, Rng2<span class="sy3">&amp;&amp;</span> result_rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<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>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
<span class="kw4">bool</span> is_sorted<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
<span class="kw4">bool</span>
is_sorted<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
I is_sorted_until<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
is_sorted_until<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>RandomAccessIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
I nth_element<span class="br0">(</span>I first, I nth, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>RandomAccessRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
nth_element<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span> nth, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
I
lower_bound<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
Proj proj <span class="sy1">=</span> Proj<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>ForwardRange Rng, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
lower_bound<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
I
upper_bound<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>ForwardRange Rng, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
upper_bound<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">begin</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">end</span><span class="br0">(</span>I<span class="br0">)</span><span class="sy1">&gt;</span>
equal_range<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>ForwardRange Rng, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">begin</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>,
tag<span class="sy4">::</span><span class="me2">end</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span><span class="sy1">&gt;</span>
equal_range<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
<span class="kw4">bool</span>
binary_search<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
Proj proj <span class="sy1">=</span> Proj<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>ForwardRange Rng, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
<span class="kw4">bool</span>
binary_search<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
Proj proj <span class="sy1">=</span> Proj<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>InputIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, InputIterator I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
WeaklyIncrementable O, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity,
<span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Mergeable<span class="sy1">&lt;</span>I1, I2, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
tagged_tuple<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>I1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>I2<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
merge<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, O result,
Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<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>InputRange Rng1, InputRange Rng2, WeaklyIncrementable O, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Mergeable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
tagged_tuple<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span><span class="br0">)</span>,
tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span><span class="br0">)</span>,
tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
merge<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2, O result,
Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<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>BidirectionalIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
I
inplace_merge<span class="br0">(</span>I first, I middle, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>BidirectionalRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
inplace_merge<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span> middle, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
Proj proj <span class="sy1">=</span> Proj<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>InputIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, InputIterator I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I1, Proj1<span class="sy1">&gt;</span>, projected<span class="sy1">&lt;</span>I2, Proj2<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
<span class="kw4">bool</span>
includes<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<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>InputRange Rng1, InputRange Rng2, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity,
<span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, Proj1<span class="sy1">&gt;</span>,
projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, Proj2<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
<span class="kw4">bool</span>
includes<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<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>InputIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, InputIterator I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
WeaklyIncrementable O, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Mergeable<span class="sy1">&lt;</span>I1, I2, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
tagged_tuple<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>I1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>I2<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
set_union<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, O result, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<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>InputRange Rng1, InputRange Rng2, WeaklyIncrementable O,
<span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Mergeable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
tagged_tuple<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span><span class="br0">)</span>,
tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span><span class="br0">)</span>,
tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
set_union<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2, O result, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<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>InputIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, InputIterator I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
WeaklyIncrementable O, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Mergeable<span class="sy1">&lt;</span>I1, I2, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
O
set_intersection<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, O result,
Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<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>InputRange Rng1, InputRange Rng2, WeaklyIncrementable O,
<span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Mergeable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
O
set_intersection<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2, O result,
Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<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>InputIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, InputIterator I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
WeaklyIncrementable O, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Mergeable<span class="sy1">&lt;</span>I1, I2, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>I1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
set_difference<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, O result,
Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<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>InputRange Rng1, InputRange Rng2, WeaklyIncrementable O,
<span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Mergeable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
set_difference<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2, O result,
Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<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>InputIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, InputIterator I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
WeaklyIncrementable O, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Mergeable<span class="sy1">&lt;</span>I1, I2, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
tagged_tuple<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>I1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>I2<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
set_symmetric_difference<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, O result,
Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>,
Proj2 proj2 <span class="sy1">=</span> Proj2<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>InputRange Rng1, InputRange Rng2, WeaklyIncrementable O,
<span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Mergeable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
tagged_tuple<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span><span class="br0">)</span>,
tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span><span class="br0">)</span>,
tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">&gt;</span>
set_symmetric_difference<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2, O result, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<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>RandomAccessIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
I push_heap<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">==</span> Proj<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>RandomAccessRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
push_heap<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>RandomAccessIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
I pop_heap<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>RandomAccessRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
pop_heap<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>RandomAccessIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
I make_heap<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>RandomAccessRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
make_heap<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>RandomAccessIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
I sort_heap<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>RandomAccessRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
sort_heap<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>RandomAccessIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
<span class="kw4">bool</span> is_heap<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>RandomAccessRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
<span class="kw4">bool</span>
is_heap<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>RandomAccessIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
I is_heap_until<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>RandomAccessRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
is_heap_until<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">const</span> T<span class="sy3">&amp;</span> min<span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> a, <span class="kw4">const</span> T<span class="sy3">&amp;</span> b, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>Copyable T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
<span class="kw4">constexpr</span> T min<span class="br0">(</span>initializer_list<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span> t, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
requires Copyable<span class="sy1">&lt;</span>value_type_t<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;&gt;</span>
value_type_t<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span>
min<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">const</span> T<span class="sy3">&amp;</span> max<span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> a, <span class="kw4">const</span> T<span class="sy3">&amp;</span> b, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>Copyable T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
<span class="kw4">constexpr</span> T max<span class="br0">(</span>initializer_list<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span> t, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
requires Copyable<span class="sy1">&lt;</span>value_type_t<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;&gt;</span>
value_type_t<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span>
max<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
<span class="kw4">constexpr</span> tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">min</span><span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">max</span><span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="br0">)</span><span class="sy1">&gt;</span>
minmax<span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> a, <span class="kw4">const</span> T<span class="sy3">&amp;</span> b, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>Copyable T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
<span class="kw4">constexpr</span> tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">min</span><span class="br0">(</span>T<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">max</span><span class="br0">(</span>T<span class="br0">)</span><span class="sy1">&gt;</span>
minmax<span class="br0">(</span>initializer_list<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span> t, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
requires Copyable<span class="sy1">&lt;</span>value_type_t<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">min</span><span class="br0">(</span>value_type_t<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span><span class="br0">)</span>,
tag<span class="sy4">::</span><span class="me2">max</span><span class="br0">(</span>value_type_t<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;&gt;</span><span class="br0">)</span><span class="sy1">&gt;</span>
minmax<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
I min_element<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
min_element<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
I max_element<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>
max_element<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>ForwardIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">min</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">max</span><span class="br0">(</span>I<span class="br0">)</span><span class="sy1">&gt;</span>
minmax_element<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
tagged_pair<span class="sy1">&lt;</span>tag<span class="sy4">::</span><span class="me2">min</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span>,
tag<span class="sy4">::</span><span class="me2">max</span><span class="br0">(</span>safe_iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span><span class="br0">)</span><span class="sy1">&gt;</span>
minmax_element<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>InputIterator I1, Sentinel<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, InputIterator I2, Sentinel<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I1, Proj1<span class="sy1">&gt;</span>, projected<span class="sy1">&lt;</span>I2, Proj2<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
<span class="kw4">bool</span>
lexicographical_compare<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2,
Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<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>InputRange Rng1, InputRange Rng2, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity,
<span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
IndirectStrictWeakOrder<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng1<span class="sy1">&gt;</span>, Proj1<span class="sy1">&gt;</span>,
projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng2<span class="sy1">&gt;</span>, Proj2<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;&gt;</span>
<span class="kw4">bool</span>
lexicographical_compare<span class="br0">(</span>Rng1<span class="sy3">&amp;&amp;</span> rng1, Rng2<span class="sy3">&amp;&amp;</span> rng2, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<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>BidirectionalIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
<span class="kw4">bool</span> next_permutation<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>BidirectionalRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
<span class="kw4">bool</span>
next_permutation<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>BidirectionalIterator I, Sentinel<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
<span class="kw4">bool</span> prev_permutation<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<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>BidirectionalRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1">&lt;&gt;</span>,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires Sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>Rng<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
<span class="kw4">bool</span>
prev_permutation<span class="br0">(</span>Rng<span class="sy3">&amp;&amp;</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span><span class="br0">}</span><span class="br0">}</span><span class="br0">}</span></pre></div>
</div>
</div>
<div class="visualClear"></div>
</div>
</div>
</div>
</body>
</html>