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

672 lines
79 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>&#20989;&#25968;&#22768;&#26126;</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_language_function skin-cppreference2 action-view cpp-navbar">
<div id="cpp-content-base">
<div id="content"><a id="top"></a>
<h1 id="firstHeading" class="firstHeading">&#20989;&#25968;&#22768;&#26126;</h1>
<div id="bodyContent">
<div id="contentSub"><span class="subpages">&lt; <a href="cpp.html">cpp</a>&lrm; | <a href="cpp-language.html">language</a></span></div>
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
<p>&#20989;&#25968;&#22768;&#26126;&#24341;&#20837;&#20989;&#25968;&#21517;&#21450;&#20854;&#31867;&#22411;&#12290;&#20989;&#25968;&#23450;&#20041;&#23558;&#20989;&#25968;&#21517;/&#31867;&#22411;&#19982;&#20989;&#25968;&#20307;&#20851;&#32852;&#12290;</p>
<h3><span class="mw-headline" id=".E5.87.BD.E6.95.B0.E5.A3.B0.E6.98.8E">&#20989;&#25968;&#22768;&#26126;</span></h3>
<p>&#20989;&#25968;&#22768;&#26126;&#21487;&#20986;&#29616;&#20110;&#20219;&#20309;&#20316;&#29992;&#22495;&#12290;&#22312;&#31867;&#20316;&#29992;&#22495;&#20013;&#30340;&#20989;&#25968;&#22768;&#26126;&#24341;&#20837;&#25104;&#21592;&#20989;&#25968;&#65288;&#38500;&#38750;&#20351;&#29992; <code>friend</code> &#35828;&#26126;&#31526;&#65289;&#65292;&#32454;&#33410;&#35265;<a href="cpp-language-member_functions.html">&#25104;&#21592;&#20989;&#25968;</a>&#21644;<a href="cpp-language-friend.html">&#21451;&#20803;&#20989;&#25968;</a>&#12290;</p>
<p>&#34987;&#22768;&#26126;&#30340;&#20989;&#25968;&#31867;&#22411;&#30001;<i>&#36820;&#22238;&#31867;&#22411;&#65288;return type&#65289;</i>&#65288;&#30001;<a href="cpp-language-declarations.html">&#22768;&#26126;&#35821;&#27861;</a>&#30340; <span class="t-spar">&#22768;&#26126;&#35828;&#26126;&#31526;&#24207;&#21015;</span> &#25552;&#20379;&#65289;&#21644;&#20989;&#25968;&#22768;&#26126;&#31526;&#65288;<span class="t-spar">&#22768;&#26126;&#31526;</span>&#65289;&#32452;&#25104;&#12290;</p>
<table class="t-sdsc-begin">
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">&#38750;&#25351;&#38024;&#22768;&#26126;&#31526;</span> <code><b>(</b></code> <span class="t-spar">&#24418;&#21442;&#21015;&#34920;</span> <code><b>)</b></code> <span class="t-spar">cv&#38480;&#23450;&#31526;</span><span class="t-mark">(&#21487;&#36873;)</span> <span class="t-spar">&#24341;&#29992;&#38480;&#23450;&#31526;</span><span class="t-mark">(&#21487;&#36873;)</span> <span class="t-spar">&#24322;&#24120;&#35828;&#26126;</span><span class="t-mark">(&#21487;&#36873;)</span> <span class="t-spar">&#23646;&#24615;</span><span class="t-mark">(&#21487;&#36873;)</span></td>
<td>(1)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">&#38750;&#25351;&#38024;&#22768;&#26126;&#31526;</span> <code><b>(</b></code> <span class="t-spar">&#24418;&#21442;&#21015;&#34920;</span> <code><b>)</b></code> <span class="t-spar">cv&#38480;&#23450;&#31526;</span><span class="t-mark">(&#21487;&#36873;)</span> <span class="t-spar">&#24341;&#29992;&#38480;&#23450;&#31526;</span><span class="t-mark">(&#21487;&#36873;)</span> <span class="t-spar">&#24322;&#24120;&#35828;&#26126;</span><span class="t-mark">(&#21487;&#36873;)</span> <span class="t-spar">&#23646;&#24615;</span><span class="t-mark">(&#21487;&#36873;)</span> <code><b>-&gt;</b></code> <span class="t-spar">&#23614;&#38543;&#36820;&#22238;&#31867;&#22411;</span></td>
<td>(2)</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
</table>
<p>&#65288;<span class="t-spar">&#22768;&#26126;&#31526;</span> &#35821;&#27861;&#30340;&#20854;&#20182;&#24418;&#24335;&#35265;<a href="cpp-language-declarations.html">&#22768;&#26126;</a>&#39029;&#38754;&#65289;</p>
<div class="t-li1"><span class="t-li">1)</span> &#24120;&#35268;&#20989;&#25968;&#22768;&#26126;&#35821;&#27861;</div>
<div class="t-li1"><span class="t-li">2)</span> &#23614;&#38543;&#36820;&#22238;&#31867;&#22411;&#22768;&#26126;&#65306;&#23614;&#38543;&#36820;&#22238;&#31867;&#22411;&#21482;&#33021;&#22312;&#26368;&#22806;&#23618;&#20989;&#25968;&#22768;&#26126;&#31526;&#20013;&#20351;&#29992;&#12290;&#27492;&#26102; <span class="t-spar">&#22768;&#26126;&#35828;&#26126;&#31526;&#24207;&#21015;</span> &#24517;&#39035;&#21253;&#21547;&#20851;&#38190;&#35789; <code>auto</code></div>
<table class="t-par-begin">
<tr class="t-par">
<td><span class="t-spar">&#38750;&#25351;&#38024;&#22768;&#26126;&#31526;</span></td>
<td>-</td>
<td>&#20219;&#20309;&#21512;&#27861;&#30340; <span class="t-spar">&#22768;&#26126;&#31526;</span>&#65292;&#20294;&#22914;&#26524;&#23427;&#20197; *&#12289;&amp; &#25110; &amp;&amp; &#24320;&#22987;&#65292;&#37027;&#20040;&#23427;&#24517;&#39035;&#34987;&#25324;&#21495;&#29615;&#32469;&#12290;</td>
</tr>
<tr class="t-par">
<td><span class="t-spar">&#24418;&#21442;&#21015;&#34920;</span></td>
<td>-</td>
<td>&#20989;&#25968;&#24418;&#21442;&#30340;&#36887;&#21495;&#20998;&#38548;&#21015;&#34920;&#65292;&#21487;&#20197;&#20026;&#31354;&#65288;&#32454;&#33410;&#35265;&#19979;&#25991;&#65289;</td>
</tr>
<tr class="t-par">
<td><span class="t-spar">&#23646;&#24615;</span></td>
<td>-</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span> &#20197;&#36887;&#21495;&#20998;&#38548;&#19988;&#21487;&#20197;&#20026;&#31354;&#30340;<a href="cpp-language-attributes.html">&#23646;&#24615;</a>&#21015;&#34920;&#12290;&#36825;&#20123;&#23646;&#24615;&#24212;&#29992;&#20110;&#20989;&#25968;&#31867;&#22411;&#65292;&#32780;&#38750;&#20989;&#25968;&#33258;&#36523;&#12290;&#22312;&#22768;&#26126;&#31526;&#20013;&#26631;&#35782;&#31526;&#20043;&#21518;&#20986;&#29616;&#30340;&#23646;&#24615;&#19982;&#26377;&#21487;&#33021;&#22312;&#22768;&#26126;&#24320;&#31471;&#20986;&#29616;&#30340;&#23646;&#24615;&#21512;&#24182;&#65292;&#22914;&#26524;&#23384;&#22312;&#12290;</td>
</tr>
<tr class="t-par">
<td><span class="t-spar">cv&#38480;&#23450;&#31526;</span></td>
<td>-</td>
<td>const/volatile &#38480;&#23450;&#65292;&#21482;&#20801;&#35768;&#22312;&#38750;&#38745;&#24577;&#25104;&#21592;&#20989;&#25968;&#20013;&#20351;&#29992;</td>
</tr>
<tr class="t-par">
<td><span class="t-spar">&#24341;&#29992;&#38480;&#23450;&#31526;</span></td>
<td>-</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span> &#24341;&#29992;&#38480;&#23450;&#65292;&#21482;&#20801;&#35768;&#22312;&#38750;&#38745;&#24577;&#25104;&#21592;&#20989;&#25968;&#20013;&#20351;&#29992;</td>
</tr>
<tr class="t-par">
<td><span class="t-spar">&#24322;&#24120;&#35828;&#26126;</span></td>
<td>-</td>
<td>
<table class="t-rev-begin">
<tr class="t-rev t-until-cxx11">
<td>
<p><a href="cpp-language-except_spec.html">&#21160;&#24577;&#24322;&#24120;&#35828;&#26126;</a></p>
</td>
<td><span class="t-mark-rev t-until-cxx11">(C++11 &#21069;)</span></td>
</tr>
<tr class="t-rev t-since-cxx11 t-until-cxx17">
<td>
<p><a href="cpp-language-except_spec.html">&#21160;&#24577;&#24322;&#24120;&#35828;&#26126;</a>&#25110; <a href="cpp-language-noexcept_spec.html">noexcept &#35828;&#26126;</a>&#20043;&#19968;</p>
</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span><br />
<span class="t-mark-rev t-until-cxx17">(C++17 &#21069;)</span></td>
</tr>
<tr class="t-rev t-since-cxx17">
<td>
<p><a href="cpp-language-noexcept_spec.html">noexcept &#35828;&#26126;</a></p>
</td>
<td><span class="t-mark-rev t-since-cxx17">(C++17 &#36215;)</span></td>
</tr>
</table>
<p><span class="t-rev-inl t-until-cxx17"><span>&#27880;&#24847;&#65292;&#24322;&#24120;&#35828;&#26126;&#19981;&#26159;&#20989;&#25968;&#31867;&#22411;&#30340;&#19968;&#37096;&#20998;&#12290;</span> <span><span class="t-mark-rev t-until-cxx17">(C++17 &#21069;)</span></span></span></p>
</td>
</tr>
<tr class="t-par">
<td><span class="t-spar">&#23614;&#38543;&#36820;&#22238;&#31867;&#22411;</span></td>
<td>-</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span>&#23614;&#38543;&#36820;&#22238;&#31867;&#22411;&#65292;&#24403;&#36820;&#22238;&#31867;&#22411;&#21462;&#20915;&#20110;&#23454;&#21442;&#21517;&#26102;&#65292;&#20363;&#22914; <span class="t-c"><span class="mw-geshi cpp source-cpp"><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">auto</span> add<span class="br0">(</span>T t, U u<span class="br0">)</span> <span class="sy2">-</span><span class="sy1">&gt;</span> decltype<span class="br0">(</span>t <span class="sy2">+</span> u<span class="br0">)</span><span class="sy4">;</span></span></span>&#65292;&#25110;&#24403;&#36820;&#22238;&#31867;&#22411;&#22797;&#26434;&#26102;&#65292;&#20363;&#22914;&#22312; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">auto</span> fpif<span class="br0">(</span><span class="kw4">int</span><span class="br0">)</span><span class="sy2">-</span><span class="sy1">&gt;</span><span class="kw4">int</span><span class="br0">(</span><span class="sy2">*</span><span class="br0">)</span><span class="br0">(</span><span class="kw4">int</span><span class="br0">)</span></span></span> &#20013;&#65292;&#23614;&#38543;&#36820;&#22238;&#31867;&#22411;&#24456;&#26377;&#29992;</td>
</tr>
</table>
<table class="t-rev-begin">
<tr class="t-rev t-since-cxx20">
<td>
<p>&#22914;<a href="cpp-language-declarations.html#.E5.A3.B0.E6.98.8E.E7.AC.A6">&#22768;&#26126;</a>&#39029;&#38754;&#25152;&#31034;&#65292;&#22768;&#26126;&#31526;&#21487;&#20197;&#21518;&#38543; <i>requires</i> &#23376;&#21477;&#65292;&#23427;&#22768;&#26126;&#19982;&#35813;&#20989;&#25968;&#20851;&#32852;&#30340;<a href="cpp-language-constraints.html">&#21046;&#32422;</a>&#65292;&#32780;<a href="cpp-language-overload_resolution.html">&#37325;&#36733;&#20915;&#35758;</a>&#25152;&#35201;&#36873;&#25321;&#30340;&#20989;&#25968;&#24517;&#39035;&#28385;&#36275;&#35813;&#21046;&#32422;&#12290;&#65288;&#20363;&#22914; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">void</span> f1<span class="br0">(</span><span class="kw4">int</span> a<span class="br0">)</span> requires <span class="kw2">true</span><span class="sy4">;</span></span></span>&#65289;&#27880;&#24847;&#65292;&#20851;&#32852;&#30340;&#21046;&#32422;&#26159;&#20989;&#25968;&#31614;&#21517;&#30340;&#19968;&#37096;&#20998;&#65292;&#20294;&#19981;&#26159;&#20989;&#25968;&#31867;&#22411;&#30340;&#19968;&#37096;&#20998;&#12290;</p>
</td>
<td><span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></td>
</tr>
</table>
<p>&#21482;&#35201; <span class="t-spar">&#22768;&#26126;&#35828;&#26126;&#31526;&#24207;&#21015;</span> &#20801;&#35768;&#65292;&#20989;&#25968;&#22768;&#26126;&#31526;&#23601;&#21487;&#20197;&#21644;&#20854;&#20182;&#22768;&#26126;&#31526;&#28151;&#21512;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="co1">// &#22768;&#26126;&#19968;&#20010; int&#12289;&#19968;&#20010; int*&#12289;&#19968;&#20010;&#20989;&#25968;&#65292;&#21450;&#19968;&#20010;&#20989;&#25968;&#25351;&#38024;</span>
<span class="kw4">int</span> a <span class="sy1">=</span> <span class="nu0">1</span>, <span class="sy2">*</span>p <span class="sy1">=</span> <a href="cpp-types-NULL.html"><span class="kw103">NULL</span></a>, f<span class="br0">(</span><span class="br0">)</span>, <span class="br0">(</span><span class="sy2">*</span>pf<span class="br0">)</span><span class="br0">(</span><span class="kw4">double</span><span class="br0">)</span><span class="sy4">;</span>
<span class="co1">// &#22768;&#26126;&#35828;&#26126;&#31526;&#24207;&#21015; &#26159; int</span>
<span class="co1">// &#22768;&#26126;&#31526; f() &#22768;&#26126;&#65288;&#20294;&#19981;&#23450;&#20041;&#65289;&#19968;&#20010;&#19981;&#25509;&#21463;&#23454;&#21442;&#24182;&#36820;&#22238; int &#30340;&#20989;&#25968;</span>
<span class="kw1">struct</span> S
<span class="br0">{</span>
<span class="kw1">virtual</span> <span class="kw4">int</span> f<span class="br0">(</span><span class="kw4">char</span><span class="br0">)</span> <span class="kw4">const</span>, g<span class="br0">(</span><span class="kw4">int</span><span class="br0">)</span> <span class="sy3">&amp;&amp;</span><span class="sy4">;</span> <span class="co1">// &#22768;&#26126;&#20004;&#20010;&#38750;&#38745;&#24577;&#25104;&#21592;&#20989;&#25968;</span>
<span class="kw1">virtual</span> <span class="kw4">int</span> f<span class="br0">(</span><span class="kw4">char</span><span class="br0">)</span>, x<span class="sy4">;</span> <span class="co1">// &#32534;&#35793;&#26102;&#38169;&#35823;&#65306;&#65288;&#22768;&#26126;&#35828;&#26126;&#31526;&#24207;&#21015;&#20013;&#30340;&#65289;virtual</span>
<span class="co1">// &#21482;&#33021;&#22768;&#26126;&#38750;&#38745;&#24577;&#25104;&#21592;&#20989;&#25968;</span>
<span class="br0">}</span><span class="sy4">;</span></pre></div>
</div>
<table class="t-rev-begin">
<tr class="t-rev t-since-cxx20">
<td>
<p>&#20197; volatile &#38480;&#23450;&#30340;&#23545;&#35937;&#31867;&#22411;&#20316;&#20026;&#24418;&#21442;&#31867;&#22411;&#25110;&#36820;&#22238;&#31867;&#22411;&#26159;&#34987;&#24323;&#29992;&#30340;&#12290;</p>
</td>
<td><span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></td>
</tr>
</table>
<p>&#20989;&#25968;&#30340;&#36820;&#22238;&#31867;&#22411;&#19981;&#33021;&#26159;&#20989;&#25968;&#31867;&#22411;&#25110;&#25968;&#32452;&#31867;&#22411;&#65288;&#20294;&#21487;&#20197;&#26159;&#21040;&#23427;&#20204;&#30340;&#25351;&#38024;&#25110;&#24341;&#29992;&#65289;&#12290;</p>
<table class="t-rev-begin">
<tr class="t-rev t-since-cxx11">
<td>
<p>&#19982;&#20219;&#20309;&#22768;&#26126;&#30456;&#21516;&#65292;&#22768;&#26126;&#21069;&#20986;&#29616;&#30340;&#23646;&#24615;&#21644;&#22768;&#26126;&#31526;&#20013;&#30452;&#25509;&#36319;&#22312;&#26631;&#35782;&#31526;&#20043;&#21518;&#30340;&#23646;&#24615;&#37117;&#20250;&#24212;&#29992;&#21040;&#25152;&#22768;&#26126;&#25110;&#23450;&#20041;&#30340;&#23454;&#20307;&#65288;&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#24212;&#29992;&#21040;&#20989;&#25968;&#65289;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="br0">[</span><span class="br0">[</span>noreturn<span class="br0">]</span><span class="br0">]</span> <span class="kw4">void</span> f <span class="br0">[</span><span class="br0">[</span>noreturn<span class="br0">]</span><span class="br0">]</span> <span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// OK&#65306;&#20004;&#20010;&#23646;&#24615;&#37117;&#24212;&#29992;&#21040;&#20989;&#25968; f</span></pre></div>
</div>
<p>&#28982;&#32780;&#65292;&#65288;&#25353;&#19978;&#36848;&#35821;&#27861;&#65289;&#22312;&#22768;&#26126;&#31526;&#21518;&#20986;&#29616;&#30340;&#23646;&#24615;&#20250;&#24212;&#29992;&#21040;&#20989;&#25968;&#31867;&#22411;&#32780;&#38750;&#20989;&#25968;&#33258;&#36523;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">void</span> f<span class="br0">(</span><span class="br0">)</span> <span class="br0">[</span><span class="br0">[</span>noreturn<span class="br0">]</span><span class="br0">]</span><span class="sy4">;</span> <span class="co1">// &#38169;&#35823;&#65306;&#27492;&#23646;&#24615;&#23545;&#20989;&#25968;&#33258;&#36523;&#27809;&#26377;&#24433;&#21709;</span></pre></div>
</div>
</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
</table>
<p>&#19982;&#20219;&#20309;&#22768;&#26126;&#30456;&#21516;&#65292;<code>ret func(params)</code> &#25152;&#22768;&#26126;&#30340;&#20989;&#25968; <code>func</code> &#30340;&#31867;&#22411;&#20026; <code>ret(params)</code>&#65288;&#20294;&#36866;&#29992;&#19979;&#25991;&#25152;&#36848;&#30340;&#24418;&#21442;&#31867;&#22411;&#37325;&#32534;&#65289;&#65306;&#21442;&#35265; <a href="cpp-language-type.html#.E7.B1.BB.E5.9E.8B.E7.9A.84.E5.91.BD.E5.90.8D">&#31867;&#22411;&#30340;&#21629;&#21517;</a>&#12290;</p>
<table class="t-rev-begin">
<tr class="t-rev t-since-cxx14">
<td>
<h3><span class="mw-headline" id=".E8.BF.94.E5.9B.9E.E7.B1.BB.E5.9E.8B.E6.8E.A8.E5.AF.BC">&#36820;&#22238;&#31867;&#22411;&#25512;&#23548;</span></h3>
<p>&#22914;&#26524;&#20989;&#25968;&#22768;&#26126;&#30340; <i>&#22768;&#26126;&#35828;&#26126;&#31526;&#24207;&#21015;</i> &#21253;&#21547;&#20851;&#38190;&#35789; <code>auto</code>&#65292;&#37027;&#20040;&#23614;&#38543;&#36820;&#22238;&#31867;&#22411;&#21487;&#20197;&#30465;&#30053;&#65292;&#19988;&#32534;&#35793;&#22120;&#23558;&#20174;&#36820;&#22238;&#35821;&#21477;&#20013;&#25152;&#29992;&#30340;&#34920;&#36798;&#24335;&#30340;&#31867;&#22411;&#25512;&#23548;&#20986;&#23427;&#12290;&#22914;&#26524;&#36820;&#22238;&#31867;&#22411;&#27809;&#26377;&#20351;&#29992; <code>decltype(auto)</code>&#65292;&#37027;&#20040;&#25512;&#23548;&#36981;&#24490;<a href="cpp-language-template_argument_deduction.html#.E5.85.B6.E4.BB.96.E8.AF.AD.E5.A2.83">&#27169;&#26495;&#23454;&#21442;&#25512;&#23548;</a>&#30340;&#35268;&#21017;&#36827;&#34892;&#12290;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">int</span> x <span class="sy1">=</span> <span class="nu0">1</span><span class="sy4">;</span>
<span class="kw4">auto</span> f<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> x<span class="sy4">;</span> <span class="br0">}</span> <span class="co1">// &#36820;&#22238;&#31867;&#22411;&#26159; int</span>
<span class="kw4">const</span> <span class="kw4">auto</span><span class="sy3">&amp;</span> f<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> x<span class="sy4">;</span> <span class="br0">}</span> <span class="co1">// &#36820;&#22238;&#31867;&#22411;&#26159; const int&amp;</span></pre></div>
</div>
<p>&#22914;&#26524;&#36820;&#22238;&#31867;&#22411;&#26159; <code>decltype(auto)</code>&#65292;&#37027;&#20040;&#36820;&#22238;&#31867;&#22411;&#26159;&#23558;&#36820;&#22238;&#35821;&#21477;&#20013;&#25152;&#29992;&#30340;&#34920;&#36798;&#24335;&#21253;&#35065;&#21040; <a href="cpp-language-decltype.html">decltype</a> &#20013;&#26102;&#25152;&#24471;&#21040;&#30340;&#31867;&#22411;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">int</span> x <span class="sy1">=</span> <span class="nu0">1</span><span class="sy4">;</span>
decltype<span class="br0">(</span><span class="kw4">auto</span><span class="br0">)</span> f<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> x<span class="sy4">;</span> <span class="br0">}</span> <span class="co1">// &#36820;&#22238;&#31867;&#22411;&#26159; int&#65292;&#21516; decltype(x)</span>
decltype<span class="br0">(</span><span class="kw4">auto</span><span class="br0">)</span> f<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span><span class="br0">(</span>x<span class="br0">)</span><span class="sy4">;</span> <span class="br0">}</span> <span class="co1">// &#36820;&#22238;&#31867;&#22411;&#26159; int&amp;&#65292;&#21516; decltype((x))</span></pre></div>
</div>
<p>&#65288;&#27880;&#24847;&#65306;&ldquo;<code>const decltype(auto)&amp;</code>&rdquo;&#26159;&#38169;&#35823;&#30340;&#65292;<code>decltype(auto)</code> &#24517;&#39035;&#29420;&#33258;&#20351;&#29992;&#65289;</p>
<p>&#22914;&#26524;&#26377;&#22810;&#26465;&#36820;&#22238;&#35821;&#21477;&#65292;&#37027;&#20040;&#23427;&#20204;&#24517;&#39035;&#25512;&#23548;&#20986;&#30456;&#21516;&#30340;&#31867;&#22411;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">auto</span> f<span class="br0">(</span><span class="kw4">bool</span> val<span class="br0">)</span>
<span class="br0">{</span>
<span class="kw1">if</span><span class="br0">(</span>val<span class="br0">)</span> <span class="kw1">return</span> <span class="nu0">123</span><span class="sy4">;</span> <span class="co1">// &#25512;&#23548;&#36820;&#22238;&#31867;&#22411; int</span>
<span class="kw1">else</span> <span class="kw1">return</span> <span class="nu17">3.14f</span><span class="sy4">;</span> <span class="co1">// &#38169;&#35823;&#65306;&#25512;&#23548;&#36820;&#22238;&#31867;&#22411; float</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#22914;&#26524;&#27809;&#26377;&#36820;&#22238;&#35821;&#21477;&#25110;&#36820;&#22238;&#35821;&#21477;&#30340;&#23454;&#21442;&#26159; void &#34920;&#36798;&#24335;&#65292;&#37027;&#20040;&#25152;&#22768;&#26126;&#30340;&#36820;&#22238;&#31867;&#22411;&#65292;&#24517;&#39035;&#35201;&#20040;&#26159; <span class="t-c"><span class="mw-geshi cpp source-cpp">decltype<span class="br0">(</span><span class="kw4">auto</span><span class="br0">)</span></span></span>&#65292;&#27492;&#26102;&#25512;&#23548;&#36820;&#22238;&#31867;&#22411;&#26159; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">void</span></span></span>&#65292;&#35201;&#20040;&#26159;&#65288;&#21487;&#26377; cv &#38480;&#23450;&#30340;&#65289;<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">auto</span></span></span>&#65292;&#27492;&#26102;&#25512;&#23548;&#30340;&#36820;&#22238;&#31867;&#22411;&#21017;&#26159;&#65288;&#30456;&#21516; cv &#38480;&#23450;&#30340;&#65289;<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">void</span></span></span>&#12290;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">auto</span> f<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span> <span class="co1">// &#36820;&#22238; void</span>
<span class="kw4">auto</span> g<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> f<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="br0">}</span> <span class="co1">// &#36820;&#22238; void</span>
<span class="kw4">auto</span><span class="sy2">*</span> x<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span> <span class="co1">// &#38169;&#35823;: &#19981;&#33021;&#20174; void &#25512;&#23548; auto*</span></pre></div>
</div>
<p>&#19968;&#26086;&#22312;&#20989;&#25968;&#20013;&#35265;&#21040;&#19968;&#26465;&#36820;&#22238;&#35821;&#21477;&#65292;&#37027;&#20040;&#20174;&#35813;&#35821;&#21477;&#25512;&#23548;&#30340;&#36820;&#22238;&#31867;&#22411;&#23601;&#21487;&#20197;&#29992;&#20110;&#20989;&#25968;&#30340;&#21097;&#20313;&#37096;&#20998;&#65292;&#21253;&#25324;&#20854;&#20182;&#36820;&#22238;&#35821;&#21477;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">auto</span> sum<span class="br0">(</span><span class="kw4">int</span> i<span class="br0">)</span>
<span class="br0">{</span>
<span class="kw1">if</span><span class="br0">(</span>i <span class="sy1">==</span> <span class="nu0">1</span><span class="br0">)</span>
<span class="kw1">return</span> i<span class="sy4">;</span> <span class="co1">// sum &#30340;&#36820;&#22238;&#31867;&#22411;&#26159; int</span>
<span class="kw1">else</span>
<span class="kw1">return</span> sum<span class="br0">(</span>i <span class="sy2">-</span> <span class="nu0">1</span><span class="br0">)</span> <span class="sy2">+</span> i<span class="sy4">;</span> <span class="co1">// OK&#65292;sum &#30340;&#36820;&#22238;&#31867;&#22411;&#24050;&#30693;</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#22914;&#26524;&#36820;&#22238;&#35821;&#21477;&#20351;&#29992;&#33457;&#25324;&#21495;&#21021;&#22987;&#21270;&#22120;&#21015;&#34920;&#65288;brace-init-list&#65289;&#65292;&#37027;&#20040;&#19981;&#20801;&#35768;&#25512;&#23548;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">auto</span> func <span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> <span class="br0">{</span><span class="nu0">1</span>, <span class="nu0">2</span>, <span class="nu0">3</span><span class="br0">}</span><span class="sy4">;</span> <span class="br0">}</span> <span class="co1">// &#38169;&#35823;</span></pre></div>
</div>
<p><a href="cpp-language-virtual.html">&#34394;&#20989;&#25968;</a><span class="t-rev-inl t-since-cxx20"><span>&#19982;<a href="cpp-language-coroutines.html">&#21327;&#31243;</a></span> <span><span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></span></span>&#19981;&#33021;&#20351;&#29992;&#36820;&#22238;&#31867;&#22411;&#25512;&#23548;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">struct</span> F
<span class="br0">{</span>
<span class="kw1">virtual</span> <span class="kw4">auto</span> f<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> <span class="nu0">2</span><span class="sy4">;</span> <span class="br0">}</span> <span class="co1">// &#38169;&#35823;</span>
<span class="br0">}</span><span class="sy4">;</span></pre></div>
</div>
<p>&#22914;&#26524;&#20989;&#25968;&#20351;&#29992;&#36820;&#22238;&#31867;&#22411;&#25512;&#23548;&#65292;&#37027;&#20040;&#23427;&#19981;&#33021;&#29992;&#20854;&#25512;&#23548;&#30340;&#31867;&#22411;&#25110;&#20854;&#20182;&#31181;&#31867;&#30340;&#36820;&#22238;&#31867;&#22411;&#25512;&#23548;&#20877;&#22768;&#26126;&#65292;&#21363;&#20351;&#25512;&#23548;&#20986;&#26469;&#30340;&#31867;&#22411;&#30456;&#21516;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">auto</span> f<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#24050;&#22768;&#26126;&#65292;&#26410;&#23450;&#20041;</span>
<span class="kw4">auto</span> f<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> <span class="nu0">42</span><span class="sy4">;</span> <span class="br0">}</span> <span class="co1">// &#24050;&#23450;&#20041;&#65292;&#36820;&#22238;&#31867;&#22411;&#26159; int</span>
<span class="kw4">int</span> f<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#38169;&#35823;&#65306;&#19981;&#33021;&#20351;&#29992;&#25512;&#23548;&#30340;&#31867;&#22411;</span>
decltype<span class="br0">(</span><span class="kw4">auto</span><span class="br0">)</span> f<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#38169;&#35823;&#65306;&#19981;&#21516;&#31181;&#31867;&#30340;&#25512;&#23548;</span>
<span class="kw4">auto</span> f<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// OK&#65306;&#20877;&#22768;&#26126;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">typename</span> T<span class="sy1">&gt;</span>
<span class="kw1">struct</span> A <span class="br0">{</span> <span class="kw1">friend</span> T frf<span class="br0">(</span>T<span class="br0">)</span><span class="sy4">;</span> <span class="br0">}</span><span class="sy4">;</span>
<span class="kw4">auto</span> frf<span class="br0">(</span><span class="kw4">int</span> i<span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> i<span class="sy4">;</span> <span class="br0">}</span> <span class="co1">// &#19981;&#26159; A&lt;int&gt; &#30340;&#21451;&#20803;</span></pre></div>
</div>
<p>&#38500;&#20102;<a href="cpp-language-cast_operator.html">&#29992;&#25143;&#23450;&#20041;&#36716;&#25442;&#20989;&#25968;</a>&#20197;&#22806;&#30340;<a href="cpp-language-function_template.html">&#20989;&#25968;&#27169;&#26495;</a>&#21487;&#20197;&#20351;&#29992;&#36820;&#22238;&#31867;&#22411;&#25512;&#23548;&#12290;&#21363;&#20351;&#36820;&#22238;&#35821;&#21477;&#20013;&#30340;&#34920;&#36798;&#24335;&#24182;&#38750;<a href="cpp-language-dependent_name.html">&#24453;&#20915;</a>&#65292;&#25512;&#23548;&#20063;&#22312;&#23454;&#20363;&#21270;&#26102;&#21457;&#29983;&#12290;&#36825;&#31181;&#23454;&#20363;&#21270;&#24182;&#19981;&#22788;&#20110; <a href="cpp-language-sfinae.html">SFINAE</a> &#30340;&#30446;&#30340;&#30340;&#31435;&#21363;&#35821;&#22659;&#20013;&#12290;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw4">auto</span> f<span class="br0">(</span>T t<span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> t<span class="sy4">;</span> <span class="br0">}</span>
<span class="kw1">typedef</span> decltype<span class="br0">(</span>f<span class="br0">(</span><span class="nu0">1</span><span class="br0">)</span><span class="br0">)</span> fint_t<span class="sy4">;</span> <span class="co1">// &#23454;&#20363;&#21270; f&lt;int&gt; &#20197;&#25512;&#23548;&#36820;&#22238;&#31867;&#22411;</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">auto</span> f<span class="br0">(</span>T<span class="sy2">*</span> t<span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> <span class="sy2">*</span>t<span class="sy4">;</span> <span class="br0">}</span>
<span class="kw4">void</span> g<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw4">int</span> <span class="br0">(</span><span class="sy2">*</span>p<span class="br0">)</span><span class="br0">(</span><span class="kw4">int</span><span class="sy2">*</span><span class="br0">)</span> <span class="sy1">=</span> <span class="sy3">&amp;</span>f<span class="sy4">;</span> <span class="br0">}</span> <span class="co1">// &#23454;&#20363;&#21270;&#20004;&#20010; f &#20197;&#30830;&#23450;&#36820;&#22238;&#31867;&#22411;&#65292;</span>
<span class="co1">// &#36873;&#25321;&#31532;&#20108;&#20010;&#27169;&#26495;&#37325;&#36733;</span></pre></div>
</div>
<p>&#20351;&#29992;&#36820;&#22238;&#31867;&#22411;&#25512;&#23548;&#30340;&#20989;&#25968;&#27169;&#26495;&#29305;&#21270;&#24517;&#39035;&#20351;&#29992;&#21516;&#19968;&#36820;&#22238;&#31867;&#22411;&#21344;&#20301;&#31526;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">typename</span> T<span class="sy1">&gt;</span> <span class="kw4">auto</span> g<span class="br0">(</span>T t<span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> t<span class="sy4">;</span> <span class="br0">}</span> <span class="co1">// #1</span>
<span class="kw1">template</span> <span class="kw4">auto</span> g<span class="br0">(</span><span class="kw4">int</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// OK&#65292;&#36820;&#22238;&#31867;&#22411;&#26159; int</span>
<span class="co1">//template char g(char); // &#38169;&#35823;&#65292;&#27809;&#26377;&#21305;&#37197;&#30340;&#27169;&#26495;</span>
<span class="kw1">template</span><span class="sy1">&lt;&gt;</span> <span class="kw4">auto</span> g<span class="br0">(</span><span class="kw4">double</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// OK&#65292;&#29992;&#26410;&#30693;&#36820;&#22238;&#31867;&#22411;&#30340;&#21069;&#32622;&#22768;&#26126;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">typename</span> T<span class="sy1">&gt;</span> T g<span class="br0">(</span>T t<span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> t<span class="sy4">;</span> <span class="br0">}</span> <span class="co1">// OK&#65292;&#19981;&#31561;&#20215;&#20110; #1</span>
<span class="kw1">template</span> <span class="kw4">char</span> g<span class="br0">(</span><span class="kw4">char</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// OK&#65292;&#29616;&#22312;&#26377;&#21305;&#37197;&#30340;&#27169;&#26495;</span>
<span class="kw1">template</span> <span class="kw4">auto</span> g<span class="br0">(</span><span class="kw4">float</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#20173;&#28982;&#21305;&#37197; #1</span>
<span class="co1">// void h() { return g(42); } // &#38169;&#35823;&#65292;&#27495;&#20041;</span></pre></div>
</div>
<p><a href="cpp-language-function_template.html#.E6.98.BE.E5.BC.8F.E5.AE.9E.E4.BE.8B.E5.8C.96">&#26174;&#24335;&#23454;&#20363;&#21270;&#22768;&#26126;</a>&#26412;&#36523;&#24182;&#19981;&#23454;&#20363;&#21270;&#20351;&#29992;&#36820;&#22238;&#31867;&#22411;&#25512;&#23548;&#30340;&#20989;&#25968;&#27169;&#26495;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">typename</span> T<span class="sy1">&gt;</span> <span class="kw4">auto</span> f<span class="br0">(</span>T t<span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> t<span class="sy4">;</span> <span class="br0">}</span>
<span class="kw4">extern</span> <span class="kw1">template</span> <span class="kw4">auto</span> f<span class="br0">(</span><span class="kw4">int</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#19981;&#23454;&#20363;&#21270; f&lt;int&gt;</span>
<span class="kw4">int</span> <span class="br0">(</span><span class="sy2">*</span>p<span class="br0">)</span><span class="br0">(</span><span class="kw4">int</span><span class="br0">)</span> <span class="sy1">=</span> f<span class="sy4">;</span> <span class="co1">// &#23454;&#20363;&#21270; f&lt;int&gt; &#20197;&#30830;&#23450;&#20854;&#36820;&#22238;&#31867;&#22411;&#65292;</span>
<span class="co1">// &#20294;&#20173;&#38656;&#35201;&#22312;&#31243;&#24207;&#30340;&#21035;&#22788;&#20986;&#29616;&#26174;&#24335;&#23454;&#20363;&#21270;&#30340;&#23450;&#20041;</span></pre></div>
</div>
</td>
<td><span class="t-mark-rev t-since-cxx14">(C++14 &#36215;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E5.BD.A2.E5.8F.82.E5.88.97.E8.A1.A8">&#24418;&#21442;&#21015;&#34920;</span></h3>
<p>&#24418;&#21442;&#21015;&#34920;&#20915;&#23450;&#35843;&#29992;&#20989;&#25968;&#26102;&#25152;&#33021;&#25351;&#23450;&#30340;&#23454;&#21442;&#12290;&#23427;&#26159;<i>&#24418;&#21442;&#22768;&#26126;</i>&#30340;&#36887;&#21495;&#20998;&#38548;&#21015;&#34920;&#65292;&#20854;&#20013;&#27599;&#19968;&#39033;&#25317;&#26377;&#19979;&#21015;&#35821;&#27861;&#65306;</p>
<table class="t-sdsc-begin">
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">&#23646;&#24615;</span><span class="t-mark">(&#21487;&#36873;)</span> <span class="t-spar">&#22768;&#26126;&#35828;&#26126;&#31526;&#24207;&#21015;</span> <span class="t-spar">&#22768;&#26126;&#31526;</span></td>
<td>(1)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">&#23646;&#24615;</span><span class="t-mark">(&#21487;&#36873;)</span> <span class="t-spar">&#22768;&#26126;&#35828;&#26126;&#31526;&#24207;&#21015;</span> <span class="t-spar">&#22768;&#26126;&#31526;</span> <code><b>=</b></code> <span class="t-spar">&#21021;&#22987;&#21270;&#22120;</span></td>
<td>(2)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">&#23646;&#24615;</span><span class="t-mark">(&#21487;&#36873;)</span> <span class="t-spar">&#22768;&#26126;&#35828;&#26126;&#31526;&#24207;&#21015;</span> <span class="t-spar">&#25277;&#35937;&#22768;&#26126;&#31526;</span><span class="t-mark">(&#21487;&#36873;)</span></td>
<td>(3)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">&#23646;&#24615;</span><span class="t-mark">(&#21487;&#36873;)</span> <span class="t-spar">&#22768;&#26126;&#35828;&#26126;&#31526;&#24207;&#21015;</span> <span class="t-spar">&#25277;&#35937;&#22768;&#26126;&#31526;</span><span class="t-mark">(&#21487;&#36873;)</span> <code><b>=</b></code> <span class="t-spar">&#21021;&#22987;&#21270;&#22120;</span></td>
<td>(4)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><code><b>void</b></code></td>
<td>(5)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
</table>
<div class="t-li1"><span class="t-li">1)</span> &#22768;&#26126;&#19968;&#20010;&#20855;&#21517;&#65288;&#24418;&#24335;&#65289;&#21442;&#25968;&#12290;<span class="t-spar">&#22768;&#26126;&#35828;&#26126;&#31526;&#24207;&#21015;</span> &#21644; <span class="t-spar">&#22768;&#26126;&#31526;</span> &#30340;&#21547;&#20041;&#35265;<a href="cpp-language-declarations.html">&#22768;&#26126;</a>&#39029;&#38754;&#12290;
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">int</span> f<span class="br0">(</span><span class="kw4">int</span> a, <span class="kw4">int</span> <span class="sy2">*</span>p, <span class="kw4">int</span> <span class="br0">(</span><span class="sy2">*</span><span class="br0">(</span><span class="sy2">*</span>x<span class="br0">)</span><span class="br0">(</span><span class="kw4">double</span><span class="br0">)</span><span class="br0">)</span><span class="br0">[</span><span class="nu0">3</span><span class="br0">]</span><span class="br0">)</span><span class="sy4">;</span></pre></div>
</div>
</div>
<div class="t-li1"><span class="t-li">2)</span> &#22768;&#26126;&#19968;&#20010;&#24102;&#26377;<a href="cpp-language-default_arguments.html">&#40664;&#35748;&#20540;</a>&#30340;&#20855;&#21517;&#65288;&#24418;&#24335;&#65289;&#21442;&#25968;&#12290;
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">int</span> f<span class="br0">(</span><span class="kw4">int</span> a <span class="sy1">=</span> <span class="nu0">7</span>, <span class="kw4">int</span> <span class="sy2">*</span>p <span class="sy1">=</span> nullptr, <span class="kw4">int</span> <span class="br0">(</span><span class="sy2">*</span><span class="br0">(</span><span class="sy2">*</span>x<span class="br0">)</span><span class="br0">(</span><span class="kw4">double</span><span class="br0">)</span><span class="br0">)</span><span class="br0">[</span><span class="nu0">3</span><span class="br0">]</span> <span class="sy1">=</span> nullptr<span class="br0">)</span><span class="sy4">;</span></pre></div>
</div>
</div>
<div class="t-li1"><span class="t-li">3)</span> &#22768;&#26126;&#19968;&#20010;&#26080;&#21517;&#24418;&#21442;&#12290;
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">int</span> f<span class="br0">(</span><span class="kw4">int</span>, <span class="kw4">int</span> <span class="sy2">*</span>, <span class="kw4">int</span> <span class="br0">(</span><span class="sy2">*</span><span class="br0">(</span><span class="sy2">*</span><span class="br0">)</span><span class="br0">(</span><span class="kw4">double</span><span class="br0">)</span><span class="br0">)</span><span class="br0">[</span><span class="nu0">3</span><span class="br0">]</span><span class="br0">)</span><span class="sy4">;</span></pre></div>
</div>
</div>
<div class="t-li1"><span class="t-li">4)</span> &#22768;&#26126;&#19968;&#20010;&#20855;&#26377;<a href="cpp-language-default_arguments.html">&#40664;&#35748;&#20540;</a>&#30340;&#26080;&#21517;&#24418;&#21442;&#12290;
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">int</span> f<span class="br0">(</span><span class="kw4">int</span> <span class="sy1">=</span> <span class="nu0">7</span>, <span class="kw4">int</span> <span class="sy2">*</span> <span class="sy1">=</span> nullptr, <span class="kw4">int</span> <span class="br0">(</span><span class="sy2">*</span><span class="br0">(</span><span class="sy2">*</span><span class="br0">)</span><span class="br0">(</span><span class="kw4">double</span><span class="br0">)</span><span class="br0">)</span><span class="br0">[</span><span class="nu0">3</span><span class="br0">]</span> <span class="sy1">=</span> nullptr<span class="br0">)</span><span class="sy4">;</span></pre></div>
</div>
</div>
<div class="t-li1"><span class="t-li">5)</span> &#25351;&#31034;&#20989;&#25968;&#19981;&#25509;&#21463;&#24418;&#21442;&#65292;&#23427;&#26159;&#31354;&#21442;&#25968;&#21015;&#34920;&#30340;&#30830;&#20999;&#21516;&#20041;&#35789;&#65306;<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">int</span> f<span class="br0">(</span><span class="kw4">void</span><span class="br0">)</span><span class="sy4">;</span></span></span> &#21644; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">int</span> f<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span></span></span> &#22768;&#26126;&#21516;&#19968;&#20989;&#25968;&#12290;&#27880;&#24847;&#31867;&#22411; <code>void</code>&#65288;&#21487;&#20197;&#26377; cv &#38480;&#23450;&#65289;&#19981;&#33021;&#22312;&#20854;&#20182;&#24773;&#20917;&#19979;&#29992;&#20110;&#21442;&#25968;&#21015;&#34920;&#65306;<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">int</span> f<span class="br0">(</span><span class="kw4">void</span>, <span class="kw4">int</span><span class="br0">)</span><span class="sy4">;</span></span></span> &#21644; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">int</span> f<span class="br0">(</span><span class="kw4">const</span> <span class="kw4">void</span><span class="br0">)</span><span class="sy4">;</span></span></span> &#26159;&#38169;&#35823;&#30340;&#65288;&#20294;&#21487;&#20197;&#20351;&#29992;&#20854;&#34893;&#29983;&#31867;&#22411;&#65292;&#22914; <code>void*</code>&#65289;&#12290;&#22312;&#27169;&#26495;&#20013;&#65292;&#21482;&#33021;&#20351;&#29992;&#38750;&#24453;&#20915;&#30340; void&#65288;&#24403;&#20197; <code>T = void</code> &#23454;&#20363;&#21270;&#26102;&#65292;&#37319;&#29992;&#21333;&#20010; <code>T</code> &#31867;&#22411;&#30340;&#24418;&#21442;&#30340;&#20989;&#25968;&#19981;&#20250;&#25104;&#20026;&#26080;&#24418;&#21442;&#20989;&#25968;&#65289;&#12290;</div>
<p>&#30465;&#30053;&#21495; <code><b>...</b></code> &#21487;&#20986;&#29616;&#20110;&#24418;&#21442;&#21015;&#34920;&#26411;&#23614;&#65307;&#36825;&#22768;&#26126;&#19968;&#20010;<a href="cpp-language-variadic_arguments.html">&#21464;&#21442;&#20989;&#25968;&#65288;variadic function&#65289;</a>&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">int</span> printf<span class="br0">(</span><span class="kw4">const</span> <span class="kw4">char</span><span class="sy2">*</span> fmt ...<span class="br0">)</span><span class="sy4">;</span></pre></div>
</div>
<p>&#20026;&#20102;&#19982; C89 &#20860;&#23481;&#65292;&#24403;&#24418;&#21442;&#21015;&#34920;&#21547;&#26377;&#33267;&#23569;&#19968;&#20010;&#24418;&#21442;&#26102;&#65292;&#30465;&#30053;&#21495;&#21069;&#21487;&#20197;&#20986;&#29616;&#19968;&#20010;&#36887;&#21495;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">int</span> printf<span class="br0">(</span><span class="kw4">const</span> <span class="kw4">char</span><span class="sy2">*</span> fmt, ...<span class="br0">)</span><span class="sy4">;</span> <span class="co1">// OK&#65292;&#21516;&#19978;</span></pre></div>
</div>
<table class="t-rev-begin">
<tr class="t-rev t-until-cxx17">
<td>
<p>&#23613;&#31649; <span class="t-spar">&#22768;&#26126;&#35828;&#26126;&#31526;&#24207;&#21015;</span> &#34164;&#21547;&#20102;&#21487;&#20197;&#23384;&#22312;&#31867;&#22411;&#35828;&#26126;&#31526;&#20043;&#22806;&#30340;<a href="cpp-language-declarations.html#.E8.AF.B4.E6.98.8E.E7.AC.A6">&#35828;&#26126;&#31526;</a>&#65292;&#20294;&#20854;&#20182;&#21487;&#29992;&#30340;&#35828;&#26126;&#31526;&#21482;&#26377; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">register</span></span></span> <span class="t-rev-inl t-until-cxx11"><span>&#21644; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">auto</span></span></span></span> <span><span class="t-mark-rev t-until-cxx11">(C++11 &#21069;)</span></span></span>&#65292;&#32780;&#19988;&#23427;&#27809;&#26377;&#20219;&#20309;&#25928;&#26524;&#12290;</p>
</td>
<td><span class="t-mark-rev t-until-cxx17">(C++17 &#21069;)</span></td>
</tr>
</table>
<table class="t-rev-begin">
<tr class="t-rev t-since-cxx20">
<td>
<p>&#22914;&#26524;&#20219;&#20309;&#20989;&#25968;&#24418;&#21442;&#20351;&#29992;&#20102;<i>&#21344;&#20301;&#31526;&#65288;placeholder&#65289;</i>&#65288;<code>auto</code> &#25110; <a href="cpp-concepts.html">&#27010;&#24565;&#65288;concept&#65289;&#31867;&#22411;</a>&#65289;&#65292;&#37027;&#20040;&#20989;&#25968;&#22768;&#26126;&#36716;&#21464;&#20026;<a href="cpp-language-function_template.html#.E7.AE.80.E5.86.99.E5.87.BD.E6.95.B0.E6.A8.A1.E6.9D.BF">&#31616;&#20889;&#20989;&#25968;&#27169;&#26495;</a>&#22768;&#26126;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">void</span> f1<span class="br0">(</span><span class="kw4">auto</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#21516; template&lt;class T&gt; void f(T)</span>
<span class="kw4">void</span> f2<span class="br0">(</span>C1 <span class="kw4">auto</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#22914;&#26524; C1 &#26159;&#27010;&#24565;&#65292;&#21516; template&lt;C1 T&gt; void f7(T)</span></pre></div>
</div>
</td>
<td><span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></td>
</tr>
</table>
<p>&#22312;&#20989;&#25968;&#22768;&#26126;&#20013;&#22768;&#26126;&#30340;&#24418;&#21442;&#21517;&#36890;&#24120;&#21482;&#29992;&#20316;&#20197;&#33258;&#36523;&#20026;&#25991;&#26723;&#12290;&#23427;&#20204;&#22312;&#20989;&#25968;&#23450;&#20041;&#20013;&#34987;&#20351;&#29992;&#65288;&#20294;&#20173;&#19981;&#24378;&#21046;&#65289;&#12290;</p>
<p>&#24418;&#21442;&#21015;&#34920;&#20013;&#30340;&#27599;&#20010;&#20989;&#25968;&#24418;&#21442;&#30340;&#31867;&#22411;&#26681;&#25454;&#19979;&#21015;&#35268;&#21017;&#30830;&#23450;&#65306;</p>
<div class="t-li1"><span class="t-li">1)</span> &#39318;&#20808;&#65292;&#20197;&#22914;&#21516;&#22312;&#20219;&#20309;<a href="cpp-language-declarations.html">&#22768;&#26126;</a>&#20013;&#30340;&#26041;&#24335;&#65292;&#32452;&#21512;<span class="t-spar">&#22768;&#26126;&#35828;&#26126;&#31526;&#24207;&#21015;</span>&#21644;&#22768;&#26126;&#31526;&#20197;&#30830;&#23450;&#20854;&#31867;&#22411;&#12290;</div>
<div class="t-li1"><span class="t-li">2)</span> &#22914;&#26524;&#31867;&#22411;&#26159;&ldquo;T &#30340;&#25968;&#32452;&rdquo;&#25110;&ldquo;T &#30340;&#26410;&#30693;&#36793;&#30028;&#25968;&#32452;&rdquo;&#65292;&#37027;&#20040;&#23427;&#34987;&#26367;&#25442;&#25104;&#31867;&#22411;&ldquo;T &#30340;&#25351;&#38024;&rdquo;</div>
<div class="t-li1"><span class="t-li">3)</span> &#22914;&#26524;&#31867;&#22411;&#26159;&#20989;&#25968;&#31867;&#22411; F&#65292;&#37027;&#20040;&#23427;&#34987;&#26367;&#25442;&#25104;&#31867;&#22411;&ldquo;F &#30340;&#25351;&#38024;&rdquo;</div>
<div class="t-li1"><span class="t-li">4)</span> &#20174;&#24418;&#21442;&#31867;&#22411;&#20013;&#20002;&#24323;&#39030;&#23618; cv &#38480;&#23450;&#31526;&#65288;&#27492;&#35843;&#25972;&#21482;&#24433;&#21709;&#20989;&#25968;&#31867;&#22411;&#65292;&#20294;&#19981;&#25913;&#21160;&#24418;&#21442;&#30340;&#24615;&#36136;&#65306;<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">int</span> f<span class="br0">(</span><span class="kw4">const</span> <span class="kw4">int</span> p, decltype<span class="br0">(</span>p<span class="br0">)</span><span class="sy2">*</span><span class="br0">)</span><span class="sy4">;</span></span></span> &#21644; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">int</span> f<span class="br0">(</span><span class="kw4">int</span>, <span class="kw4">const</span> <span class="kw4">int</span><span class="sy2">*</span><span class="br0">)</span><span class="sy4">;</span></span></span> &#22768;&#26126;&#21516;&#19968;&#20989;&#25968;&#65289;</div>
<p>&#22240;&#20026;&#36825;&#20123;&#35268;&#21017;&#65292;&#19979;&#21015;&#20989;&#25968;&#22768;&#26126;&#30830;&#20999;&#22320;&#22768;&#26126;&#21516;&#19968;&#20989;&#25968;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">int</span> f<span class="br0">(</span><span class="kw4">char</span> s<span class="br0">[</span><span class="nu0">3</span><span class="br0">]</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw4">int</span> f<span class="br0">(</span><span class="kw4">char</span><span class="br0">[</span><span class="br0">]</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw4">int</span> f<span class="br0">(</span><span class="kw4">char</span><span class="sy2">*</span> s<span class="br0">)</span><span class="sy4">;</span>
<span class="kw4">int</span> f<span class="br0">(</span><span class="kw4">char</span><span class="sy2">*</span> <span class="kw4">const</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw4">int</span> f<span class="br0">(</span><span class="kw4">char</span><span class="sy2">*</span> <span class="kw4">volatile</span> s<span class="br0">)</span><span class="sy4">;</span></pre></div>
</div>
<p>&#19979;&#21015;&#22768;&#26126;&#20063;&#30830;&#20999;&#22320;&#22768;&#26126;&#21516;&#19968;&#20989;&#25968;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">int</span> f<span class="br0">(</span><span class="kw4">int</span><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw4">int</span> f<span class="br0">(</span><span class="kw4">int</span> <span class="br0">(</span><span class="sy2">*</span>g<span class="br0">)</span><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span></pre></div>
</div>
<p>&#24418;&#21442;&#31867;&#22411;&#19981;&#33021;&#26159;&#21547;&#26377;&#21040;&#26410;&#30693;&#36793;&#30028;&#25968;&#32452;&#30340;&#24341;&#29992;&#25110;&#25351;&#38024;&#30340;&#31867;&#22411;&#65292;&#21547;&#26377;&#36825;&#31181;&#31867;&#22411;&#30340;&#22810;&#32423;&#25351;&#38024;/&#25968;&#32452;&#65292;&#25110;&#21547;&#26377;&#25351;&#21521;&#20197;&#36825;&#20123;&#31867;&#22411;&#20026;&#24418;&#21442;&#30340;&#20989;&#25968;&#30340;&#25351;&#38024;&#12290;</p>
<table class="t-rev-begin">
<tr class="t-rev t-since-cxx11">
<td>
<p>&#25351;&#31034;<a href="cpp-language-variadic_arguments.html">&#21487;&#21464;&#23454;&#21442;</a>&#30340;&#30465;&#30053;&#21495;&#21069;&#19981;&#38656;&#35201;&#26377;&#36887;&#21495;&#65292;&#21363;&#20351;&#23427;&#36319;&#38543;&#25351;&#31034;<a href="cpp-language-parameter_pack.html">&#24418;&#21442;&#21253;</a>&#23637;&#24320;&#30340;&#30465;&#30053;&#21495;&#65292;&#25152;&#20197;&#19979;&#21015;&#20989;&#25968;&#27169;&#26495;&#26159;&#30830;&#20999;&#30456;&#21516;&#30340;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">typename</span> ...<span class="me1">Args</span><span class="sy1">&gt;</span> <span class="kw4">void</span> f<span class="br0">(</span>Args..., ...<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">typename</span> ...<span class="me1">Args</span><span class="sy1">&gt;</span> <span class="kw4">void</span> f<span class="br0">(</span>Args... ...<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">typename</span> ...<span class="me1">Args</span><span class="sy1">&gt;</span> <span class="kw4">void</span> f<span class="br0">(</span>Args......<span class="br0">)</span><span class="sy4">;</span></pre></div>
</div>
<p>&#20351;&#29992;&#36825;&#31181;&#22768;&#26126;&#30340;&#20363;&#23376;&#20043;&#19968;&#26159; <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-types-is_function.html"><span class="kw478">std::<span class="me2">is_function</span></span></a></span></span> &#30340;&#23454;&#29616;&#12290;</p>
</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E5.87.BD.E6.95.B0.E5.AE.9A.E4.B9.89">&#20989;&#25968;&#23450;&#20041;</span></h3>
<p>&#38750;&#25104;&#21592;&#20989;&#25968;&#30340;&#23450;&#20041;&#21482;&#33021;&#20986;&#29616;&#22312;&#21629;&#21517;&#31354;&#38388;&#20316;&#29992;&#22495;&#20013;&#65288;&#19981;&#23384;&#22312;&#23884;&#22871;&#20989;&#25968;&#65289;&#12290;<a href="cpp-language-member_functions.html">&#25104;&#21592;&#20989;&#25968;</a>&#30340;&#23450;&#20041;&#20134;&#21487;&#20986;&#29616;&#22312;<a href="cpp-language-class.html">&#31867;&#23450;&#20041;</a>&#30340;&#20307;&#20869;&#12290;&#23427;&#20204;&#25317;&#26377;&#19979;&#21015;&#35821;&#27861;&#65306;</p>
<table class="t-sdsc-begin">
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td class="t-sdsc-nopad"><span class="t-spar">&#23646;&#24615;</span><span class="t-mark">(&#21487;&#36873;)</span> <span class="t-spar">&#22768;&#26126;&#35828;&#26126;&#31526;&#24207;&#21015;</span><span class="t-mark">(&#21487;&#36873;)</span> <span class="t-spar">&#22768;&#26126;&#31526;</span> <span class="t-spar">&#34394;&#22768;&#26126;&#31526;&#24207;&#21015;</span><span class="t-mark">(&#21487;&#36873;)</span> <span class="t-spar">&#20989;&#25968;&#20307;</span></td>
<td class="t-sdsc-nopad"></td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
</table>
<p>&#20854;&#20013; <span class="t-spar">&#20989;&#25968;&#20307;</span> &#26159;&#19979;&#21015;&#20043;&#19968;&#65306;</p>
<table class="t-sdsc-begin">
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">&#26500;&#36896;&#20989;&#25968;&#21021;&#22987;&#21270;&#22120;</span><span class="t-mark">(&#21487;&#36873;)</span> <span class="t-spar">&#22797;&#21512;&#35821;&#21477;</span></td>
<td>(1)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">&#20989;&#25968;-try-&#22359;</span></td>
<td>(2)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><code><b>=</b></code> <code><b>delete</b></code> <code><b>;</b></code></td>
<td>(3)</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><code><b>=</b></code> <code><b>default</b></code> <code><b>;</b></code></td>
<td>(4)</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
</table>
<div class="t-li1"><span class="t-li">1)</span> &#24120;&#35268;&#20989;&#25968;&#20307;</div>
<div class="t-li1"><span class="t-li">2)</span> <a href="cpp-language-function-try-block.html">&#20989;&#25968; try &#22359;</a>&#65288;&#36825;&#26159;&#21253;&#35013;&#22312; try/catch &#22359;&#20869;&#30340;&#24120;&#35268;&#20989;&#25968;&#20307;&#65289;</div>
<div class="t-li1"><span class="t-li">3)</span> &#26174;&#24335;&#24323;&#32622;&#30340;&#20989;&#25968;&#23450;&#20041;</div>
<div class="t-li1"><span class="t-li">4)</span> &#26174;&#24335;&#39044;&#32622;&#30340;&#20989;&#25968;&#23450;&#20041;&#65292;&#21482;&#33021;&#29992;&#20110;<a href="cpp-language-member_functions.html#.E7.89.B9.E6.AE.8A.E6.88.90.E5.91.98.E5.87.BD.E6.95.B0">&#29305;&#27530;&#25104;&#21592;&#20989;&#25968;</a><span class="t-rev-inl t-since-cxx20"><span>&#21644;<a href="cpp-language-default_comparisons.html">&#27604;&#36739;&#36816;&#31639;&#31526;&#20989;&#25968;</a></span> <span><span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></span></span>
<table class="t-par-begin">
<tr class="t-par">
<td><span class="t-spar">&#23646;&#24615;</span></td>
<td>-</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span> &#20197;&#36887;&#21495;&#20998;&#38548;&#19988;&#21487;&#20197;&#20026;&#31354;&#30340;<a href="cpp-language-attributes.html">&#23646;&#24615;</a>&#21015;&#34920;&#12290;&#36825;&#20123;&#23646;&#24615;&#19982;&#21487;&#33021;&#20986;&#29616;&#22312; <span class="t-spar">&#22768;&#26126;&#31526;</span> &#20013;&#26631;&#35782;&#31526;&#20043;&#21518;&#30340;&#23646;&#24615;&#32467;&#21512;&#65288;&#35265;&#26412;&#39029;&#39030;&#37096;&#65289;&#12290;</td>
</tr>
<tr class="t-par">
<td><span class="t-spar">&#22768;&#26126;&#35828;&#26126;&#31526;&#24207;&#21015;</span></td>
<td>-</td>
<td>&#24102;&#26377;&#35828;&#26126;&#31526;&#30340;&#36820;&#22238;&#31867;&#22411;&#65292;&#19982;<a href="cpp-language-declarations.html">&#22768;&#26126;&#25991;&#27861;</a>&#30456;&#21516;</td>
</tr>
<tr class="t-par">
<td><span class="t-spar">&#22768;&#26126;&#31526;</span></td>
<td>-</td>
<td>&#20989;&#25968;&#22768;&#26126;&#31526;&#65292;&#19982;&#19978;&#36848;&#20989;&#25968;&#22768;&#26126;&#25991;&#27861;&#30456;&#21516;&#12290;<span class="t-rev-inl t-since-cxx20"><span>&#21644;&#20989;&#25968;&#22768;&#26126;&#19968;&#26679;&#65292;&#23427;&#21487;&#20197;&#21518;&#38543; <span class="t-spar">requires-&#23376;&#21477;</span></span> <span><span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></span></span></td>
</tr>
<tr class="t-par">
<td><span class="t-spar">&#34394;&#35828;&#26126;&#31526;&#24207;&#21015;</span></td>
<td>-</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span> <a href="cpp-language-override.html"><code>override</code></a>&#12289;<a href="cpp-language-final.html"><code>final</code></a>&#65292;&#25110;&#23427;&#20204;&#20219;&#24847;&#39034;&#24207;&#30340;&#32452;&#21512;&#65288;&#20165;&#23545;&#38750;&#38745;&#24577;&#25104;&#21592;&#20989;&#25968;&#20801;&#35768;&#65289;</td>
</tr>
<tr class="t-par">
<td><span class="t-spar">&#26500;&#36896;&#20989;&#25968;&#21021;&#22987;&#21270;&#22120;</span></td>
<td>-</td>
<td><a href="cpp-language-initializer_list.html" class="mw-redirect">&#25104;&#21592;&#21021;&#22987;&#21270;&#22120;&#21015;&#34920;</a>&#65292;&#21482;&#33021;&#29992;&#20110;&#26500;&#36896;&#20989;&#25968;</td>
</tr>
<tr class="t-par">
<td><span class="t-spar">&#22797;&#21512;&#35821;&#21477;</span></td>
<td>-</td>
<td>&#33457;&#25324;&#21495;&#29615;&#32469;&#30340;<a href="cpp-language-statements.html#.E5.A4.8D.E5.90.88.E8.AF.AD.E5.8F.A5">&#35821;&#21477;&#24207;&#21015;</a>&#65292;&#23427;&#20204;&#26500;&#25104;&#20989;&#25968;&#20307;</td>
</tr>
</table>
</div>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">int</span> max<span class="br0">(</span><span class="kw4">int</span> a, <span class="kw4">int</span> b, <span class="kw4">int</span> c<span class="br0">)</span>
<span class="br0">{</span>
<span class="kw4">int</span> m <span class="sy1">=</span> <span class="br0">(</span>a <span class="sy1">&gt;</span> b<span class="br0">)</span><span class="sy4">?</span> a <span class="sy4">:</span> b<span class="sy4">;</span>
<span class="kw1">return</span> <span class="br0">(</span>m <span class="sy1">&gt;</span> c<span class="br0">)</span><span class="sy4">?</span> m <span class="sy4">:</span> c<span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#22768;&#26126;&#35828;&#26126;&#31526;&#24207;&#21015; &#26159;&ldquo;int&rdquo;</span>
<span class="co1">// &#22768;&#26126;&#31526;&#26159;&ldquo;max(int a, int b, int c)&rdquo;</span>
<span class="co1">// &#20989;&#25968;&#20307;&#26159; { ... }</span></pre></div>
</div>
<p>&#20989;&#25968;&#20307;&#26159;&#19968;&#26465;<a href="cpp-language-statements.html#.E5.A4.8D.E5.90.88.E8.AF.AD.E5.8F.A5">&#22797;&#21512;&#35821;&#21477;</a>&#65288;&#30001;&#19968;&#23545;&#33457;&#25324;&#21495;&#29615;&#32469;&#30340;&#38646;&#25110;&#22810;&#26465;&#35821;&#21477;&#65289;&#65292;&#23427;&#20204;&#22312;&#20989;&#25968;&#35843;&#29992;&#26102;&#34987;&#25191;&#34892;&#12290;</p>
<p>&#20989;&#25968;&#30340;&#21508;&#20010;&#24418;&#21442;&#31867;&#22411;&#21644;&#36820;&#22238;&#31867;&#22411;&#19981;&#33021;&#26159;<a href="cpp-language-incomplete_type.html" class="mw-redirect">&#19981;&#23436;&#25972;&#30340;</a><a href="cpp-language-class.html">&#31867;&#31867;&#22411;</a>&#65292;<span class="t-rev-inl t-since-cxx11"><span>&#38500;&#38750;&#20989;&#25968;&#24050;&#26174;&#24335;&#23450;&#20041;&#20026;&#34987;&#24323;&#32622;</span> <span><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></span></span>&#12290;&#23436;&#25972;&#24615;&#26816;&#26597;&#22312;&#20989;&#25968;<i>&#20307;</i>&#30340;&#35821;&#22659;&#20013;&#36827;&#34892;&#65292;&#36825;&#20801;&#35768;<a href="cpp-language-member_functions.html">&#25104;&#21592;&#20989;&#25968;</a>&#36820;&#22238;&#22312;&#20854;&#20013;&#23450;&#20041;&#23427;&#20204;&#30340;&#31867;&#65288;&#25110;&#20854;&#22806;&#22260;&#31867;&#65289;&#65292;&#23613;&#31649;&#22312;&#23450;&#20041;&#28857;&#23427;&#21487;&#33021;&#19981;&#23436;&#25972;&#65288;&#23427;&#22312;&#20989;&#25968;&#20307;&#20869;&#23436;&#25972;&#65289;&#12290;</p>
<p>&#22312;&#20989;&#25968;&#23450;&#20041;&#30340; <span class="t-spar">&#22768;&#26126;&#31526;</span> &#20013;&#22768;&#26126;&#30340;&#24418;&#21442;&#22312;&#20989;&#25968;&#20307;&#20869;<a href="cpp-language-scope.html">&#22788;&#20110;&#20316;&#29992;&#22495;&#20013;</a>&#12290;&#22914;&#26524;&#26576;&#20010;&#24418;&#21442;&#27809;&#26377;&#22312;&#20989;&#25968;&#20307;&#20013;&#20351;&#29992;&#65292;&#37027;&#20040;&#23427;&#19981;&#38656;&#35201;&#20855;&#21517;&#65288;&#21482;&#38656;&#35201;&#20351;&#29992;&#25277;&#35937;&#22768;&#26126;&#31526;&#65289;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">void</span> print<span class="br0">(</span><span class="kw4">int</span> a, <span class="kw4">int</span><span class="br0">)</span> <span class="co1">// &#27809;&#26377;&#20351;&#29992;&#31532;&#20108;&#20010;&#24418;&#21442;</span>
<span class="br0">{</span>
<a href="cpp-io-c-fprintf.html"><span class="kw1845">std::<span class="me2">printf</span></span></a><span class="br0">(</span><span class="st0">&quot;a = %d<span class="es1">\n</span>&quot;</span>,a<span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#23613;&#31649;&#24418;&#21442;&#19978;&#30340;&#39030;&#23618; <a href="cpp-language-cv.html">cv &#38480;&#23450;&#31526;</a>&#22312;&#20989;&#25968;&#22768;&#26126;&#20013;&#34987;&#24573;&#30053;&#65292;&#23427;&#20204;&#20173;&#28982;&#20250;&#20462;&#39280;&#24418;&#21442;&#30340;&#31867;&#22411;&#65292;&#36825;&#22312;&#20989;&#25968;&#20307;&#20013;&#21487;&#35265;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">void</span> f<span class="br0">(</span><span class="kw4">const</span> <span class="kw4">int</span> n<span class="br0">)</span> <span class="co1">// &#22768;&#26126; void(int) &#31867;&#22411;&#30340;&#20989;&#25968;</span>
<span class="br0">{</span>
<span class="co1">// &#20294;&#22312;&#20307;&#20869;&#65292;n &#30340;&#31867;&#22411;&#26159; const int</span>
<span class="br0">}</span></pre></div>
</div>
<table class="t-rev-begin">
<tr class="t-rev t-since-cxx11">
<td>
<h3><span class="mw-headline" id=".E5.BC.83.E7.BD.AE.E5.87.BD.E6.95.B0">&#24323;&#32622;&#20989;&#25968;</span></h3>
<p>&#22914;&#26524;&#20351;&#29992;&#29305;&#27530;&#35821;&#27861; <code><b>= delete&nbsp;;</b></code>&#21462;&#20195;&#20989;&#25968;&#20307;&#65292;&#37027;&#20040;&#35813;&#20989;&#25968;&#34987;&#23450;&#20041;&#20026;<i>&#24323;&#32622;&#30340;&#65288;deleted&#65289;</i>&#12290;&#20219;&#20309;&#24323;&#32622;&#20989;&#25968;&#30340;&#20351;&#29992;&#37117;&#26159;&#38750;&#33391;&#26500;&#30340;&#65288;&#31243;&#24207;&#26080;&#27861;&#32534;&#35793;&#65289;&#12290;&#36825;&#21253;&#21547;&#35843;&#29992;&#65292;&#21253;&#25324;&#26174;&#24335;&#65288;&#20197;&#20989;&#25968;&#35843;&#29992;&#36816;&#31639;&#31526;&#65289;&#21450;&#38544;&#24335;&#65288;&#23545;&#24323;&#32622;&#30340;&#37325;&#36733;&#36816;&#31639;&#31526;&#12289;&#29305;&#27530;&#25104;&#21592;&#20989;&#25968;&#12289;&#20998;&#37197;&#20989;&#25968;&#31561;&#30340;&#35843;&#29992;&#65289;&#65292;&#26500;&#25104;&#25351;&#21521;&#24323;&#32622;&#20989;&#25968;&#30340;&#25351;&#38024;&#25110;&#25104;&#21592;&#25351;&#38024;&#65292;&#29978;&#33267;&#26159;&#22312;&#19981;&#27714;&#20540;&#34920;&#36798;&#24335;&#20013;&#20351;&#29992;&#24323;&#32622;&#20989;&#25968;&#12290;&#20294;&#26159;&#65292;&#20801;&#35768;&#38544;&#24335; <a href="cpp-language-definition.html#ODR_.E5.BC.8F.E4.BD.BF.E7.94.A8">ODR &#24335;&#20351;&#29992;</a> &#21018;&#22909;&#34987;&#24323;&#32622;&#30340;&#38750;&#32431;&#34394;&#25104;&#21592;&#20989;&#25968;&#12290;</p>
<p>&#22914;&#26524;&#20989;&#25968;&#34987;&#37325;&#36733;&#65292;&#37027;&#20040;&#39318;&#20808;&#36827;&#34892;<a href="cpp-language-overload_resolution.html">&#37325;&#36733;&#20915;&#35758;</a>&#65292;&#19988;&#20165;&#24403;&#36873;&#25321;&#20102;&#24323;&#32622;&#20989;&#25968;&#26102;&#31243;&#24207;&#25165;&#38750;&#33391;&#26500;&#12290;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">struct</span> sometype
<span class="br0">{</span>
<span class="kw4">void</span><span class="sy2">*</span> <a href="cpp-memory-new-operator_new.html"><span class="kw687">operator new</span></a><span class="br0">(</span><a href="cpp-types-size_t.html"><span class="kw100">std::<span class="me2">size_t</span></span></a><span class="br0">)</span> <span class="sy1">=</span> delete<span class="sy4">;</span>
<span class="kw4">void</span><span class="sy2">*</span> <a href="cpp-memory-new-operator_new.html"><span class="kw687">operator new</span></a><span class="br0">[</span><span class="br0">]</span><span class="br0">(</span><a href="cpp-types-size_t.html"><span class="kw100">std::<span class="me2">size_t</span></span></a><span class="br0">)</span> <span class="sy1">=</span> delete<span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
sometype<span class="sy2">*</span> p <span class="sy1">=</span> new sometype<span class="sy4">;</span> <span class="co1">// &#38169;&#35823;&#65306;&#23581;&#35797;&#35843;&#29992;&#24323;&#32622;&#30340; sometype::operator new</span></pre></div>
</div>
<p>&#20989;&#25968;&#30340;&#24323;&#32622;&#23450;&#20041;&#24517;&#39035;&#26159;&#32763;&#35793;&#21333;&#20803;&#20013;&#30340;&#39318;&#26465;&#22768;&#26126;&#65306;&#24050;&#32463;&#22768;&#26126;&#36807;&#30340;&#20989;&#25968;&#19981;&#33021;&#22768;&#26126;&#20026;&#24323;&#32622;&#30340;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">struct</span> sometype <span class="br0">{</span> sometype<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="br0">}</span><span class="sy4">;</span>
sometype<span class="sy4">::</span><span class="me2">sometype</span><span class="br0">(</span><span class="br0">)</span> <span class="sy1">=</span> delete<span class="sy4">;</span> <span class="co1">// &#38169;&#35823;&#65306;&#24517;&#39035;&#22312;&#39318;&#26465;&#22768;&#26126;&#24323;&#32622;</span></pre></div>
</div>
<h3><span class="mw-headline" id="func">__func__</span></h3>
<p>&#22312;&#20989;&#25968;&#20307;&#20869;&#65292;&#22914;&#21516;&#20197;&#22914;&#19979;&#26041;&#24335;&#23450;&#20041;&#20102;&#20989;&#25968;&#23616;&#37096;&#30340;&#39044;&#23450;&#20041;&#21464;&#37327; <span class="t-lc">__func__</span></p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">static</span> <span class="kw4">const</span> <span class="kw4">char</span> __func__<span class="br0">[</span><span class="br0">]</span> <span class="sy1">=</span> <span class="st0">&quot;&#20989;&#25968;&#21517;&quot;</span><span class="sy4">;</span></pre></div>
</div>
<p>&#27492;&#21464;&#37327;&#20855;&#26377;&#22359;&#20316;&#29992;&#22495;&#21450;&#38745;&#24577;&#23384;&#20648;&#26399;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">struct</span> S
<span class="br0">{</span>
S<span class="br0">(</span><span class="br0">)</span><span class="sy4">:</span> s<span class="br0">(</span>__func__<span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span> <span class="co1">// OK&#65306;&#21021;&#22987;&#21270;&#22120;&#21015;&#34920;&#26159;&#20989;&#25968;&#20307;&#30340;&#19968;&#37096;&#20998;</span>
<span class="kw4">const</span> <span class="kw4">char</span><span class="sy2">*</span> s<span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw4">void</span> f<span class="br0">(</span><span class="kw4">const</span> <span class="kw4">char</span><span class="sy2">*</span> s <span class="sy1">=</span> __func__<span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#38169;&#35823;&#65306;&#24418;&#21442;&#21015;&#34920;&#26159;&#22768;&#26126;&#31526;&#30340;&#19968;&#37096;&#20998;</span></pre></div>
</div>
</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E6.B3.A8.E8.A7.A3">&#27880;&#35299;</span></h3>
<p>&#22312;&#20351;&#29992;&#30452;&#25509;&#21021;&#22987;&#21270;&#35821;&#27861;&#30340;&#21464;&#37327;&#22768;&#26126;&#21644;&#20989;&#25968;&#22768;&#26126;&#20043;&#38388;&#26377;&#27495;&#20041;&#30340;&#24773;&#20917;&#19979;&#65292;&#32534;&#35793;&#22120;&#36873;&#25321;&#20989;&#25968;&#22768;&#26126;&#65307;&#35265;<a href="cpp-language-direct_initialization.html#.E6.B3.A8.E6.84.8F">&#30452;&#25509;&#21021;&#22987;&#21270;</a>&#39029;&#38754;&#12290;</p>
<h3><span class="mw-headline" id=".E7.A4.BA.E4.BE.8B">&#31034;&#20363;</span></h3>
<table class="metadata plainlinks ambox mbox-small-left ambox-notice" style="">
<tr>
<td class="mbox-empty-cell"></td>
<td class="mbox-text" style="">&#26412;&#33410;&#26410;&#23436;&#25104;<br />
&#21407;&#22240;&#65306;&#31227;&#21160;/&#28165;&#29702;</td>
</tr>
</table>
<div class="t-example">
<div class="t-example-live-link"></div>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="co2">#include &lt;iostream&gt;</span>
<span class="co2">#include &lt;string&gt;</span>
<span class="co1">// &#21629;&#21517;&#31354;&#38388;&#65288;&#25991;&#20214;&#65289;&#20316;&#29992;&#22495;&#20013;&#30340;&#22768;&#26126;</span>
<span class="co1">// &#65288;&#23450;&#20041;&#22312;&#21518;&#38754;&#25552;&#20379;&#65289;</span>
<span class="kw4">int</span> f1<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
<span class="co1">// &#25317;&#26377;&#40664;&#35748;&#23454;&#21442;&#30340;&#31616;&#21333;&#20989;&#25968;&#65292;&#19981;&#36820;&#22238;&#20869;&#23481;</span>
<span class="kw4">void</span> f0<span class="br0">(</span><span class="kw4">const</span> <a href="cpp-string-basic_string.html"><span class="kw1230">std::<span class="me2">string</span></span></a><span class="sy3">&amp;</span> arg <span class="sy1">=</span> <span class="st0">&quot;world&quot;</span><span class="br0">)</span>
<span class="br0">{</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> <span class="st0">&quot;Hello, &quot;</span> <span class="sy1">&lt;&lt;</span> arg <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#36820;&#22238;&#25351;&#21521; f0 &#30340;&#25351;&#38024;&#30340;&#20989;&#25968;</span>
<span class="kw4">auto</span> fp11<span class="br0">(</span><span class="br0">)</span> <span class="sy2">-</span><span class="sy1">&gt;</span> <span class="kw4">void</span><span class="br0">(</span><span class="sy2">*</span><span class="br0">)</span><span class="br0">(</span><span class="kw4">const</span> <a href="cpp-string-basic_string.html"><span class="kw1230">std::<span class="me2">string</span></span></a><span class="sy3">&amp;</span><span class="br0">)</span>
<span class="br0">{</span>
<span class="kw1">return</span> f0<span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#36820;&#22238;&#25351;&#21521; f0 &#30340;&#25351;&#38024;&#30340;&#20989;&#25968;&#65292;C++11 &#21069;&#30340;&#39118;&#26684;</span>
<span class="kw4">void</span> <span class="br0">(</span><span class="sy2">*</span>fp03<span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="br0">(</span><span class="kw4">const</span> <a href="cpp-string-basic_string.html"><span class="kw1230">std::<span class="me2">string</span></span></a><span class="sy3">&amp;</span><span class="br0">)</span>
<span class="br0">{</span>
<span class="kw1">return</span> f0<span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
f0<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
fp11<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="st0">&quot;test&quot;</span><span class="br0">)</span><span class="sy4">;</span>
fp03<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="st0">&quot;again&quot;</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw4">int</span> f2<span class="br0">(</span><a href="cpp-string-basic_string.html"><span class="kw1230">std::<span class="me2">string</span></span></a><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#22359;&#20316;&#29992;&#22495;&#20013;&#30340;&#22768;&#26126;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> f2<span class="br0">(</span><span class="st0">&quot;bad12&quot;</span><span class="br0">)</span> <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#31616;&#21333;&#30340;&#38750;&#25104;&#21592;&#20989;&#25968;&#65292;&#36820;&#22238; int</span>
<span class="kw4">int</span> f1<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
<span class="kw1">return</span> <span class="nu0">42</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#25317;&#26377;&#24322;&#24120;&#35828;&#26126;&#21644;&#20989;&#25968; try &#22359;&#30340;&#20989;&#25968;</span>
<span class="kw4">int</span> f2<span class="br0">(</span><a href="cpp-string-basic_string.html"><span class="kw1230">std::<span class="me2">string</span></span></a> str<span class="br0">)</span> <span class="kw1">noexcept</span> <span class="kw1">try</span>
<span class="br0">{</span>
<span class="kw1">return</span> <a href="cpp-string-basic_string-stol.html"><span class="kw1257">std::<span class="me2">stoi</span></span></a><span class="br0">(</span>str<span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">catch</span><span class="br0">(</span><span class="kw4">const</span> <a href="cpp-error-exception.html"><span class="kw764">std::<span class="me2">exception</span></span></a><span class="sy3">&amp;</span> e<span class="br0">)</span>
<span class="br0">{</span>
<a href="cpp-io-cerr.html"><span class="kw1760">std::<span class="me2">cerr</span></span></a> <span class="sy1">&lt;&lt;</span> <span class="st0">&quot;stoi() &#22833;&#36133;&#65281;<span class="es1">\n</span>&quot;</span><span class="sy4">;</span>
<span class="kw1">return</span> <span class="nu0">0</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#36755;&#20986;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="text source-text">
<pre class="de1">Hello, world
Hello, test
Hello, again
stoi() &#22833;&#36133;&#65281;
0</pre></div>
</div>
</div>
<h3><span class="mw-headline" id=".E7.BC.BA.E9.99.B7.E6.8A.A5.E5.91.8A">&#32570;&#38519;&#25253;&#21578;</span></h3>
<p>&#19979;&#21015;&#26356;&#25913;&#34892;&#20026;&#30340;&#32570;&#38519;&#25253;&#21578;&#36861;&#28335;&#22320;&#24212;&#29992;&#20110;&#20197;&#21069;&#20986;&#29256;&#30340; C++ &#26631;&#20934;&#12290;</p>
<table class="dsctable" style="font-size:0.8em">
<tr>
<th>DR</th>
<th>&#24212;&#29992;&#20110;</th>
<th>&#20986;&#29256;&#26102;&#30340;&#34892;&#20026;</th>
<th>&#27491;&#30830;&#34892;&#20026;</th>
</tr>
<tr>
<td><a rel="nofollow" class="external text" href="https://wg21.cmeerw.net/cwg/issue393">CWG 393</a></td>
<td>C++98</td>
<td>&#21547;&#26377;&#21040;&#26410;&#30693;&#36793;&#30028;&#25968;&#32452;&#30340;&#25351;&#38024;/&#24341;&#29992;&#30340;&#31867;&#22411;&#19981;&#33021;&#20316;&#20026;&#24418;&#21442;</td>
<td>&#20801;&#35768;&#36825;&#20123;&#31867;&#22411;</td>
</tr>
<tr>
<td><a rel="nofollow" class="external text" href="https://wg21.cmeerw.net/cwg/issue577">CWG 577</a></td>
<td>C++98</td>
<td>&#24453;&#20915;&#31867;&#22411; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">void</span></span></span> &#21487;&#29992;&#20110;&#22768;&#26126;&#26080;&#24418;&#21442;&#20989;&#25968;</td>
<td>&#21482;&#20801;&#35768;&#38750;&#24453;&#20915;&#30340; void</td>
</tr>
<tr>
<td><a rel="nofollow" class="external text" href="https://wg21.cmeerw.net/cwg/issue1394">CWG 1394</a></td>
<td>C++11</td>
<td>&#24323;&#32622;&#20989;&#25968;&#19981;&#33021;&#36820;&#22238;&#19981;&#23436;&#25972;&#31867;&#22411;</td>
<td>&#20801;&#35768;&#19981;&#23436;&#25972;&#30340;&#36820;&#22238;&#31867;&#22411;</td>
</tr>
</table>
<h3><span class="mw-headline" id=".E5.8F.82.E9.98.85">&#21442;&#38405;</span></h3>
<table class="t-dsc-begin"></table>
</div>
<div class="visualClear"></div>
</div>
</div>
</div>
</body>
</html>