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

1556 lines
147 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>&#26631;&#20934;&#24211;&#22836;&#25991;&#20214; &lt;functional&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_functional 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%">&#26631;&#20934;&#24211;&#22836;&#25991;&#20214;</span> &lt;functional&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></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-utility-functional.html">&#20989;&#25968;&#23545;&#35937;</a>&#24211;&#30340;&#19968;&#37096;&#20998;&#24182;&#25552;&#20379;&#26631;&#20934;<a href="cpp-utility-hash.html">&#25955;&#21015;&#20989;&#25968;</a>&#12290;</p>
<table class="t-dsc-begin">
<tr>
<td colspan="2">
<h3><span class="mw-headline" id=".E5.91.BD.E5.90.8D.E7.A9.BA.E9.97.B4">&#21629;&#21517;&#31354;&#38388;</span></h3>
</td>
</tr>
<tr class="t-dsc">
<td><a href="cpp-utility-functional-placeholders.html"><tt>placeholders</tt></a> <span class="t-mark-rev t-since-cxx11">(C++11)</span></td>
<td>&#23545; <span class="t-lc"><a href="cpp-utility-functional-bind.html">std::bind</a></span> &#34920;&#36798;&#24335;&#20013;&#30340;&#26410;&#32465;&#23450;&#23454;&#21442;&#25552;&#20379;&#21344;&#20301;&#31526;</td>
</tr>
<tr>
<td colspan="2">
<h3><span class="mw-headline" id=".E7.B1.BB">&#31867;</span></h3>
</td>
</tr>
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E5.8C.85.E8.A3.85">&#21253;&#35013;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-function.html"><span class="t-lines"><span>function</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#21253;&#35013;&#20855;&#26377;&#25351;&#23450;&#20989;&#25968;&#35843;&#29992;&#31614;&#21517;&#30340;&#20219;&#24847;&#21487;&#22797;&#21046;&#26500;&#36896;&#31867;&#22411;&#30340;&#21487;&#35843;&#29992;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-move_only_function.html"><span class="t-lines"><span>move_only_function</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx23">(C++23)</span></span></span></div>
</div>
</td>
<td>&#21253;&#35013;&#20855;&#26377;&#25351;&#23450;&#20989;&#25968;&#35843;&#29992;&#31614;&#21517;&#30340;&#20219;&#24847;&#31867;&#22411;&#30340;&#21487;&#35843;&#29992;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-mem_fn.html"><span class="t-lines"><span>mem_fn</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#20174;&#25104;&#21592;&#25351;&#38024;&#21019;&#24314;&#20986;&#20989;&#25968;&#23545;&#35937;<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-utility-functional-reference_wrapper.html"><span class="t-lines"><span>reference_wrapper</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td><a href="cpp-named_req-CopyConstructible.html"><span style="font-style:italic">&#21487;&#22797;&#21046;&#26500;&#36896;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(CopyConstructible)</span></a> &#19988;<a href="cpp-named_req-CopyAssignable.html"><span style="font-style:italic">&#21487;&#22797;&#21046;&#36171;&#20540;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(CopyAssignable)</span></a> &#30340;&#24341;&#29992;&#21253;&#35013;&#22120;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E8.BE.85.E5.8A.A9.E7.B1.BB">&#36741;&#21161;&#31867;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-bad_function_call.html"><span class="t-lines"><span>bad_function_call</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#35843;&#29992;&#31354;&#30340; <span class="t-lc"><a href="cpp-utility-functional-function.html">std::function</a></span> &#26102;&#25243;&#20986;&#30340;&#24322;&#24120;<br />
<span class="t-mark">(&#31867;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-is_bind_expression.html"><span class="t-lines"><span>is_bind_expression</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#25351;&#31034;&#23545;&#35937;&#20026; <code>std::bind</code> &#34920;&#36798;&#24335;&#65292;&#25110;&#33021;&#34987;&#29992;&#20316;&#36825;&#31181;&#34920;&#36798;&#24335;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-is_placeholder.html"><span class="t-lines"><span>is_placeholder</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#34920;&#26126;&#19968;&#20010;&#23545;&#35937;&#26159;&#26631;&#20934;&#21344;&#20301;&#31526;&#65292;&#25110;&#32773;&#21487;&#20197;&#29992;&#20316;&#26631;&#20934;&#21344;&#20301;&#31526;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E7.AE.97.E6.9C.AF.E8.BF.90.E7.AE.97">&#31639;&#26415;&#36816;&#31639;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-plus.html"><span class="t-lines"><span>plus</span></span></a></div>
</div>
</td>
<td>&#23454;&#29616; <span class="t-c"><span class="mw-geshi cpp source-cpp">x <span class="sy2">+</span> y</span></span> &#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-minus.html"><span class="t-lines"><span>minus</span></span></a></div>
</div>
</td>
<td>&#23454;&#29616; <span class="t-c"><span class="mw-geshi cpp source-cpp">x <span class="sy2">-</span> y</span></span> &#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-multiplies.html"><span class="t-lines"><span>multiplies</span></span></a></div>
</div>
</td>
<td>&#23454;&#29616; <span class="t-c"><span class="mw-geshi cpp source-cpp">x <span class="sy2">*</span> y</span></span> &#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-divides.html"><span class="t-lines"><span>divides</span></span></a></div>
</div>
</td>
<td>&#23454;&#29616; <span class="t-c"><span class="mw-geshi cpp source-cpp">x <span class="sy2">/</span> y</span></span> &#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-modulus.html"><span class="t-lines"><span>modulus</span></span></a></div>
</div>
</td>
<td>&#23454;&#29616; <span class="t-c"><span class="mw-geshi cpp source-cpp">x <span class="sy2">%</span> y</span></span> &#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-negate.html"><span class="t-lines"><span>negate</span></span></a></div>
</div>
</td>
<td>&#23454;&#29616; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy2">-</span>x</span></span> &#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E6.AF.94.E8.BE.83">&#27604;&#36739;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-equal_to.html"><span class="t-lines"><span>equal_to</span></span></a></div>
</div>
</td>
<td>&#23454;&#29616; <span class="t-c"><span class="mw-geshi cpp source-cpp">x <span class="sy1">==</span> y</span></span> &#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-not_equal_to.html"><span class="t-lines"><span>not_equal_to</span></span></a></div>
</div>
</td>
<td>&#23454;&#29616; <span class="t-c"><span class="mw-geshi cpp source-cpp">x <span class="sy3">!</span><span class="sy1">=</span> y</span></span> &#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-greater.html"><span class="t-lines"><span>greater</span></span></a></div>
</div>
</td>
<td>&#23454;&#29616; <span class="t-c"><span class="mw-geshi cpp source-cpp">x <span class="sy1">&gt;</span> y</span></span> &#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-less.html"><span class="t-lines"><span>less</span></span></a></div>
</div>
</td>
<td>&#23454;&#29616; <span class="t-c"><span class="mw-geshi cpp source-cpp">x <span class="sy1">&lt;</span> y</span></span> &#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-greater_equal.html"><span class="t-lines"><span>greater_equal</span></span></a></div>
</div>
</td>
<td>&#23454;&#29616; <span class="t-c"><span class="mw-geshi cpp source-cpp">x <span class="sy1">&gt;=</span> y</span></span> &#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-less_equal.html"><span class="t-lines"><span>less_equal</span></span></a></div>
</div>
</td>
<td>&#23454;&#29616; <span class="t-c"><span class="mw-geshi cpp source-cpp">x <span class="sy1">&lt;=</span> y</span></span> &#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E6.A6.82.E5.BF.B5.E7.BA.A6.E6.9D.9F.E7.9A.84.E6.AF.94.E8.BE.83">&#27010;&#24565;&#32422;&#26463;&#30340;&#27604;&#36739;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-ranges-equal_to.html"><span class="t-lines"><span>ranges::equal_to</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23454;&#29616; <span class="t-c"><span class="mw-geshi cpp source-cpp">x <span class="sy1">==</span> y</span></span> &#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-ranges-not_equal_to.html"><span class="t-lines"><span>ranges::not_equal_to</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23454;&#29616; <span class="t-c"><span class="mw-geshi cpp source-cpp">x <span class="sy3">!</span><span class="sy1">=</span> y</span></span> &#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-ranges-greater.html"><span class="t-lines"><span>ranges::greater</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23454;&#29616; <span class="t-c"><span class="mw-geshi cpp source-cpp">x <span class="sy1">&gt;</span> y</span></span> &#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-ranges-less.html"><span class="t-lines"><span>ranges::less</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23454;&#29616; <span class="t-c"><span class="mw-geshi cpp source-cpp">x <span class="sy1">&lt;</span> y</span></span> &#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-ranges-greater_equal.html"><span class="t-lines"><span>ranges::greater_equal</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23454;&#29616; <span class="t-c"><span class="mw-geshi cpp source-cpp">x <span class="sy1">&gt;=</span> y</span></span> &#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-ranges-less_equal.html"><span class="t-lines"><span>ranges::less_equal</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23454;&#29616; <span class="t-c"><span class="mw-geshi cpp source-cpp">x <span class="sy1">&lt;=</span> y</span></span> &#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-compare-compare_three_way.html"><span class="t-lines"><span>compare_three_way</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23454;&#29616; <span class="t-c"><span class="mw-geshi cpp source-cpp">x <span class="sy1">&lt;=&gt;</span> y</span></span> &#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E9.80.BB.E8.BE.91.E8.BF.90.E7.AE.97">&#36923;&#36753;&#36816;&#31639;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-logical_and.html"><span class="t-lines"><span>logical_and</span></span></a></div>
</div>
</td>
<td>&#23454;&#29616; <span class="t-c"><span class="mw-geshi cpp source-cpp">x <span class="sy3">&amp;&amp;</span> y</span></span> &#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-logical_or.html"><span class="t-lines"><span>logical_or</span></span></a></div>
</div>
</td>
<td>&#23454;&#29616; <span class="t-c"><span class="mw-geshi cpp source-cpp">x <span class="sy3">||</span> y</span></span> &#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-logical_not.html"><span class="t-lines"><span>logical_not</span></span></a></div>
</div>
</td>
<td>&#23454;&#29616; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy3">!</span>x</span></span> &#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E9.80.90.E4.BD.8D.E8.BF.90.E7.AE.97">&#36880;&#20301;&#36816;&#31639;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-bit_and.html"><span class="t-lines"><span>bit_and</span></span></a></div>
</div>
</td>
<td>&#23454;&#29616; <span class="t-c"><span class="mw-geshi cpp source-cpp">x <span class="sy3">&amp;</span> y</span></span> &#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-bit_or.html"><span class="t-lines"><span>bit_or</span></span></a></div>
</div>
</td>
<td>&#23454;&#29616; <span class="t-c"><span class="mw-geshi cpp source-cpp">x <span class="sy3">|</span> y</span></span> &#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-bit_xor.html"><span class="t-lines"><span>bit_xor</span></span></a></div>
</div>
</td>
<td>&#23454;&#29616; <span class="t-c"><span class="mw-geshi cpp source-cpp">x <span class="sy3">^</span> y</span></span> &#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-bit_not.html"><span class="t-lines"><span>bit_not</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx14">(C++14)</span></span></span></div>
</div>
</td>
<td>&#23454;&#29616; <span class="t-c"><span class="mw-geshi cpp source-cpp">~x</span></span> &#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E5.8F.96.E5.8F.8D.E5.99.A8">&#21462;&#21453;&#22120;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-not_fn.html"><span class="t-lines"><span>not_fn</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span></span></div>
</div>
</td>
<td>&#21019;&#24314;&#36820;&#22238;&#20854;&#20445;&#26377;&#30340;&#20989;&#25968;&#23545;&#35937;&#30340;&#32467;&#26524;&#20043;&#34917;&#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E6.81.92.E7.AD.89">&#24658;&#31561;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-identity.html"><span class="t-lines"><span>identity</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#36820;&#22238;&#20854;&#26410;&#20462;&#25913;&#30340;&#21442;&#25968;&#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E6.90.9C.E7.B4.A2.E5.99.A8">&#25628;&#32034;&#22120;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-default_searcher.html"><span class="t-lines"><span>default_searcher</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span></span></div>
</div>
</td>
<td>&#26631;&#20934; C++ &#24211;&#25628;&#32034;&#31639;&#27861;&#23454;&#29616;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-boyer_moore_searcher.html"><span class="t-lines"><span>boyer_moore_searcher</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span></span></div>
</div>
</td>
<td>Boyer-Moore &#25628;&#32034;&#31639;&#27861;&#23454;&#29616;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-boyer_moore_horspool_searcher.html"><span class="t-lines"><span>boyer_moore_horspool_searcher</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span></span></div>
</div>
</td>
<td>Boyer-Moore-Horspool &#25628;&#32034;&#31639;&#27861;&#23454;&#29616;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E6.95.A3.E5.88.97">&#25955;&#21015;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-hash.html"><span class="t-lines"><span>hash</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#25955;&#21015;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-hash.html"><span class="t-lines"><span>std::hash<span class="t-dsc-small">&lt;<i>Arithmetic</i>&gt;</span></span><span>std::hash<span class="t-dsc-small">&lt;<i>Enumeration</i>&gt;</span></span><span>std::hash<span class="t-dsc-small">&lt;std::nullptr_t&gt;</span></span><span>std::hash<span class="t-dsc-small">&lt;T*&gt;</span></span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td><span class="t-lc"><a href="cpp-utility-hash.html">std::hash</a></span> &#23545;&#22522;&#30784;&#12289;&#26522;&#20030;&#20197;&#21450;&#25351;&#38024;&#31867;&#22411;&#30340;&#29305;&#21270;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;&#29305;&#21270;)</span></td>
</tr>
<tr>
<td colspan="2">
<h3><span class="mw-headline" id=".E5.B8.B8.E9.87.8F">&#24120;&#37327;</span></h3>
</td>
</tr>
<tr class="t-dsc-header">
<td colspan="2">
<div>&#23450;&#20041;&#20110;&#21629;&#21517;&#31354;&#38388; <code>std::placeholders</code></div>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-placeholders.html"><span class="t-lines"><span>_1, _2, _3, _4, ...</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#29992;&#20316; <code>std::bind</code> &#34920;&#36798;&#24335;&#20013;&#30340;&#26410;&#32465;&#23450;&#23454;&#21442;&#30340;&#21344;&#20301;&#31526;<br />
<span class="t-mark">(&#24120;&#37327;)</span></td>
</tr>
<tr>
<td colspan="2">
<h3><span class="mw-headline" id=".E5.87.BD.E6.95.B0">&#20989;&#25968;</span></h3>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-bind_front.html"><span class="t-lines"><span>bind_front</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#25353;&#39034;&#24207;&#32465;&#23450;&#19968;&#23450;&#25968;&#37327;&#30340;&#21442;&#25968;&#21040;&#20989;&#25968;&#23545;&#35937;<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-utility-functional-bind.html"><span class="t-lines"><span>bind</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#32465;&#23450;&#19968;&#25110;&#22810;&#20010;&#23454;&#21442;&#21040;&#20989;&#25968;&#23545;&#35937;<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-utility-functional-ref.html"><span class="t-lines"><span>ref</span><span>cref</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#21019;&#24314;&#20855;&#26377;&#20174;&#20854;&#23454;&#21442;&#25512;&#23548;&#30340;&#31867;&#22411;&#30340; <span class="t-lc"><a href="cpp-utility-functional-reference_wrapper.html">std::reference_wrapper</a></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-utility-functional-invoke.html"><span class="t-lines"><span>invoke</span><span>invoke_r</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span><span><span class="t-mark-rev t-since-cxx23">(C++23)</span></span></span></div>
</div>
</td>
<td>&#20197;&#32473;&#23450;&#23454;&#21442;<span class="t-rev-inl t-since-cxx23"><span>&#21644;&#21487;&#33021;&#25351;&#23450;&#30340;&#36820;&#22238;&#31867;&#22411;</span> <span><span class="t-mark-rev t-since-cxx23">(C++23 &#36215;)</span></span></span>&#35843;&#29992;&#20219;&#24847;<a href="cpp-named_req-Callable.html"><span style="font-style:italic">&#21487;&#35843;&#29992;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(Callable)</span></a> &#23545;&#35937;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id="C.2B.2B11_.E4.B8.AD.E5.BC.83.E7.94.A8.E5.B9.B6.E4.BA.8E_C.2B.2B17_.E7.A7.BB.E9.99.A4">C++11 &#20013;&#24323;&#29992;&#24182;&#20110; C++17 &#31227;&#38500;</span></h3>
<table class="t-dsc-begin">
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E5.9F.BA.E7.B1.BB">&#22522;&#31867;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-unary_function.html"><span class="t-lines"><span>unary_function</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-deprecated-cxx11">(C++11 &#20013;&#24323;&#29992;)</span></span><span><span class="t-mark-rev t-until-cxx17">(C++17 &#20013;&#31227;&#38500;)</span></span></span></div>
</div>
</td>
<td>&#19982;&#36866;&#37197;&#22120;&#20860;&#23481;&#30340;&#19968;&#20803;&#20989;&#25968;&#22522;&#31867;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-binary_function.html"><span class="t-lines"><span>binary_function</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-deprecated-cxx11">(C++11 &#20013;&#24323;&#29992;)</span></span><span><span class="t-mark-rev t-until-cxx17">(C++17 &#20013;&#31227;&#38500;)</span></span></span></div>
</div>
</td>
<td>&#19982;&#36866;&#37197;&#22120;&#20860;&#23481;&#30340;&#20108;&#20803;&#20989;&#25968;&#22522;&#31867;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E7.BB.91.E5.AE.9A.E5.99.A8">&#32465;&#23450;&#22120;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-binder12.html"><span class="t-lines"><span>binder1st</span><span>binder2nd</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-deprecated-cxx11">(C++11 &#20013;&#24323;&#29992;)</span><span class="t-mark-rev t-until-cxx17">(C++17 &#20013;&#31227;&#38500;)</span></span></span></div>
</div>
</td>
<td>&#25345;&#26377;&#19968;&#20010;&#20108;&#20803;&#20989;&#25968;&#21450;&#20854;&#23454;&#21442;&#20043;&#19968;&#30340;&#20989;&#25968;&#23545;&#35937;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-bind12.html"><span class="t-lines"><span>bind1st</span><span>bind2nd</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-deprecated-cxx11">(C++11 &#20013;&#24323;&#29992;)</span><span class="t-mark-rev t-until-cxx17">(C++17 &#20013;&#31227;&#38500;)</span></span></span></div>
</div>
</td>
<td>&#23558;&#19968;&#20010;&#23454;&#21442;&#32465;&#23450;&#21040;&#20108;&#20803;&#20989;&#25968;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E5.87.BD.E6.95.B0.E9.80.82.E9.85.8D.E5.99.A8">&#20989;&#25968;&#36866;&#37197;&#22120;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-pointer_to_unary_function.html"><span class="t-lines"><span>pointer_to_unary_function</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-deprecated-cxx11">(C++11 &#20013;&#24323;&#29992;)</span></span><span><span class="t-mark-rev t-until-cxx17">(C++17 &#20013;&#31227;&#38500;)</span></span></span></div>
</div>
</td>
<td>&#36866;&#37197;&#22120;&#20860;&#23481;&#30340;&#21253;&#35013;&#65292;&#29992;&#20110;&#21253;&#35013;&#19968;&#20803;&#20989;&#25968;&#30340;&#25351;&#38024;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-pointer_to_binary_function.html"><span class="t-lines"><span>pointer_to_binary_function</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-deprecated-cxx11">(C++11 &#20013;&#24323;&#29992;)</span></span><span><span class="t-mark-rev t-until-cxx17">(C++17 &#20013;&#31227;&#38500;)</span></span></span></div>
</div>
</td>
<td>&#36866;&#37197;&#22120;&#20860;&#23481;&#30340;&#21253;&#35013;&#65292;&#29992;&#20110;&#21253;&#35013;&#20108;&#20803;&#20989;&#25968;&#30340;&#25351;&#38024;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-ptr_fun.html"><span class="t-lines"><span>ptr_fun</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-deprecated-cxx11">(C++11 &#20013;&#24323;&#29992;)</span><span class="t-mark-rev t-until-cxx17">(C++17 &#20013;&#31227;&#38500;)</span></span></span></div>
</div>
</td>
<td>&#20174;&#20989;&#25968;&#25351;&#38024;&#21019;&#24314;&#19982;&#36866;&#37197;&#22120;&#20860;&#23481;&#30340;&#20989;&#25968;&#23545;&#35937;&#21253;&#35013;&#22120;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-mem_fun_t.html"><span class="t-lines"><span>mem_fun_t</span><span>mem_fun1_t</span><span>const_mem_fun_t</span><span>const_mem_fun1_t</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-deprecated-cxx11">(C++11 &#20013;&#24323;&#29992;)</span></span><span><span class="t-mark-rev t-until-cxx17">(C++17 &#20013;&#31227;&#38500;)</span></span></span></div>
</div>
</td>
<td>&#25351;&#21521;&#38646;&#20803;&#25110;&#19968;&#20803;&#25104;&#21592;&#20989;&#25968;&#25351;&#38024;&#30340;&#21253;&#35013;&#22120;&#65292;&#21487;&#20197;&#19968;&#20010;&#23545;&#35937;&#25351;&#38024;&#35843;&#29992;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-mem_fun.html"><span class="t-lines"><span>mem_fun</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-deprecated-cxx11">(C++11 &#20013;&#24323;&#29992;)</span><span class="t-mark-rev t-until-cxx17">(C++17 &#20013;&#31227;&#38500;)</span></span></span></div>
</div>
</td>
<td>&#20174;&#25104;&#21592;&#20989;&#25968;&#25351;&#38024;&#21019;&#24314;&#21253;&#35013;&#22120;&#65292;&#21487;&#20197;&#19968;&#20010;&#23545;&#35937;&#25351;&#38024;&#35843;&#29992;<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-utility-functional-mem_fun_ref_t.html"><span class="t-lines"><span>mem_fun_ref_t</span><span>mem_fun1_ref_t</span><span>const_mem_fun_ref_t</span><span>const_mem_fun1_ref_t</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-deprecated-cxx11">(C++11 &#20013;&#24323;&#29992;)</span></span><span><span class="t-mark-rev t-until-cxx17">(C++17 &#20013;&#31227;&#38500;)</span></span></span></div>
</div>
</td>
<td>&#25351;&#21521;&#38646;&#20803;&#25110;&#19968;&#20803;&#25104;&#21592;&#20989;&#25968;&#25351;&#38024;&#30340;&#21253;&#35013;&#22120;&#65292;&#21487;&#20197;&#19968;&#20010;&#23545;&#35937;&#24341;&#29992;&#35843;&#29992;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-mem_fun_ref.html"><span class="t-lines"><span>mem_fun_ref</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-deprecated-cxx11">(C++11 &#20013;&#24323;&#29992;)</span></span><span><span class="t-mark-rev t-until-cxx17">(C++17 &#20013;&#31227;&#38500;)</span></span></span></div>
</div>
</td>
<td>&#20174;&#25104;&#21592;&#20989;&#25968;&#25351;&#38024;&#21019;&#24314;&#21253;&#35013;&#22120;&#65292;&#33021;&#20197;&#19968;&#20010;&#23545;&#35937;&#24341;&#29992;&#35843;&#29992;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id="C.2B.2B17_.E4.B8.AD.E5.BC.83.E7.94.A8.E5.B9.B6.E4.BA.8E_C.2B.2B20_.E7.A7.BB.E9.99.A4">C++17 &#20013;&#24323;&#29992;&#24182;&#20110; C++20 &#31227;&#38500;</span></h3>
<table class="t-dsc-begin">
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E5.8F.96.E5.8F.8D.E5.99.A8_2">&#21462;&#21453;&#22120;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-unary_negate.html"><span class="t-lines"><span>unary_negate</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-deprecated-cxx17">(C++17 &#20013;&#24323;&#29992;)</span></span><span><span class="t-mark-rev t-until-cxx20">(C++20 &#20013;&#31227;&#38500;)</span></span></span></div>
</div>
</td>
<td>&#21253;&#35013;&#22120;&#20989;&#25968;&#23545;&#35937;&#65292;&#36820;&#22238;&#25152;&#25345;&#26377;&#30340;&#19968;&#20803;&#35859;&#35789;&#30340;&#34917;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-binary_negate.html"><span class="t-lines"><span>binary_negate</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-deprecated-cxx17">(C++17 &#20013;&#24323;&#29992;)</span></span><span><span class="t-mark-rev t-until-cxx20">(C++20 &#20013;&#31227;&#38500;)</span></span></span></div>
</div>
</td>
<td>&#21253;&#35013;&#22120;&#20989;&#25968;&#23545;&#35937;&#65292;&#36820;&#22238;&#25152;&#25345;&#26377;&#30340;&#20108;&#20803;&#35859;&#35789;&#30340;&#34917;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-functional-not1.html"><span class="t-lines"><span>not1</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-deprecated-cxx17">(C++17 &#20013;&#24323;&#29992;)</span><span class="t-mark-rev t-until-cxx20">(C++20 &#20013;&#31227;&#38500;)</span></span></span></div>
</div>
</td>
<td>&#26500;&#36896;&#23450;&#21046;&#30340; <span class="t-lc"><a href="cpp-utility-functional-unary_negate.html">std::unary_negate</a></span> &#23545;&#35937;<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-utility-functional-not2.html"><span class="t-lines"><span>not2</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-deprecated-cxx17">(C++17 &#20013;&#24323;&#29992;)</span><span class="t-mark-rev t-until-cxx20">(C++20 &#20013;&#31227;&#38500;)</span></span></span></div>
</div>
</td>
<td>&#26500;&#36896;&#23450;&#21046;&#30340; <span class="t-lc"><a href="cpp-utility-functional-binary_negate.html">std::binary_negate</a></span> &#23545;&#35937;<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="kw1">namespace</span> std <span class="br0">{</span>
<span class="co1">// invoke</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> F, <span class="kw1">class</span>... <span class="me1">Args</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> invoke_result_t<span class="sy1">&lt;</span>F, Args...<span class="sy1">&gt;</span> invoke<span class="br0">(</span>F<span class="sy3">&amp;&amp;</span> f, Args<span class="sy3">&amp;&amp;</span>... <span class="me1">args</span><span class="br0">)</span>
<span class="kw1">noexcept</span><span class="br0">(</span>is_nothrow_invocable_v<span class="sy1">&lt;</span>F, Args...<span class="sy1">&gt;</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> R, <span class="kw1">class</span> F, <span class="kw1">class</span>... <span class="me1">Args</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> R invoke_r<span class="br0">(</span>F<span class="sy3">&amp;&amp;</span> f, Args<span class="sy3">&amp;&amp;</span>... <span class="me1">args</span><span class="br0">)</span>
<span class="kw1">noexcept</span><span class="br0">(</span>is_nothrow_invocable_r_v<span class="sy1">&lt;</span>R, F, Args...<span class="sy1">&gt;</span><span class="br0">)</span><span class="sy4">;</span>
<span class="co1">// reference_wrapper</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw1">class</span> reference_wrapper<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw4">constexpr</span> reference_wrapper<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span> ref<span class="br0">(</span>T<span class="sy3">&amp;</span><span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw4">constexpr</span> reference_wrapper<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy1">&gt;</span> cref<span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw4">void</span> ref<span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;&amp;</span><span class="br0">)</span> <span class="sy1">=</span> delete<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw4">void</span> cref<span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;&amp;</span><span class="br0">)</span> <span class="sy1">=</span> delete<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> reference_wrapper<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span> ref<span class="br0">(</span>reference_wrapper<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> reference_wrapper<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy1">&gt;</span> cref<span class="br0">(</span>reference_wrapper<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw1">struct</span> unwrap_reference<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw1">using</span> unwrap_reference_t <span class="sy1">=</span> <span class="kw1">typename</span> unwrap_reference<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw1">struct</span> unwrap_ref_decay<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw1">using</span> unwrap_ref_decay_t <span class="sy1">=</span> <span class="kw1">typename</span> unwrap_ref_decay<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">type</span><span class="sy4">;</span>
<span class="co1">// &#31639;&#26415;&#36816;&#31639;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> plus<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> minus<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> multiplies<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> divides<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> modulus<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> negate<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> plus<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> minus<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> multiplies<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> divides<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> modulus<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> negate<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="co1">// &#27604;&#36739;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> equal_to<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> not_equal_to<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> greater<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> less<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> greater_equal<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> less_equal<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> equal_to<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> not_equal_to<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> greater<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> less<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> greater_equal<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> less_equal<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="co1">// &#36923;&#36753;&#36816;&#31639;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> logical_and<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> logical_or<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> logical_not<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> logical_and<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> logical_or<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> logical_not<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="co1">// &#36880;&#20301;&#36816;&#31639;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> bit_and<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> bit_or<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> bit_xor<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> bit_not<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> bit_and<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> bit_or<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> bit_xor<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> bit_not<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="co1">// identity</span>
<span class="kw1">struct</span> identity<span class="sy4">;</span>
<span class="co1">// &#20989;&#25968;&#27169;&#26495; not_fn</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> F<span class="sy1">&gt;</span> <span class="kw4">constexpr</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span> not_fn<span class="br0">(</span>F<span class="sy3">&amp;&amp;</span> f<span class="br0">)</span><span class="sy4">;</span>
<span class="co1">// &#20989;&#25968;&#27169;&#26495; bind_front</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> F, <span class="kw1">class</span>... <span class="me1">Args</span><span class="sy1">&gt;</span> <span class="kw4">constexpr</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span> bind_front<span class="br0">(</span>F<span class="sy3">&amp;&amp;</span>, Args<span class="sy3">&amp;&amp;</span>...<span class="br0">)</span><span class="sy4">;</span>
<span class="co1">// bind</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw1">struct</span> is_bind_expression<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw1">struct</span> is_placeholder<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> F, <span class="kw1">class</span>... <span class="me1">BoundArgs</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span> bind<span class="br0">(</span>F<span class="sy3">&amp;&amp;</span>, BoundArgs<span class="sy3">&amp;&amp;</span>...<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> R, <span class="kw1">class</span> F, <span class="kw1">class</span>... <span class="me1">BoundArgs</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span> bind<span class="br0">(</span>F<span class="sy3">&amp;&amp;</span>, BoundArgs<span class="sy3">&amp;&amp;</span>...<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> placeholders <span class="br0">{</span>
<span class="co1">// M &#26159;&#23454;&#29616;&#23450;&#20041;&#30340;&#21344;&#20301;&#31526;&#25968;</span>
<span class="coMULTI">/* &#35265;&#25551;&#36848; */</span> _1<span class="sy4">;</span>
<span class="coMULTI">/* &#35265;&#25551;&#36848; */</span> _2<span class="sy4">;</span>
.
.
.
<span class="coMULTI">/* &#35265;&#25551;&#36848; */</span> _M<span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#25104;&#21592;&#20989;&#25968;&#36866;&#37197;&#22120;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> R, <span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span> mem_fn<span class="br0">(</span>R T<span class="sy4">::</span><span class="sy2">*</span><span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="co1">// &#22810;&#24577;&#20989;&#25968;&#21253;&#35013;</span>
<span class="kw1">class</span> bad_function_call<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span><span class="sy1">&gt;</span> <span class="kw1">class</span> function<span class="sy4">;</span> <span class="co1">// not defined</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> R, <span class="kw1">class</span>... <span class="me1">ArgTypes</span><span class="sy1">&gt;</span> <span class="kw1">class</span> function<span class="sy1">&lt;</span>R<span class="br0">(</span>ArgTypes...<span class="br0">)</span><span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> R, <span class="kw1">class</span>... <span class="me1">ArgTypes</span><span class="sy1">&gt;</span>
<span class="kw4">void</span> swap<span class="br0">(</span>function<span class="sy1">&lt;</span>R<span class="br0">(</span>ArgTypes...<span class="br0">)</span><span class="sy1">&gt;</span><span class="sy3">&amp;</span>, function<span class="sy1">&lt;</span>R<span class="br0">(</span>ArgTypes...<span class="br0">)</span><span class="sy1">&gt;</span><span class="sy3">&amp;</span><span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> R, <span class="kw1">class</span>... <span class="me1">ArgTypes</span><span class="sy1">&gt;</span>
<span class="kw4">bool</span> operator<span class="sy1">==</span><span class="br0">(</span><span class="kw4">const</span> function<span class="sy1">&lt;</span>R<span class="br0">(</span>ArgTypes...<span class="br0">)</span><span class="sy1">&gt;</span><span class="sy3">&amp;</span>, nullptr_t<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="co1">// &#25628;&#32034;&#22120;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> BinaryPredicate <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
<span class="kw1">class</span> default_searcher<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> RandomAccessIter,
<span class="kw1">class</span> Hash <span class="sy1">=</span> hash<span class="sy1">&lt;</span><span class="kw1">typename</span> iterator_traits<span class="sy1">&lt;</span>RandomAccessIter<span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">value_type</span><span class="sy1">&gt;</span>,
<span class="kw1">class</span> BinaryPredicate <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
<span class="kw1">class</span> boyer_moore_searcher<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> RandomAccessIter,
<span class="kw1">class</span> Hash <span class="sy1">=</span> hash<span class="sy1">&lt;</span><span class="kw1">typename</span> iterator_traits<span class="sy1">&lt;</span>RandomAccessIter<span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">value_type</span><span class="sy1">&gt;</span>,
<span class="kw1">class</span> BinaryPredicate <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
<span class="kw1">class</span> boyer_moore_horspool_searcher<span class="sy4">;</span>
<span class="co1">// &#25955;&#21015;&#20989;&#25968;&#20027;&#27169;&#26495;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw1">struct</span> hash<span class="sy4">;</span>
<span class="co1">// &#20989;&#25968;&#23545;&#35937;&#32465;&#23450;&#22120;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw1">inline</span> <span class="kw4">constexpr</span> <span class="kw4">bool</span> is_bind_expression_v <span class="sy1">=</span> is_bind_expression<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw1">inline</span> <span class="kw4">constexpr</span> <span class="kw4">int</span> is_placeholder_v <span class="sy1">=</span> is_placeholder<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">value</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="co1">// &#27010;&#24565;&#32422;&#26463;&#30340;&#27604;&#36739;</span>
<span class="kw1">struct</span> equal_to<span class="sy4">;</span>
<span class="kw1">struct</span> not_equal_to<span class="sy4">;</span>
<span class="kw1">struct</span> greater<span class="sy4">;</span>
<span class="kw1">struct</span> less<span class="sy4">;</span>
<span class="kw1">struct</span> greater_equal<span class="sy4">;</span>
<span class="kw1">struct</span> less_equal<span class="sy4">;</span>
<span class="br0">}</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::reference_wrapper">&#31867;&#27169;&#26495; <span class="t-lc"><a href="cpp-utility-functional-reference_wrapper.html">std::reference_wrapper</a></span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw1">class</span> reference_wrapper <span class="br0">{</span>
<span class="kw1">public</span><span class="sy4">:</span>
<span class="co1">// &#31867;&#22411;</span>
<span class="kw1">using</span> type <span class="sy1">=</span> T<span class="sy4">;</span>
<span class="co1">// &#26500;&#36896;/&#22797;&#21046;/&#26512;&#26500;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> U<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> reference_wrapper<span class="br0">(</span>U<span class="sy3">&amp;&amp;</span><span class="br0">)</span> <span class="kw1">noexcept</span><span class="br0">(</span>see below<span class="br0">)</span><span class="sy4">;</span>
<span class="kw4">constexpr</span> reference_wrapper<span class="br0">(</span><span class="kw4">const</span> reference_wrapper<span class="sy3">&amp;</span> x<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="co1">// &#36171;&#20540;</span>
<span class="kw4">constexpr</span> reference_wrapper<span class="sy3">&amp;</span> operator<span class="sy1">=</span><span class="br0">(</span><span class="kw4">const</span> reference_wrapper<span class="sy3">&amp;</span> x<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="co1">// &#35775;&#38382;</span>
<span class="kw4">constexpr</span> operator T<span class="sy3">&amp;</span> <span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="kw4">constexpr</span> T<span class="sy3">&amp;</span> get<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="co1">// &#35843;&#29992;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span>... <span class="me1">ArgTypes</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> invoke_result_t<span class="sy1">&lt;</span>T<span class="sy3">&amp;</span>, ArgTypes...<span class="sy1">&gt;</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>ArgTypes<span class="sy3">&amp;&amp;</span>...<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span>
reference_wrapper<span class="br0">(</span>T<span class="sy3">&amp;</span><span class="br0">)</span> <span class="sy2">-</span><span class="sy1">&gt;</span> reference_wrapper<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::unwrap_reference">&#31867;&#27169;&#26495; <span class="t-lc">std::unwrap_reference</span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw1">struct</span> unwrap_reference<span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::unwrap_ref_decay">&#31867;&#27169;&#26495; <span class="t-lc">std::unwrap_ref_decay</span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw1">struct</span> unwrap_ref_decay<span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::plus">&#31867;&#27169;&#26495; <span class="t-lc"><a href="cpp-utility-functional-plus.html">std::plus</a></span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> plus <span class="br0">{</span>
<span class="kw4">constexpr</span> T operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> x, <span class="kw4">const</span> T<span class="sy3">&amp;</span> y<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> plus<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span> <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> U<span class="sy1">&gt;</span> <span class="kw4">constexpr</span> <span class="kw4">auto</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>T<span class="sy3">&amp;&amp;</span> t, U<span class="sy3">&amp;&amp;</span> u<span class="br0">)</span> <span class="kw4">const</span>
<span class="sy2">-</span><span class="sy1">&gt;</span> decltype<span class="br0">(</span><a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="br0">(</span>t<span class="br0">)</span> <span class="sy2">+</span> <a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>U<span class="sy1">&gt;</span><span class="br0">(</span>u<span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">using</span> is_transparent <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::minus">&#31867;&#27169;&#26495; <span class="t-lc"><a href="cpp-utility-functional-minus.html">std::minus</a></span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> minus <span class="br0">{</span>
<span class="kw4">constexpr</span> T operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> x, <span class="kw4">const</span> T<span class="sy3">&amp;</span> y<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> minus<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span> <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> U<span class="sy1">&gt;</span> <span class="kw4">constexpr</span> <span class="kw4">auto</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>T<span class="sy3">&amp;&amp;</span> t, U<span class="sy3">&amp;&amp;</span> u<span class="br0">)</span> <span class="kw4">const</span>
<span class="sy2">-</span><span class="sy1">&gt;</span> decltype<span class="br0">(</span><a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="br0">(</span>t<span class="br0">)</span> <span class="sy2">-</span> <a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>U<span class="sy1">&gt;</span><span class="br0">(</span>u<span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">using</span> is_transparent <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::multiplies">&#31867;&#27169;&#26495; <span class="t-lc"><a href="cpp-utility-functional-multiplies.html">std::multiplies</a></span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> multiplies <span class="br0">{</span>
<span class="kw4">constexpr</span> T operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> x, <span class="kw4">const</span> T<span class="sy3">&amp;</span> y<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> multiplies<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span> <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> U<span class="sy1">&gt;</span> <span class="kw4">constexpr</span> <span class="kw4">auto</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>T<span class="sy3">&amp;&amp;</span> t, U<span class="sy3">&amp;&amp;</span> u<span class="br0">)</span> <span class="kw4">const</span>
<span class="sy2">-</span><span class="sy1">&gt;</span> decltype<span class="br0">(</span><a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="br0">(</span>t<span class="br0">)</span> <span class="sy2">*</span> <a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>U<span class="sy1">&gt;</span><span class="br0">(</span>u<span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">using</span> is_transparent <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::divides">&#31867;&#27169;&#26495; <span class="t-lc"><a href="cpp-utility-functional-divides.html">std::divides</a></span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> divides <span class="br0">{</span>
<span class="kw4">constexpr</span> T operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> x, <span class="kw4">const</span> T<span class="sy3">&amp;</span> y<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> divides<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span> <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> U<span class="sy1">&gt;</span> <span class="kw4">constexpr</span> <span class="kw4">auto</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>T<span class="sy3">&amp;&amp;</span> t, U<span class="sy3">&amp;&amp;</span> u<span class="br0">)</span> <span class="kw4">const</span>
<span class="sy2">-</span><span class="sy1">&gt;</span> decltype<span class="br0">(</span><a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="br0">(</span>t<span class="br0">)</span> <span class="sy2">/</span> <a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>U<span class="sy1">&gt;</span><span class="br0">(</span>u<span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">using</span> is_transparent <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::modulus">&#31867;&#27169;&#26495; <span class="t-lc"><a href="cpp-utility-functional-modulus.html">std::modulus</a></span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> modulus <span class="br0">{</span>
<span class="kw4">constexpr</span> T operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> x, <span class="kw4">const</span> T<span class="sy3">&amp;</span> y<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> modulus<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span> <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> U<span class="sy1">&gt;</span> <span class="kw4">constexpr</span> <span class="kw4">auto</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>T<span class="sy3">&amp;&amp;</span> t, U<span class="sy3">&amp;&amp;</span> u<span class="br0">)</span> <span class="kw4">const</span>
<span class="sy2">-</span><span class="sy1">&gt;</span> decltype<span class="br0">(</span><a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="br0">(</span>t<span class="br0">)</span> <span class="sy2">%</span> <a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>U<span class="sy1">&gt;</span><span class="br0">(</span>u<span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">using</span> is_transparent <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::negate">&#31867;&#27169;&#26495; <span class="t-lc"><a href="cpp-utility-functional-negate.html">std::negate</a></span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> negate <span class="br0">{</span>
<span class="kw4">constexpr</span> T operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> x<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> negate<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span> <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw4">constexpr</span> <span class="kw4">auto</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>T<span class="sy3">&amp;&amp;</span> t<span class="br0">)</span> <span class="kw4">const</span>
<span class="sy2">-</span><span class="sy1">&gt;</span> decltype<span class="br0">(</span><span class="sy2">-</span><a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="br0">(</span>t<span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">using</span> is_transparent <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::equal_to">&#31867;&#27169;&#26495; <span class="t-lc"><a href="cpp-utility-functional-equal_to.html">std::equal_to</a></span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> equal_to <span class="br0">{</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> x, <span class="kw4">const</span> T<span class="sy3">&amp;</span> y<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> equal_to<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span> <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> U<span class="sy1">&gt;</span> <span class="kw4">constexpr</span> <span class="kw4">auto</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>T<span class="sy3">&amp;&amp;</span> t, U<span class="sy3">&amp;&amp;</span> u<span class="br0">)</span> <span class="kw4">const</span>
<span class="sy2">-</span><span class="sy1">&gt;</span> decltype<span class="br0">(</span><a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="br0">(</span>t<span class="br0">)</span> <span class="sy1">==</span> <a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>U<span class="sy1">&gt;</span><span class="br0">(</span>u<span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">using</span> is_transparent <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::not_equal_to">&#31867;&#27169;&#26495; <span class="t-lc"><a href="cpp-utility-functional-not_equal_to.html">std::not_equal_to</a></span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> not_equal_to <span class="br0">{</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> x, <span class="kw4">const</span> T<span class="sy3">&amp;</span> y<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> not_equal_to<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span> <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> U<span class="sy1">&gt;</span> <span class="kw4">constexpr</span> <span class="kw4">auto</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>T<span class="sy3">&amp;&amp;</span> t, U<span class="sy3">&amp;&amp;</span> u<span class="br0">)</span> <span class="kw4">const</span>
<span class="sy2">-</span><span class="sy1">&gt;</span> decltype<span class="br0">(</span><a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="br0">(</span>t<span class="br0">)</span> <span class="sy3">!</span><span class="sy1">=</span> <a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>U<span class="sy1">&gt;</span><span class="br0">(</span>u<span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">using</span> is_transparent <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::greater">&#31867;&#27169;&#26495; <span class="t-lc"><a href="cpp-utility-functional-greater.html">std::greater</a></span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> greater <span class="br0">{</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> x, <span class="kw4">const</span> T<span class="sy3">&amp;</span> y<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> greater<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span> <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> U<span class="sy1">&gt;</span> <span class="kw4">constexpr</span> <span class="kw4">auto</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>T<span class="sy3">&amp;&amp;</span> t, U<span class="sy3">&amp;&amp;</span> u<span class="br0">)</span> <span class="kw4">const</span>
<span class="sy2">-</span><span class="sy1">&gt;</span> decltype<span class="br0">(</span><a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="br0">(</span>t<span class="br0">)</span> <span class="sy1">&gt;</span> <a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>U<span class="sy1">&gt;</span><span class="br0">(</span>u<span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">using</span> is_transparent <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::less">&#31867;&#27169;&#26495; <span class="t-lc"><a href="cpp-utility-functional-less.html">std::less</a></span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> less <span class="br0">{</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> x, <span class="kw4">const</span> T<span class="sy3">&amp;</span> y<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> less<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span> <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> U<span class="sy1">&gt;</span> <span class="kw4">constexpr</span> <span class="kw4">auto</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>T<span class="sy3">&amp;&amp;</span> t, U<span class="sy3">&amp;&amp;</span> u<span class="br0">)</span> <span class="kw4">const</span>
<span class="sy2">-</span><span class="sy1">&gt;</span> decltype<span class="br0">(</span><a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="br0">(</span>t<span class="br0">)</span> <span class="sy1">&lt;</span> <a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>U<span class="sy1">&gt;</span><span class="br0">(</span>u<span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">using</span> is_transparent <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::greater_equal">&#31867;&#27169;&#26495; <span class="t-lc"><a href="cpp-utility-functional-greater_equal.html">std::greater_equal</a></span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> greater_equal <span class="br0">{</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> x, <span class="kw4">const</span> T<span class="sy3">&amp;</span> y<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> greater_equal<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span> <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> U<span class="sy1">&gt;</span> <span class="kw4">constexpr</span> <span class="kw4">auto</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>T<span class="sy3">&amp;&amp;</span> t, U<span class="sy3">&amp;&amp;</span> u<span class="br0">)</span> <span class="kw4">const</span>
<span class="sy2">-</span><span class="sy1">&gt;</span> decltype<span class="br0">(</span><a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="br0">(</span>t<span class="br0">)</span> <span class="sy1">&gt;=</span> <a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>U<span class="sy1">&gt;</span><span class="br0">(</span>u<span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">using</span> is_transparent <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::less_equal">&#31867;&#27169;&#26495; <span class="t-lc"><a href="cpp-utility-functional-less_equal.html">std::less_equal</a></span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> less_equal <span class="br0">{</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> x, <span class="kw4">const</span> T<span class="sy3">&amp;</span> y<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> less_equal<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span> <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> U<span class="sy1">&gt;</span> <span class="kw4">constexpr</span> <span class="kw4">auto</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>T<span class="sy3">&amp;&amp;</span> t, U<span class="sy3">&amp;&amp;</span> u<span class="br0">)</span> <span class="kw4">const</span>
<span class="sy2">-</span><span class="sy1">&gt;</span> decltype<span class="br0">(</span><a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="br0">(</span>t<span class="br0">)</span> <span class="sy1">&lt;=</span> <a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>U<span class="sy1">&gt;</span><span class="br0">(</span>u<span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">using</span> is_transparent <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB_std::ranges::equal_to">&#31867; <span class="t-lc">std::ranges::equal_to</span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std<span class="sy4">::</span><span class="me2">ranges</span> <span class="br0">{</span>
<span class="kw1">struct</span> equal_to <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> U<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>T<span class="sy3">&amp;&amp;</span> t, U<span class="sy3">&amp;&amp;</span> u<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="kw1">using</span> is_transparent <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB_std::ranges::not_equal_to">&#31867; <span class="t-lc">std::ranges::not_equal_to</span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std<span class="sy4">::</span><span class="me2">ranges</span> <span class="br0">{</span>
<span class="kw1">struct</span> not_equal_to <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> U<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>T<span class="sy3">&amp;&amp;</span> t, U<span class="sy3">&amp;&amp;</span> u<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="kw1">using</span> is_transparent <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB_std::ranges::greater">&#31867; <span class="t-lc">std::ranges::greater</span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std<span class="sy4">::</span><span class="me2">ranges</span> <span class="br0">{</span>
<span class="kw1">struct</span> greater <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> U<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>T<span class="sy3">&amp;&amp;</span> t, U<span class="sy3">&amp;&amp;</span> u<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="kw1">using</span> is_transparent <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB_std::ranges::less">&#31867; <span class="t-lc">std::ranges::less</span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std<span class="sy4">::</span><span class="me2">ranges</span> <span class="br0">{</span>
<span class="kw1">struct</span> less <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> U<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>T<span class="sy3">&amp;&amp;</span> t, U<span class="sy3">&amp;&amp;</span> u<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="kw1">using</span> is_transparent <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB_std::ranges::greater_equal">&#31867; <span class="t-lc">std::ranges::greater_equal</span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std<span class="sy4">::</span><span class="me2">ranges</span> <span class="br0">{</span>
<span class="kw1">struct</span> greater_equal <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> U<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>T<span class="sy3">&amp;&amp;</span> t, U<span class="sy3">&amp;&amp;</span> u<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="kw1">using</span> is_transparent <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB_std::ranges::less_equal">&#31867; <span class="t-lc">std::ranges::less_equal</span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std<span class="sy4">::</span><span class="me2">ranges</span> <span class="br0">{</span>
<span class="kw1">struct</span> less_equal <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> U<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>T<span class="sy3">&amp;&amp;</span> t, U<span class="sy3">&amp;&amp;</span> u<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="kw1">using</span> is_transparent <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::logical_and">&#31867;&#27169;&#26495; <span class="t-lc"><a href="cpp-utility-functional-logical_and.html">std::logical_and</a></span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> logical_and <span class="br0">{</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> x, <span class="kw4">const</span> T<span class="sy3">&amp;</span> y<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> logical_and<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span> <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> U<span class="sy1">&gt;</span> <span class="kw4">constexpr</span> <span class="kw4">auto</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>T<span class="sy3">&amp;&amp;</span> t, U<span class="sy3">&amp;&amp;</span> u<span class="br0">)</span> <span class="kw4">const</span>
<span class="sy2">-</span><span class="sy1">&gt;</span> decltype<span class="br0">(</span><a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="br0">(</span>t<span class="br0">)</span> <span class="sy3">&amp;&amp;</span> <a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>U<span class="sy1">&gt;</span><span class="br0">(</span>u<span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">using</span> is_transparent <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::logical_or">&#31867;&#27169;&#26495; <span class="t-lc"><a href="cpp-utility-functional-logical_or.html">std::logical_or</a></span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> logical_or <span class="br0">{</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> x, <span class="kw4">const</span> T<span class="sy3">&amp;</span> y<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> logical_or<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span> <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> U<span class="sy1">&gt;</span> <span class="kw4">constexpr</span> <span class="kw4">auto</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>T<span class="sy3">&amp;&amp;</span> t, U<span class="sy3">&amp;&amp;</span> u<span class="br0">)</span> <span class="kw4">const</span>
<span class="sy2">-</span><span class="sy1">&gt;</span> decltype<span class="br0">(</span><a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="br0">(</span>t<span class="br0">)</span> <span class="sy3">||</span> <a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>U<span class="sy1">&gt;</span><span class="br0">(</span>u<span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">using</span> is_transparent <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::logical_not">&#31867;&#27169;&#26495; <span class="t-lc"><a href="cpp-utility-functional-logical_not.html">std::logical_not</a></span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> logical_not <span class="br0">{</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> x<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> logical_not<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span> <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw4">constexpr</span> <span class="kw4">auto</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>T<span class="sy3">&amp;&amp;</span> t<span class="br0">)</span> <span class="kw4">const</span>
<span class="sy2">-</span><span class="sy1">&gt;</span> decltype<span class="br0">(</span><span class="sy3">!</span><a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="br0">(</span>t<span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">using</span> is_transparent <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::bit_and">&#31867;&#27169;&#26495; <span class="t-lc"><a href="cpp-utility-functional-bit_and.html">std::bit_and</a></span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> bit_and <span class="br0">{</span>
<span class="kw4">constexpr</span> T operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> x, <span class="kw4">const</span> T<span class="sy3">&amp;</span> y<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> bit_and<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span> <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> U<span class="sy1">&gt;</span> <span class="kw4">constexpr</span> <span class="kw4">auto</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>T<span class="sy3">&amp;&amp;</span> t, U<span class="sy3">&amp;&amp;</span> u<span class="br0">)</span> <span class="kw4">const</span>
<span class="sy2">-</span><span class="sy1">&gt;</span> decltype<span class="br0">(</span><a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="br0">(</span>t<span class="br0">)</span> <span class="sy3">&amp;</span> <a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>U<span class="sy1">&gt;</span><span class="br0">(</span>u<span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">using</span> is_transparent <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::bit_or">&#31867;&#27169;&#26495; <span class="t-lc"><a href="cpp-utility-functional-bit_or.html">std::bit_or</a></span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> bit_or <span class="br0">{</span>
<span class="kw4">constexpr</span> T operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> x, <span class="kw4">const</span> T<span class="sy3">&amp;</span> y<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> bit_or<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span> <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> U<span class="sy1">&gt;</span> <span class="kw4">constexpr</span> <span class="kw4">auto</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>T<span class="sy3">&amp;&amp;</span> t, U<span class="sy3">&amp;&amp;</span> u<span class="br0">)</span> <span class="kw4">const</span>
<span class="sy2">-</span><span class="sy1">&gt;</span> decltype<span class="br0">(</span><a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="br0">(</span>t<span class="br0">)</span> <span class="sy3">|</span> <a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>U<span class="sy1">&gt;</span><span class="br0">(</span>u<span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">using</span> is_transparent <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::bit_xor">&#31867;&#27169;&#26495; <span class="t-lc">std::bit_xor</span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> bit_xor <span class="br0">{</span>
<span class="kw4">constexpr</span> T operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> x, <span class="kw4">const</span> T<span class="sy3">&amp;</span> y<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> bit_xor<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span> <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> U<span class="sy1">&gt;</span> <span class="kw4">constexpr</span> <span class="kw4">auto</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>T<span class="sy3">&amp;&amp;</span> t, U<span class="sy3">&amp;&amp;</span> u<span class="br0">)</span> <span class="kw4">const</span>
<span class="sy2">-</span><span class="sy1">&gt;</span> decltype<span class="br0">(</span><a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="br0">(</span>t<span class="br0">)</span> <span class="sy3">^</span> <a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>U<span class="sy1">&gt;</span><span class="br0">(</span>u<span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">using</span> is_transparent <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::bit_not">&#31867;&#27169;&#26495; <span class="t-lc"><a href="cpp-utility-functional-bit_not.html">std::bit_not</a></span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T <span class="sy1">=</span> <span class="kw4">void</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> bit_not <span class="br0">{</span>
<span class="kw4">constexpr</span> T operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> x<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw1">struct</span> bit_not<span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span> <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw4">constexpr</span> <span class="kw4">auto</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>T<span class="sy3">&amp;&amp;</span> t<span class="br0">)</span> <span class="kw4">const</span>
<span class="sy2">-</span><span class="sy1">&gt;</span> decltype<span class="br0">(</span>~<a href="cpp-utility-forward.html"><span class="kw1117">std::<span class="me2">forward</span></span></a><span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="br0">(</span>t<span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">using</span> is_transparent <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::identity">&#31867;&#27169;&#26495; <span class="t-lc">std::identity</span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">struct</span> identity <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> T<span class="sy3">&amp;&amp;</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>T<span class="sy3">&amp;&amp;</span> t<span class="br0">)</span> <span class="kw4">const</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="kw1">using</span> is_transparent <span class="sy1">=</span> <span class="coMULTI">/* &#26410;&#25351;&#26126; */</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::is_bind_expression">&#31867;&#27169;&#26495; <span class="t-lc"><a href="cpp-utility-functional-is_bind_expression.html">std::is_bind_expression</a></span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw1">struct</span> is_bind_expression<span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::is_placeholder">&#31867;&#27169;&#26495; <span class="t-lc"><a href="cpp-utility-functional-is_placeholder.html">std::is_placeholder</a></span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw1">struct</span> is_placeholder<span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB_std::bad_function_call">&#31867; <span class="t-lc"><a href="cpp-utility-functional-bad_function_call.html">std::bad_function_call</a></span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">class</span> bad_function_call <span class="sy4">:</span> <span class="kw1">public</span> exception <span class="br0">{</span>
<span class="kw1">public</span><span class="sy4">:</span>
<span class="co1">// &#29305;&#27530;&#25104;&#21592;&#20989;&#25968;&#30340;&#35268;&#23450;&#35265; [exception]</span>
<span class="kw4">const</span> <span class="kw4">char</span><span class="sy2">*</span> what<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span> <span class="kw1">noexcept</span> override<span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::function">&#31867;&#27169;&#26495; <span class="t-lc"><a href="cpp-utility-functional-function.html">std::function</a></span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span><span class="sy1">&gt;</span> <span class="kw1">class</span> function<span class="sy4">;</span> <span class="co1">// &#19981;&#23450;&#20041;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> R, <span class="kw1">class</span>... <span class="me1">ArgTypes</span><span class="sy1">&gt;</span>
<span class="kw1">class</span> function<span class="sy1">&lt;</span>R<span class="br0">(</span>ArgTypes...<span class="br0">)</span><span class="sy1">&gt;</span> <span class="br0">{</span>
<span class="kw1">public</span><span class="sy4">:</span>
<span class="kw1">using</span> result_type <span class="sy1">=</span> R<span class="sy4">;</span>
<span class="co1">// &#26500;&#36896;/&#22797;&#21046;/&#38144;&#27585;</span>
function<span class="br0">(</span><span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
function<span class="br0">(</span>nullptr_t<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
function<span class="br0">(</span><span class="kw4">const</span> function<span class="sy3">&amp;</span><span class="br0">)</span><span class="sy4">;</span>
function<span class="br0">(</span>function<span class="sy3">&amp;&amp;</span><span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> F<span class="sy1">&gt;</span> function<span class="br0">(</span>F<span class="br0">)</span><span class="sy4">;</span>
function<span class="sy3">&amp;</span> operator<span class="sy1">=</span><span class="br0">(</span><span class="kw4">const</span> function<span class="sy3">&amp;</span><span class="br0">)</span><span class="sy4">;</span>
function<span class="sy3">&amp;</span> operator<span class="sy1">=</span><span class="br0">(</span>function<span class="sy3">&amp;&amp;</span><span class="br0">)</span><span class="sy4">;</span>
function<span class="sy3">&amp;</span> operator<span class="sy1">=</span><span class="br0">(</span>nullptr_t<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> F<span class="sy1">&gt;</span> function<span class="sy3">&amp;</span> operator<span class="sy1">=</span><span class="br0">(</span>F<span class="sy3">&amp;&amp;</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> F<span class="sy1">&gt;</span> function<span class="sy3">&amp;</span> operator<span class="sy1">=</span><span class="br0">(</span>reference_wrapper<span class="sy1">&lt;</span>F<span class="sy1">&gt;</span><span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
~function<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
<span class="co1">// function &#20462;&#25913;&#22120;</span>
<span class="kw4">void</span> swap<span class="br0">(</span>function<span class="sy3">&amp;</span><span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="co1">// function &#23481;&#37327;</span>
<span class="kw1">explicit</span> operator <span class="kw4">bool</span><span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="co1">// function &#35843;&#29992;</span>
R operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>ArgTypes...<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="co1">// function &#30446;&#26631;&#35775;&#38382;</span>
<span class="kw4">const</span> type_info<span class="sy3">&amp;</span> target_type<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> T<span class="sy2">*</span> target<span class="br0">(</span><span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw4">const</span> T<span class="sy2">*</span> target<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> R, <span class="kw1">class</span>... <span class="me1">ArgTypes</span><span class="sy1">&gt;</span>
function<span class="br0">(</span>R<span class="br0">(</span><span class="sy2">*</span><span class="br0">)</span><span class="br0">(</span>ArgTypes...<span class="br0">)</span><span class="br0">)</span> <span class="sy2">-</span><span class="sy1">&gt;</span> function<span class="sy1">&lt;</span>R<span class="br0">(</span>ArgTypes...<span class="br0">)</span><span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> F<span class="sy1">&gt;</span> function<span class="br0">(</span>F<span class="br0">)</span> <span class="sy2">-</span><span class="sy1">&gt;</span> function<span class="sy1">&lt;</span><span class="coMULTI">/* see description */</span><span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="co1">// &#31354;&#25351;&#38024;&#27604;&#36739;&#20989;&#25968;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> R, <span class="kw1">class</span>... <span class="me1">ArgTypes</span><span class="sy1">&gt;</span>
<span class="kw4">bool</span> operator<span class="sy1">==</span><span class="br0">(</span><span class="kw4">const</span> function<span class="sy1">&lt;</span>R<span class="br0">(</span>ArgTypes...<span class="br0">)</span><span class="sy1">&gt;</span><span class="sy3">&amp;</span>, nullptr_t<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="co1">// &#29305;&#21270;&#30340;&#31639;&#27861;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> R, <span class="kw1">class</span>... <span class="me1">ArgTypes</span><span class="sy1">&gt;</span>
<span class="kw4">void</span> swap<span class="br0">(</span>function<span class="sy1">&lt;</span>R<span class="br0">(</span>ArgTypes...<span class="br0">)</span><span class="sy1">&gt;</span><span class="sy3">&amp;</span>, function<span class="sy1">&lt;</span>R<span class="br0">(</span>ArgTypes...<span class="br0">)</span><span class="sy1">&gt;</span><span class="sy3">&amp;</span><span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::move_only_function">&#31867;&#27169;&#26495; <span class="t-lc">std::move_only_function</span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span>... <span class="me1">S</span><span class="sy1">&gt;</span> <span class="kw1">class</span> move_only_function<span class="sy4">;</span> <span class="co1">// &#19981;&#23450;&#20041;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> R, <span class="kw1">class</span>... <span class="me1">ArgTypes</span><span class="sy1">&gt;</span>
<span class="kw1">class</span> move_only_function<span class="sy1">&lt;</span>R<span class="br0">(</span>ArgTypes...<span class="br0">)</span> <span class="coMULTI">/*cv-ref*/</span> <span class="kw1">noexcept</span><span class="br0">(</span><span class="coMULTI">/*noex*/</span><span class="br0">)</span><span class="sy1">&gt;</span> <span class="br0">{</span>
<span class="kw1">public</span><span class="sy4">:</span>
<span class="kw1">using</span> result_type <span class="sy1">=</span> R<span class="sy4">;</span>
<span class="co1">// &#26500;&#36896;/&#31227;&#21160;/&#38144;&#27585;</span>
move_only_function<span class="br0">(</span><span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
move_only_function<span class="br0">(</span>nullptr_t<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
move_only_function<span class="br0">(</span>move_only_function<span class="sy3">&amp;&amp;</span><span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> F<span class="sy1">&gt;</span> move_only_function<span class="br0">(</span>F<span class="sy3">&amp;&amp;</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>... <span class="me1">Args</span><span class="sy1">&gt;</span>
<span class="kw1">explicit</span> move_only_function<span class="br0">(</span>in_place_type_t<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span>, Args<span class="sy3">&amp;&amp;</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> U, <span class="kw1">class</span>... <span class="me1">Args</span><span class="sy1">&gt;</span>
<span class="kw1">explicit</span> move_only_function<span class="br0">(</span>in_place_type_t<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span>, initializer_list<span class="sy1">&lt;</span>U<span class="sy1">&gt;</span>, Args<span class="sy3">&amp;&amp;</span>...<span class="br0">)</span><span class="sy4">;</span>
move_only_function<span class="sy3">&amp;</span> operator<span class="sy1">=</span><span class="br0">(</span>move_only_function<span class="sy3">&amp;&amp;</span><span class="br0">)</span><span class="sy4">;</span>
move_only_function<span class="sy3">&amp;</span> operator<span class="sy1">=</span><span class="br0">(</span>nullptr_t<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> F<span class="sy1">&gt;</span> move_only_function<span class="sy3">&amp;</span> operator<span class="sy1">=</span><span class="br0">(</span>F<span class="sy3">&amp;&amp;</span><span class="br0">)</span><span class="sy4">;</span>
~move_only_function<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
<span class="co1">// move_only_function &#35843;&#29992;</span>
<span class="kw1">explicit</span> operator <span class="kw4">bool</span><span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
R operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>ArgTypes...<span class="br0">)</span> <span class="coMULTI">/*cv-ref*/</span> <span class="kw1">noexcept</span><span class="br0">(</span><span class="coMULTI">/*noex*/</span><span class="br0">)</span><span class="sy4">;</span>
<span class="co1">// move_only_function &#24037;&#20855;</span>
<span class="kw4">void</span> swap<span class="br0">(</span>move_only_function<span class="sy3">&amp;</span><span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="kw1">friend</span> <span class="kw4">void</span> swap<span class="br0">(</span>move_only_function<span class="sy3">&amp;</span>, move_only_function<span class="sy3">&amp;</span><span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="kw1">friend</span> <span class="kw4">bool</span> operator<span class="sy1">==</span><span class="br0">(</span><span class="kw4">const</span> move_only_function<span class="sy3">&amp;</span>, nullptr_t<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="kw1">private</span><span class="sy4">:</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> VT<span class="sy1">&gt;</span>
<span class="kw4">static</span> <span class="kw4">constexpr</span> <span class="kw4">bool</span> <span class="coMULTI">/*is-callable-from*/</span> <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#25551;&#36848; */</span><span class="sy4">;</span> <span class="co1">// &#20165;&#29992;&#20110;&#38416;&#37322;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::default_searcher">&#31867;&#27169;&#26495; <span class="t-lc"><a href="cpp-utility-functional-default_searcher.html">std::default_searcher</a></span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> BinaryPredicate <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
<span class="kw1">class</span> default_searcher <span class="br0">{</span>
<span class="kw1">public</span><span class="sy4">:</span>
<span class="kw4">constexpr</span> default_searcher<span class="br0">(</span>ForwardIter1 pat_first, ForwardIter1 pat_last,
BinaryPredicate pred <span class="sy1">=</span> BinaryPredicate<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> ForwardIter2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> pair<span class="sy1">&lt;</span>ForwardIter2, ForwardIter2<span class="sy1">&gt;</span>
operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>ForwardIter2 first, ForwardIter2 last<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="kw1">private</span><span class="sy4">:</span>
ForwardIter1 pat_first_<span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
ForwardIter1 pat_last_<span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
BinaryPredicate pred_<span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::boyer_moore_searcher">&#31867;&#27169;&#26495; <span class="t-lc"><a href="cpp-utility-functional-boyer_moore_searcher.html">std::boyer_moore_searcher</a></span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> RandomAccessIter1,
<span class="kw1">class</span> Hash <span class="sy1">=</span> hash<span class="sy1">&lt;</span><span class="kw1">typename</span> iterator_traits<span class="sy1">&lt;</span>RandomAccessIter1<span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">value_type</span><span class="sy1">&gt;</span>,
<span class="kw1">class</span> BinaryPredicate <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
<span class="kw1">class</span> boyer_moore_searcher <span class="br0">{</span>
<span class="kw1">public</span><span class="sy4">:</span>
boyer_moore_searcher<span class="br0">(</span>RandomAccessIter1 pat_first,
RandomAccessIter1 pat_last,
Hash hf <span class="sy1">=</span> Hash<span class="br0">(</span><span class="br0">)</span>,
BinaryPredicate pred <span class="sy1">=</span> BinaryPredicate<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> RandomAccessIter2<span class="sy1">&gt;</span>
pair<span class="sy1">&lt;</span>RandomAccessIter2, RandomAccessIter2<span class="sy1">&gt;</span>
operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>RandomAccessIter2 first, RandomAccessIter2 last<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="kw1">private</span><span class="sy4">:</span>
RandomAccessIter1 pat_first_<span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
RandomAccessIter1 pat_last_<span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
Hash hash_<span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
BinaryPredicate pred_<span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::boyer_moore_horspool_searcher">&#31867;&#27169;&#26495; <span class="t-lc"><a href="cpp-utility-functional-boyer_moore_horspool_searcher.html">std::boyer_moore_horspool_searcher</a></span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> RandomAccessIter1,
<span class="kw1">class</span> Hash <span class="sy1">=</span> hash<span class="sy1">&lt;</span><span class="kw1">typename</span> iterator_traits<span class="sy1">&lt;</span>RandomAccessIter1<span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">value_type</span><span class="sy1">&gt;</span>,
<span class="kw1">class</span> BinaryPredicate <span class="sy1">=</span> equal_to<span class="sy1">&lt;&gt;&gt;</span>
<span class="kw1">class</span> boyer_moore_horspool_searcher <span class="br0">{</span>
<span class="kw1">public</span><span class="sy4">:</span>
boyer_moore_horspool_searcher<span class="br0">(</span>RandomAccessIter1 pat_first,
RandomAccessIter1 pat_last,
Hash hf <span class="sy1">=</span> Hash<span class="br0">(</span><span class="br0">)</span>,
BinaryPredicate pred <span class="sy1">=</span> BinaryPredicate<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> RandomAccessIter2<span class="sy1">&gt;</span>
pair<span class="sy1">&lt;</span>RandomAccessIter2, RandomAccessIter2<span class="sy1">&gt;</span>
operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span>RandomAccessIter2 first, RandomAccessIter2 last<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<span class="kw1">private</span><span class="sy4">:</span>
RandomAccessIter1 pat_first_<span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
RandomAccessIter1 pat_last_<span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
Hash hash_<span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
BinaryPredicate pred_<span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h3><span class="mw-headline" id=".E5.8F.82.E9.98.85">&#21442;&#38405;</span></h3>
<table class="t-dsc-begin">
<tr class="t-dsc">
<td><a href="cpp-header-string.html"><tt>&lt;string&gt;</tt></a></td>
<td>&#38024;&#23545; <span class="t-lc"><a href="cpp-string-basic_string.html">std::string</a></span>&#12289;<span class="t-lc"><a href="cpp-string-basic_string.html">std::u16string</a></span>&#12289;<span class="t-lc"><a href="cpp-string-basic_string.html">std::u32string</a></span>&#12289;<span class="t-lc"><a href="cpp-string-basic_string.html">std::wstring</a></span> &#29305;&#21270; <span class="t-lc"><a href="cpp-utility-hash.html">std::hash</a></span></td>
</tr>
<tr class="t-dsc">
<td><a href="cpp-header-string_view.html"><tt>&lt;string_view&gt;</tt></a></td>
<td>&#38024;&#23545; <span class="t-lc"><a href="cpp-string-basic_string_view.html">std::string_view</a></span>&#12289;<span class="t-lc"><a href="cpp-string-basic_string_view.html">std::u16string_view</a></span>&#12289;<span class="t-lc"><a href="cpp-string-basic_string_view.html">std::u32string_view</a></span>&#12289;<span class="t-lc"><a href="cpp-string-basic_string_view.html">std::wstring_view</a></span> &#29305;&#21270; <span class="t-lc"><a href="cpp-utility-hash.html">std::hash</a></span></td>
</tr>
<tr class="t-dsc">
<td><a href="cpp-header-system_error.html"><tt>&lt;system_error&gt;</tt></a></td>
<td>&#38024;&#23545; <span class="t-lc"><a href="cpp-error-error_code.html">std::error_code</a></span> &#29305;&#21270; <span class="t-lc"><a href="cpp-utility-hash.html">std::hash</a></span></td>
</tr>
<tr class="t-dsc">
<td><a href="cpp-header-bitset.html"><tt>&lt;bitset&gt;</tt></a></td>
<td>&#38024;&#23545; <span class="t-lc"><a href="cpp-utility-bitset.html">std::bitset</a></span> &#29305;&#21270; <span class="t-lc"><a href="cpp-utility-hash.html">std::hash</a></span></td>
</tr>
<tr class="t-dsc">
<td><a href="cpp-header-memory.html"><tt>&lt;memory&gt;</tt></a></td>
<td>&#38024;&#23545; <span class="t-lc"><a href="cpp-memory-unique_ptr.html">std::unique_ptr</a></span>&#12289;<span class="t-lc"><a href="cpp-memory-shared_ptr.html">std::shared_ptr</a></span> &#29305;&#21270; <span class="t-lc"><a href="cpp-utility-hash.html">std::hash</a></span></td>
</tr>
<tr class="t-dsc">
<td><a href="cpp-header-typeindex.html"><tt>&lt;typeindex&gt;</tt></a></td>
<td>&#38024;&#23545; <span class="t-lc"><a href="cpp-types-type_index.html">std::type_index</a></span> &#29305;&#21270; <span class="t-lc"><a href="cpp-utility-hash.html">std::hash</a></span></td>
</tr>
<tr class="t-dsc">
<td><a href="cpp-header-vector.html"><tt>&lt;vector&gt;</tt></a></td>
<td>&#38024;&#23545; <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-container-vector.html"><span class="kw1269">std::<span class="me2">vector</span></span></a><span class="sy1">&lt;</span><span class="kw4">bool</span><span class="sy1">&gt;</span></span></span> &#29305;&#21270; <span class="t-lc"><a href="cpp-utility-hash.html">std::hash</a></span></td>
</tr>
<tr class="t-dsc">
<td><a href="cpp-header-thread.html"><tt>&lt;thread&gt;</tt></a></td>
<td>&#38024;&#23545; <span class="t-lc"><a href="cpp-thread-thread-id.html">std::thread::id</a></span> &#29305;&#21270; <span class="t-lc"><a href="cpp-utility-hash.html">std::hash</a></span></td>
</tr>
<tr class="t-dsc">
<td><a href="cpp-header-optional.html"><tt>&lt;optional&gt;</tt></a></td>
<td>&#38024;&#23545; <span class="t-lc"><a href="cpp-utility-optional.html">std::optional</a></span> &#29305;&#21270; <span class="t-lc"><a href="cpp-utility-hash.html">std::hash</a></span></td>
</tr>
<tr class="t-dsc">
<td><a href="cpp-header-variant.html"><tt>&lt;variant&gt;</tt></a></td>
<td>&#38024;&#23545; <span class="t-lc"><a href="cpp-utility-variant.html">std::variant</a></span> &#29305;&#21270; <span class="t-lc"><a href="cpp-utility-hash.html">std::hash</a></span></td>
</tr>
<tr class="t-dsc">
<td><a href="cpp-header-coroutine.html"><tt>&lt;coroutine&gt;</tt></a></td>
<td>&#38024;&#23545; <span class="t-lc">std::coroutine_handle</span> &#29305;&#21270; <span class="t-lc"><a href="cpp-utility-hash.html">std::hash</a></span></td>
</tr>
<tr class="t-dsc">
<td><a href="cpp-header-stacktrace.html"><tt>&lt;stacktrace&gt;</tt></a></td>
<td>&#38024;&#23545; <span class="t-lc">std::stacktrace_entry</span> &#21450; <span class="t-lc">std::basic_stacktrace</span> &#29305;&#21270; <span class="t-lc"><a href="cpp-utility-hash.html">std::hash</a></span></td>
</tr>
</table>
</div>
<div class="visualClear"></div>
</div>
</div>
</div>
</body>
</html>