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

445 lines
44 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;format&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_format 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;format&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-format.html">&#26684;&#24335;&#21270;</a>&#24211;&#30340;&#19968;&#37096;&#20998;&#12290;</p>
<table class="t-dsc-begin">
<tr>
<td colspan="2">
<h3><span class="mw-headline" id=".E7.B1.BB">&#31867;</span></h3>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-format-formatter.html"><span class="t-lines"><span>formatter</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>&#23450;&#20041;&#32473;&#23450;&#31867;&#22411;&#30340;&#26684;&#24335;&#21270;&#35268;&#21017;&#30340;&#31867;&#27169;&#26495;<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-format-basic_format_parse_context.html"><span class="t-lines"><span>basic_format_parse_context</span><span>format_parse_context</span><span>wformat_parse_context</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#26684;&#24335;&#21270;&#23383;&#31526;&#20018;&#20998;&#26512;&#22120;&#29366;&#24577;<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-format-basic_format_context.html"><span class="t-lines"><span>basic_format_context</span><span>format_context</span><span>wformat_context</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#26684;&#24335;&#21270;&#29366;&#24577;&#65292;&#21253;&#25324;&#25152;&#26377;&#26684;&#24335;&#21270;&#21442;&#25968;&#21644;&#36755;&#20986;&#36845;&#20195;&#22120;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-format-basic_format_arg.html"><span class="t-lines"><span>basic_format_arg</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>&#25552;&#20379;&#23545;&#29992;&#25143;&#23450;&#20041;&#26684;&#24335;&#21270;&#22120;&#30340;&#26684;&#24335;&#21270;&#21442;&#25968;&#30340;&#35775;&#38382;&#30340;&#31867;&#27169;&#26495;<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-format-basic_format_args.html"><span class="t-lines"><span>basic_format_args</span><span>format_args</span><span>wformat_args</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#25552;&#20379;&#23545;&#25152;&#26377;&#26684;&#24335;&#21270;&#21442;&#25968;&#30340;&#35775;&#38382;&#30340;&#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-format-format_error.html"><span class="t-lines"><span>format_error</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>&#26684;&#24335;&#21270;&#38169;&#35823;&#26102;&#25243;&#20986;&#30340;&#24322;&#24120;&#31867;&#22411;<br />
<span class="t-mark">(&#31867;)</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-format-format.html"><span class="t-lines"><span>format</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>&#22312;&#26032; string &#20013;&#23384;&#20648;&#21442;&#25968;&#30340;&#26684;&#24335;&#21270;&#34920;&#31034;<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-format-format_to.html"><span class="t-lines"><span>format_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>&#36890;&#36807;&#36755;&#20986;&#36845;&#20195;&#22120;&#20889;&#20854;&#21442;&#25968;&#30340;&#26684;&#24335;&#21270;&#34920;&#31034;<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-format-format_to_n.html"><span class="t-lines"><span>format_to_n</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>&#36890;&#36807;&#36755;&#20986;&#36845;&#20195;&#22120;&#20889;&#20854;&#21442;&#25968;&#30340;&#26684;&#24335;&#21270;&#34920;&#31034;&#65292;&#19981;&#36229;&#20986;&#25351;&#23450;&#30340;&#22823;&#23567;<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-format-formatted_size.html"><span class="t-lines"><span>formatted_size</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>&#30830;&#23450;&#23384;&#20648;&#20854;&#21442;&#25968;&#30340;&#26684;&#24335;&#21270;&#34920;&#31034;&#25152;&#38656;&#30340;&#23383;&#31526;&#25968;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-format-vformat.html"><span class="t-lines"><span>vformat</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><span class="t-lc">std::format</span> &#30340;&#20351;&#29992;&#31867;&#22411;&#25830;&#38500;&#30340;&#21442;&#25968;&#34920;&#31034;&#30340;&#38750;&#27169;&#26495;&#21464;&#20307;<br />
<span class="t-mark">(&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-utility-format-vformat_to.html"><span class="t-lines"><span>vformat_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><span class="t-lc">std::format_to</span> &#30340;&#20351;&#29992;&#31867;&#22411;&#25830;&#38500;&#30340;&#21442;&#25968;&#34920;&#31034;&#30340;&#38750;&#27169;&#26495;&#21464;&#20307;<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-format-visit_format_arg.html"><span class="t-lines"><span>visit_format_arg</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>&#29992;&#25143;&#23450;&#20041;&#26684;&#24335;&#21270;&#22120;&#30340;&#21442;&#25968;&#35266;&#35272;&#25509;&#21475;<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-format-make_format_args.html"><span class="t-lines"><span>make_format_args</span><span>make_wformat_args</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#21019;&#24314;&#24341;&#29992;&#25152;&#26377;&#26684;&#24335;&#21270;&#21442;&#25968;&#30340;&#31867;&#22411;&#25830;&#38500;&#23545;&#35937;&#65292;&#21487;&#36716;&#25442;&#21040; format_args<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">// &#26684;&#24335;&#21270;&#20989;&#25968;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span>... <span class="me1">Args</span><span class="sy1">&gt;</span>
string format<span class="br0">(</span>string_view fmt, <span class="kw4">const</span> Args<span class="sy3">&amp;</span>... <span class="me1">args</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span>... <span class="me1">Args</span><span class="sy1">&gt;</span>
wstring format<span class="br0">(</span>wstring_view fmt, <span class="kw4">const</span> Args<span class="sy3">&amp;</span>... <span class="me1">args</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span>... <span class="me1">Args</span><span class="sy1">&gt;</span>
string format<span class="br0">(</span><span class="kw4">const</span> locale<span class="sy3">&amp;</span> loc, string_view fmt, <span class="kw4">const</span> Args<span class="sy3">&amp;</span>... <span class="me1">args</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span>... <span class="me1">Args</span><span class="sy1">&gt;</span>
wstring format<span class="br0">(</span><span class="kw4">const</span> locale<span class="sy3">&amp;</span> loc, wstring_view fmt, <span class="kw4">const</span> Args<span class="sy3">&amp;</span>... <span class="me1">args</span><span class="br0">)</span><span class="sy4">;</span>
string vformat<span class="br0">(</span>string_view fmt, format_args args<span class="br0">)</span><span class="sy4">;</span>
wstring vformat<span class="br0">(</span>wstring_view fmt, wformat_args args<span class="br0">)</span><span class="sy4">;</span>
string vformat<span class="br0">(</span><span class="kw4">const</span> locale<span class="sy3">&amp;</span> loc, string_view fmt, format_args args<span class="br0">)</span><span class="sy4">;</span>
wstring vformat<span class="br0">(</span><span class="kw4">const</span> locale<span class="sy3">&amp;</span> loc, wstring_view fmt, wformat_args args<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> Out, <span class="kw1">class</span>... <span class="me1">Args</span><span class="sy1">&gt;</span>
Out format_to<span class="br0">(</span>Out out, string_view fmt, <span class="kw4">const</span> Args<span class="sy3">&amp;</span>... <span class="me1">args</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> Out, <span class="kw1">class</span>... <span class="me1">Args</span><span class="sy1">&gt;</span>
Out format_to<span class="br0">(</span>Out out, wstring_view fmt, <span class="kw4">const</span> Args<span class="sy3">&amp;</span>... <span class="me1">args</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> Out, <span class="kw1">class</span>... <span class="me1">Args</span><span class="sy1">&gt;</span>
Out format_to<span class="br0">(</span>Out out, <span class="kw4">const</span> locale<span class="sy3">&amp;</span> loc, string_view fmt, <span class="kw4">const</span> Args<span class="sy3">&amp;</span>... <span class="me1">args</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> Out, <span class="kw1">class</span>... <span class="me1">Args</span><span class="sy1">&gt;</span>
Out format_to<span class="br0">(</span>Out out, <span class="kw4">const</span> locale<span class="sy3">&amp;</span> loc, wstring_view fmt, <span class="kw4">const</span> Args<span class="sy3">&amp;</span>... <span class="me1">args</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> Out<span class="sy1">&gt;</span>
Out vformat_to<span class="br0">(</span>Out out, string_view fmt,
format_args_t<span class="sy1">&lt;</span>type_identity_t<span class="sy1">&lt;</span>Out<span class="sy1">&gt;</span>, <span class="kw4">char</span><span class="sy1">&gt;</span> args<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> Out<span class="sy1">&gt;</span>
Out vformat_to<span class="br0">(</span>Out out, wstring_view fmt,
format_args_t<span class="sy1">&lt;</span>type_identity_t<span class="sy1">&lt;</span>Out<span class="sy1">&gt;</span>, <span class="kw4">wchar_t</span><span class="sy1">&gt;</span> args<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> Out<span class="sy1">&gt;</span>
Out vformat_to<span class="br0">(</span>Out out, <span class="kw4">const</span> locale<span class="sy3">&amp;</span> loc, string_view fmt,
format_args_t<span class="sy1">&lt;</span>type_identity_t<span class="sy1">&lt;</span>Out<span class="sy1">&gt;</span>, <span class="kw4">char</span><span class="sy1">&gt;</span> args<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> Out<span class="sy1">&gt;</span>
Out vformat_to<span class="br0">(</span>Out out, <span class="kw4">const</span> locale<span class="sy3">&amp;</span> loc, wstring_view fmt,
format_args_t<span class="sy1">&lt;</span>type_identity_t<span class="sy1">&lt;</span>Out<span class="sy1">&gt;</span>, <span class="kw4">wchar_t</span><span class="sy1">&gt;</span> args<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> Out<span class="sy1">&gt;</span> <span class="kw1">struct</span> format_to_n_result <span class="br0">{</span>
Out out<span class="sy4">;</span>
iter_difference_t<span class="sy1">&lt;</span>Out<span class="sy1">&gt;</span> size<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> Out, <span class="kw1">class</span>... <span class="me1">Args</span><span class="sy1">&gt;</span>
format_to_n_result<span class="sy1">&lt;</span>Out<span class="sy1">&gt;</span> format_to_n<span class="br0">(</span>Out out, iter_difference_t<span class="sy1">&lt;</span>Out<span class="sy1">&gt;</span> n,
string_view fmt, <span class="kw4">const</span> Args<span class="sy3">&amp;</span>... <span class="me1">args</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> Out, <span class="kw1">class</span>... <span class="me1">Args</span><span class="sy1">&gt;</span>
format_to_n_result<span class="sy1">&lt;</span>Out<span class="sy1">&gt;</span> format_to_n<span class="br0">(</span>Out out, iter_difference_t<span class="sy1">&lt;</span>Out<span class="sy1">&gt;</span> n,
wstring_view fmt, <span class="kw4">const</span> Args<span class="sy3">&amp;</span>... <span class="me1">args</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> Out, <span class="kw1">class</span>... <span class="me1">Args</span><span class="sy1">&gt;</span>
format_to_n_result<span class="sy1">&lt;</span>Out<span class="sy1">&gt;</span> format_to_n<span class="br0">(</span>Out out, iter_difference_t<span class="sy1">&lt;</span>Out<span class="sy1">&gt;</span> n,
<span class="kw4">const</span> locale<span class="sy3">&amp;</span> loc, string_view fmt,
<span class="kw4">const</span> Args<span class="sy3">&amp;</span>... <span class="me1">args</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> Out, <span class="kw1">class</span>... <span class="me1">Args</span><span class="sy1">&gt;</span>
format_to_n_result<span class="sy1">&lt;</span>Out<span class="sy1">&gt;</span> format_to_n<span class="br0">(</span>Out out, iter_difference_t<span class="sy1">&lt;</span>Out<span class="sy1">&gt;</span> n,
<span class="kw4">const</span> locale<span class="sy3">&amp;</span> loc, wstring_view fmt,
<span class="kw4">const</span> Args<span class="sy3">&amp;</span>... <span class="me1">args</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span>... <span class="me1">Args</span><span class="sy1">&gt;</span>
size_t formatted_size<span class="br0">(</span>string_view fmt, <span class="kw4">const</span> Args<span class="sy3">&amp;</span>... <span class="me1">args</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span>... <span class="me1">Args</span><span class="sy1">&gt;</span>
size_t formatted_size<span class="br0">(</span>wstring_view fmt, <span class="kw4">const</span> Args<span class="sy3">&amp;</span>... <span class="me1">args</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span>... <span class="me1">Args</span><span class="sy1">&gt;</span>
size_t formatted_size<span class="br0">(</span><span class="kw4">const</span> locale<span class="sy3">&amp;</span> loc, string_view fmt, <span class="kw4">const</span> Args<span class="sy3">&amp;</span>... <span class="me1">args</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span>... <span class="me1">Args</span><span class="sy1">&gt;</span>
size_t formatted_size<span class="br0">(</span><span class="kw4">const</span> locale<span class="sy3">&amp;</span> loc, wstring_view fmt, <span class="kw4">const</span> Args<span class="sy3">&amp;</span>... <span class="me1">args</span><span class="br0">)</span><span class="sy4">;</span>
<span class="co1">// &#26684;&#24335;&#21270;&#22120;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> charT <span class="sy1">=</span> <span class="kw4">char</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> formatter<span class="sy4">;</span>
<span class="co1">// &#31867;&#27169;&#26495; basic_format_parse_context</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> charT<span class="sy1">&gt;</span> <span class="kw1">class</span> basic_format_parse_context<span class="sy4">;</span>
<span class="kw1">using</span> format_parse_context <span class="sy1">=</span> basic_format_parse_context<span class="sy1">&lt;</span><span class="kw4">char</span><span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">using</span> wformat_parse_context <span class="sy1">=</span> basic_format_parse_context<span class="sy1">&lt;</span><span class="kw4">wchar_t</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> Out, <span class="kw1">class</span> charT<span class="sy1">&gt;</span> <span class="kw1">class</span> basic_format_context<span class="sy4">;</span>
<span class="kw1">using</span> format_context <span class="sy1">=</span> basic_format_context<span class="sy1">&lt;</span>unspecified, <span class="kw4">char</span><span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">using</span> wformat_context <span class="sy1">=</span> basic_format_context<span class="sy1">&lt;</span>unspecified, <span class="kw4">wchar_t</span><span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="co1">// &#23454;&#21442;</span>
<span class="co1">// &#31867;&#27169;&#26495; basic_format_arg</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> Context<span class="sy1">&gt;</span> <span class="kw1">class</span> basic_format_arg<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> Visitor, <span class="kw1">class</span> Context<span class="sy1">&gt;</span>
<span class="coMULTI">/* &#35265;&#25551;&#36848; */</span> visit_format_arg<span class="br0">(</span>Visitor<span class="sy3">&amp;&amp;</span> vis, basic_format_arg<span class="sy1">&lt;</span>Context<span class="sy1">&gt;</span> arg<span class="br0">)</span><span class="sy4">;</span>
<span class="co1">// class template format-arg-store</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> Context, <span class="kw1">class</span>... <span class="me1">Args</span><span class="sy1">&gt;</span> <span class="kw1">struct</span> <span class="coMULTI">/*format-arg-store*/</span><span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> Context <span class="sy1">=</span> format_context, <span class="kw1">class</span>... <span class="me1">Args</span><span class="sy1">&gt;</span>
<span class="coMULTI">/*format-arg-store*/</span><span class="sy1">&lt;</span>Context, Args...<span class="sy1">&gt;</span>
make_format_args<span class="br0">(</span><span class="kw4">const</span> Args<span class="sy3">&amp;</span>... <span class="me1">args</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span>... <span class="me1">Args</span><span class="sy1">&gt;</span>
<span class="coMULTI">/*format-arg-store*/</span><span class="sy1">&lt;</span>wformat_context, Args...<span class="sy1">&gt;</span>
make_wformat_args<span class="br0">(</span><span class="kw4">const</span> Args<span class="sy3">&amp;</span>... <span class="me1">args</span><span class="br0">)</span><span class="sy4">;</span>
<span class="co1">// &#31867;&#27169;&#26495; basic_format_args</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> Context<span class="sy1">&gt;</span> <span class="kw1">class</span> basic_format_args<span class="sy4">;</span>
<span class="kw1">using</span> format_args <span class="sy1">=</span> basic_format_args<span class="sy1">&lt;</span>format_context<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">using</span> wformat_args <span class="sy1">=</span> basic_format_args<span class="sy1">&lt;</span>wformat_context<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> Out, <span class="kw1">class</span> charT<span class="sy1">&gt;</span>
<span class="kw1">using</span> format_args_t <span class="sy1">=</span> basic_format_args<span class="sy1">&lt;</span>basic_format_context<span class="sy1">&lt;</span>Out, charT<span class="sy1">&gt;&gt;</span><span class="sy4">;</span>
<span class="co1">// &#31867; format_error</span>
<span class="kw1">class</span> format_error<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::basic_format_parse_context">&#31867;&#27169;&#26495; <span class="t-lc">std::basic_format_parse_context</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> charT<span class="sy1">&gt;</span>
<span class="kw1">class</span> basic_format_parse_context <span class="br0">{</span>
<span class="kw1">public</span><span class="sy4">:</span>
<span class="kw1">using</span> char_type <span class="sy1">=</span> charT<span class="sy4">;</span>
<span class="kw1">using</span> const_iterator <span class="sy1">=</span> <span class="kw1">typename</span> basic_string_view<span class="sy1">&lt;</span>charT<span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">const_iterator</span><span class="sy4">;</span>
<span class="kw1">using</span> iterator <span class="sy1">=</span> const_iterator<span class="sy4">;</span>
<span class="kw1">private</span><span class="sy4">:</span>
iterator begin_<span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
iterator end_<span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
<span class="kw2">enum</span> indexing <span class="br0">{</span> unknown, manual, automatic <span class="br0">}</span><span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
indexing indexing_<span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
size_t next_arg_id_<span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
size_t num_args_<span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
<span class="kw1">public</span><span class="sy4">:</span>
<span class="kw4">constexpr</span> <span class="kw1">explicit</span> basic_format_parse_context<span class="br0">(</span>basic_string_view<span class="sy1">&lt;</span>charT<span class="sy1">&gt;</span> fmt,
size_t num_args <span class="sy1">=</span> <span class="nu0">0</span><span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
basic_format_parse_context<span class="br0">(</span><span class="kw4">const</span> basic_format_parse_context<span class="sy3">&amp;</span><span class="br0">)</span> <span class="sy1">=</span> delete<span class="sy4">;</span>
basic_format_parse_context<span class="sy3">&amp;</span> operator<span class="sy1">=</span><span class="br0">(</span><span class="kw4">const</span> basic_format_parse_context<span class="sy3">&amp;</span><span class="br0">)</span> <span class="sy1">=</span> delete<span class="sy4">;</span>
<span class="kw4">constexpr</span> const_iterator begin<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> const_iterator end<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> <span class="kw4">void</span> advance_to<span class="br0">(</span>const_iterator it<span class="br0">)</span><span class="sy4">;</span>
<span class="kw4">constexpr</span> size_t next_arg_id<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw4">constexpr</span> <span class="kw4">void</span> check_arg_id<span class="br0">(</span>size_t id<span class="br0">)</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::basic_format_context">&#31867;&#27169;&#26495; <span class="t-lc">std::basic_format_context</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> Out, <span class="kw1">class</span> charT<span class="sy1">&gt;</span>
<span class="kw1">class</span> basic_format_context <span class="br0">{</span>
basic_format_args<span class="sy1">&lt;</span>basic_format_context<span class="sy1">&gt;</span> args_<span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
Out out_<span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
<span class="kw1">public</span><span class="sy4">:</span>
<span class="kw1">using</span> iterator <span class="sy1">=</span> Out<span class="sy4">;</span>
<span class="kw1">using</span> char_type <span class="sy1">=</span> charT<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> formatter_type <span class="sy1">=</span> formatter<span class="sy1">&lt;</span>T, charT<span class="sy1">&gt;</span><span class="sy4">;</span>
basic_format_arg<span class="sy1">&lt;</span>basic_format_context<span class="sy1">&gt;</span> arg<span class="br0">(</span>size_t id<span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span>
<a href="cpp-locale-locale.html"><span class="kw1894">std::<span class="me2">locale</span></span></a> locale<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
iterator out<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw4">void</span> advance_to<span class="br0">(</span>iterator it<span class="br0">)</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::basic_format_arg">&#31867;&#27169;&#26495; std::basic_format_arg</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> Context<span class="sy1">&gt;</span>
<span class="kw1">class</span> basic_format_arg <span class="br0">{</span>
<span class="kw1">public</span><span class="sy4">:</span>
<span class="kw1">class</span> handle<span class="sy4">;</span>
<span class="kw1">private</span><span class="sy4">:</span>
<span class="kw1">using</span> char_type <span class="sy1">=</span> <span class="kw1">typename</span> Context<span class="sy4">::</span><span class="me2">char_type</span><span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
variant<span class="sy1">&lt;</span>monostate, <span class="kw4">bool</span>, char_type,
<span class="kw4">int</span>, <span class="kw4">unsigned</span> <span class="kw4">int</span>, <span class="kw4">long</span> <span class="kw4">long</span> <span class="kw4">int</span>, <span class="kw4">unsigned</span> <span class="kw4">long</span> <span class="kw4">long</span> <span class="kw4">int</span>,
<span class="kw4">float</span>, <span class="kw4">double</span>, <span class="kw4">long</span> <span class="kw4">double</span>,
<span class="kw4">const</span> char_type<span class="sy2">*</span>, basic_string_view<span class="sy1">&lt;</span>char_type<span class="sy1">&gt;</span>,
<span class="kw4">const</span> <span class="kw4">void</span><span class="sy2">*</span>, handle<span class="sy1">&gt;</span> value<span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</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">explicit</span> basic_format_arg<span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> v<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
<span class="kw1">explicit</span> basic_format_arg<span class="br0">(</span><span class="kw4">float</span> n<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
<span class="kw1">explicit</span> basic_format_arg<span class="br0">(</span><span class="kw4">double</span> n<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
<span class="kw1">explicit</span> basic_format_arg<span class="br0">(</span><span class="kw4">long</span> <span class="kw4">double</span> n<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
<span class="kw1">explicit</span> basic_format_arg<span class="br0">(</span><span class="kw4">const</span> char_type<span class="sy2">*</span> s<span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> traits<span class="sy1">&gt;</span>
<span class="kw1">explicit</span> basic_format_arg<span class="br0">(</span>
basic_string_view<span class="sy1">&lt;</span>char_type, traits<span class="sy1">&gt;</span> s<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> traits, <span class="kw1">class</span> Allocator<span class="sy1">&gt;</span>
<span class="kw1">explicit</span> basic_format_arg<span class="br0">(</span>
<span class="kw4">const</span> basic_string<span class="sy1">&lt;</span>char_type, traits, Allocator<span class="sy1">&gt;</span><span class="sy3">&amp;</span> s<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
<span class="kw1">explicit</span> basic_format_arg<span class="br0">(</span>nullptr_t<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</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">explicit</span> basic_format_arg<span class="br0">(</span><span class="kw4">const</span> T<span class="sy2">*</span> p<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
<span class="kw1">public</span><span class="sy4">:</span>
basic_format_arg<span class="br0">(</span><span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</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="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB_std::basic_format_arg::handle">&#31867; <span class="t-lc">std::basic_format_arg::handle</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> Context<span class="sy1">&gt;</span>
<span class="kw1">class</span> basic_format_arg<span class="sy1">&lt;</span>Context<span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">handle</span> <span class="br0">{</span>
<span class="kw4">const</span> <span class="kw4">void</span><span class="sy2">*</span> ptr_<span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
<span class="kw4">void</span> <span class="br0">(</span><span class="sy2">*</span>format_<span class="br0">)</span><span class="br0">(</span>basic_format_parse_context<span class="sy1">&lt;</span>char_type<span class="sy1">&gt;</span><span class="sy3">&amp;</span>,
Context<span class="sy3">&amp;</span>, <span class="kw4">const</span> <span class="kw4">void</span><span class="sy2">*</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</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">explicit</span> handle<span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> val<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
<span class="kw1">friend</span> <span class="kw1">class</span> basic_format_arg<span class="sy1">&lt;</span>Context<span class="sy1">&gt;</span><span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
<span class="kw1">public</span><span class="sy4">:</span>
<span class="kw4">void</span> format<span class="br0">(</span>basic_format_parse_context<span class="sy1">&lt;</span>char_type<span class="sy1">&gt;</span><span class="sy3">&amp;</span>, Context<span class="sy3">&amp;</span> ctx<span class="br0">)</span> <span class="kw4">const</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_format-arg-store">&#31867;&#27169;&#26495; <i><code>format-arg-store</code></i></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> Context, <span class="kw1">class</span>... <span class="me1">Args</span><span class="sy1">&gt;</span>
<span class="kw1">struct</span> <span class="coMULTI">/*format-arg-store*/</span> <span class="br0">{</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
array<span class="sy1">&lt;</span>basic_format_arg<span class="sy1">&lt;</span>Context<span class="sy1">&gt;</span>, sizeof...<span class="br0">(</span>Args<span class="br0">)</span><span class="sy1">&gt;</span> args<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::basic_format_args">&#31867;&#27169;&#26495; <span class="t-lc">std::basic_format_args</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> Context<span class="sy1">&gt;</span>
<span class="kw1">class</span> basic_format_args <span class="br0">{</span>
size_t size_<span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
<span class="kw4">const</span> basic_format_arg<span class="sy1">&lt;</span>Context<span class="sy1">&gt;</span><span class="sy2">*</span> data_<span class="sy4">;</span> <span class="co1">// &#20165;&#20026;&#38416;&#37322;</span>
<span class="kw1">public</span><span class="sy4">:</span>
basic_format_args<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>... <span class="me1">Args</span><span class="sy1">&gt;</span>
basic_format_args<span class="br0">(</span><span class="kw4">const</span> <span class="coMULTI">/*format-arg-store*/</span><span class="sy1">&lt;</span>Context, Args...<span class="sy1">&gt;</span><span class="sy3">&amp;</span> store<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
basic_format_arg<span class="sy1">&lt;</span>Context<span class="sy1">&gt;</span> get<span class="br0">(</span>size_t i<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="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB_std::format_error">&#31867; <span class="t-lc">std::format_error</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> format_error <span class="sy4">:</span> <span class="kw1">public</span> runtime_error <span class="br0">{</span>
<span class="kw1">public</span><span class="sy4">:</span>
<span class="kw1">explicit</span> format_error<span class="br0">(</span><span class="kw4">const</span> string<span class="sy3">&amp;</span> what_arg<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">explicit</span> format_error<span class="br0">(</span><span class="kw4">const</span> <span class="kw4">char</span><span class="sy2">*</span> what_arg<span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
</div>
<div class="visualClear"></div>
</div>
</div>
</div>
</body>
</html>