|
68 | 68 |
|
69 | 69 | </head> |
70 | 70 | <body> |
71 | | -<header data-kunai-mdinfo="{"meta": {"header": ["format"], "id-type": ["function template"], "namespace": ["std"], "cpp": ["cpp20"]}, "sources": [{"id": "aecb4732974ae99fde75697f07409283d005c8a2", "source": "#include <iostream>\n#include <format>\n\nint main() {\n std::string fmt = \"0x{:x} 0b{:04b}\";\n std::string s = std::vformat(fmt, std::make_format_args(10, 6));\n std::cout << s << std::endl;\n}\n"}], "page_id": ["reference", "format", "make_format_args"]}"> |
| 71 | +<header data-kunai-mdinfo="{"meta": {"header": ["format"], "id-type": ["function template"], "namespace": ["std"], "cpp": ["cpp20"]}, "sources": [{"id": "e082b77f293991246f2b198d942172749491925b", "source": "#include <iostream>\n#include <format>\n\nint main() {\n std::string fmt = \"0x{:x} 0b{:04b}\";\n int m = 10, n = 6;\n std::string s = std::vformat(fmt, std::make_format_args(m, n));\n std::cout << s << std::endl;\n}\n"}], "page_id": ["reference", "format", "make_format_args"]}"> |
72 | 72 | <nav class="navbar navbar-default" role="navigation"> |
73 | 73 | <div class="container-fluid"> |
74 | 74 | <div class="navbar-header"> |
|
188 | 188 |
|
189 | 189 | <p class="text-right"><small> |
190 | 190 | 最終更新日時(UTC): |
191 | | - <span itemprop="datePublished" content="2026-01-20T03:05:18"> |
192 | | - 2026年01月20日 03時05分18秒 |
| 191 | + <span itemprop="datePublished" content="2026-03-26T00:51:58"> |
| 192 | + 2026年03月26日 00時51分58秒 |
193 | 193 | </span> |
194 | 194 | <br/> |
195 | 195 | <span itemprop="author" itemscope itemtype="http://schema.org/Person"> |
196 | | - <span itemprop="name">Akira Takahashi</span> |
| 196 | + <span itemprop="name">KAZOON</span> |
197 | 197 | </span> |
198 | 198 | が更新 |
199 | 199 | </small></p> |
|
216 | 216 | <div itemprop="articleBody"><p><div class="codehilite"><pre><span></span><code><span class="k">namespace</span><span class="w"> </span><span class="nn">std</span><span class="w"> </span><span class="p">{</span> |
217 | 217 | <span class="w"> </span><span class="k">template</span><span class="o"><</span><span class="k">class</span><span class="w"> </span><span class="nc">Context</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">format_context</span><span class="p">,</span><span class="w"> </span><span class="k">class</span><span class="p">...</span><span class="w"> </span><span class="n">Args</span><span class="o">></span> |
218 | 218 | <span class="w"> </span><span class="n"><i>format_arg_store</i></span><span class="o"><</span><span class="n">Context</span><span class="p">,</span><span class="w"> </span><span class="n">Args</span><span class="p">...</span><span class="o">></span> |
219 | | -<span class="w"> </span><span class="n">make_format_args</span><span class="p">(</span><span class="n">Args</span><span class="o">&&</span><span class="p">...</span><span class="w"> </span><span class="n">args</span><span class="p">);</span><span class="w"> </span><span class="c1">// (1) C++20</span> |
| 219 | +<span class="w"> </span><span class="n">make_format_args</span><span class="p">(</span><span class="n">Args</span><span class="o">&</span><span class="p">...</span><span class="w"> </span><span class="n">args</span><span class="p">);</span><span class="w"> </span><span class="c1">// (1) C++20</span> |
220 | 220 | <span class="w"> </span><span class="k">template</span><span class="o"><</span><span class="k">class</span><span class="w"> </span><span class="nc">Context</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">format_context</span><span class="p">,</span><span class="w"> </span><span class="k">class</span><span class="p">...</span><span class="w"> </span><span class="n">Args</span><span class="o">></span> |
221 | 221 | <span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="n"><i>format_arg_store</i></span><span class="o"><</span><span class="n">Context</span><span class="p">,</span><span class="w"> </span><span class="n">Args</span><span class="p">...</span><span class="o">></span> |
222 | | -<span class="w"> </span><span class="n">make_format_args</span><span class="p">(</span><span class="n">Args</span><span class="o">&&</span><span class="p">...</span><span class="w"> </span><span class="n">args</span><span class="p">);</span><span class="w"> </span><span class="c1">// (1) C++26</span> |
| 222 | +<span class="w"> </span><span class="n">make_format_args</span><span class="p">(</span><span class="n">Args</span><span class="o">&</span><span class="p">...</span><span class="w"> </span><span class="n">args</span><span class="p">);</span><span class="w"> </span><span class="c1">// (1) C++26</span> |
223 | 223 |
|
224 | 224 | <span class="w"> </span><span class="k">template</span><span class="o"><</span><span class="k">class</span><span class="p">...</span><span class="w"> </span><span class="n">Args</span><span class="o">></span> |
225 | 225 | <span class="w"> </span><span class="n"><i>format_arg_store</i></span><span class="o"><</span><span class="n"><a href="basic_format_context.html">wformat_context</a></span><span class="p">,</span><span class="w"> </span><span class="n">Args</span><span class="p">...</span><span class="o">></span> |
226 | | -<span class="w"> </span><span class="n">make_wformat_args</span><span class="p">(</span><span class="n">Args</span><span class="o">&&</span><span class="p">...</span><span class="w"> </span><span class="n">args</span><span class="p">);</span><span class="w"> </span><span class="c1">// (2) C++20</span> |
| 226 | +<span class="w"> </span><span class="n">make_wformat_args</span><span class="p">(</span><span class="n">Args</span><span class="o">&</span><span class="p">...</span><span class="w"> </span><span class="n">args</span><span class="p">);</span><span class="w"> </span><span class="c1">// (2) C++20</span> |
227 | 227 | <span class="w"> </span><span class="k">template</span><span class="o"><</span><span class="k">class</span><span class="p">...</span><span class="w"> </span><span class="n">Args</span><span class="o">></span> |
228 | 228 | <span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="n"><i>format_arg_store</i></span><span class="o"><</span><span class="n"><a href="basic_format_context.html">wformat_context</a></span><span class="p">,</span><span class="w"> </span><span class="n">Args</span><span class="p">...</span><span class="o">></span> |
229 | | -<span class="w"> </span><span class="n">make_wformat_args</span><span class="p">(</span><span class="n">Args</span><span class="o">&&</span><span class="p">...</span><span class="w"> </span><span class="n">args</span><span class="p">);</span><span class="w"> </span><span class="c1">// (2) C++26</span> |
| 229 | +<span class="w"> </span><span class="n">make_wformat_args</span><span class="p">(</span><span class="n">Args</span><span class="o">&</span><span class="p">...</span><span class="w"> </span><span class="n">args</span><span class="p">);</span><span class="w"> </span><span class="c1">// (2) C++26</span> |
230 | 230 | <span class="p">}</span> |
231 | 231 | </code></pre></div> |
232 | 232 | </p> |
@@ -262,12 +262,13 @@ <h3>(2)</h3> |
262 | 262 | </code></pre></div> |
263 | 263 | </p> |
264 | 264 | <h2>例</h2> |
265 | | -<p><div class="yata" id="aecb4732974ae99fde75697f07409283d005c8a2"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../iostream.html"><iostream></a></span> |
| 265 | +<p><div class="yata" id="e082b77f293991246f2b198d942172749491925b"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../iostream.html"><iostream></a></span> |
266 | 266 | <span class="cp">#include <a href="../format.html"><format></a></span> |
267 | 267 |
|
268 | 268 | <span class="kt">int</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> |
269 | 269 | <span class="w"> </span><span class="n"><a href="../string/basic_string.html">std::string</a></span><span class="w"> </span><span class="n">fmt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"0x{:x} 0b{:04b}"</span><span class="p">;</span> |
270 | | -<span class="w"> </span><span class="n"><a href="../string/basic_string.html">std::string</a></span><span class="w"> </span><span class="n">s</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n"><a href="vformat.html">std::vformat</a></span><span class="p">(</span><span class="n">fmt</span><span class="p">,</span><span class="w"> </span><span class="n"><span style="color:#ff0000">std::make_format_args</span></span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p">));</span> |
| 270 | +<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">m</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">6</span><span class="p">;</span> |
| 271 | +<span class="w"> </span><span class="n"><a href="../string/basic_string.html">std::string</a></span><span class="w"> </span><span class="n">s</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n"><a href="vformat.html">std::vformat</a></span><span class="p">(</span><span class="n">fmt</span><span class="p">,</span><span class="w"> </span><span class="n"><span style="color:#ff0000">std::make_format_args</span></span><span class="p">(</span><span class="n">m</span><span class="p">,</span><span class="w"> </span><span class="n">n</span><span class="p">));</span> |
271 | 272 | <span class="w"> </span><span class="n"><a href="../iostream/cout.html">std::cout</a></span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">s</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n"><a href="../ostream/endl.html">std::endl</a></span><span class="p">;</span> |
272 | 273 | <span class="p">}</span> |
273 | 274 | </code></pre></div> |
@@ -306,6 +307,10 @@ <h2>参照</h2> |
306 | 307 | <ul> |
307 | 308 | <li><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r10.html" target="_blank">P0645R10 Text Formatting</a></li> |
308 | 309 | <li><a href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2418r2.html" target="_blank">P2418R2 Add support for <code>std::generator</code>-like types to <code>std::format</code></a></li> |
| 310 | +<li><a href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2905r2.html" target="_blank">P2905R2 Runtime format strings</a><ul> |
| 311 | +<li>C++23 発効後の DR として、引数を非 <code>const</code> 左辺値参照とすることで、一時オブジェクトを渡すことによる寿命切れオブジェクトの参照を回避する変更が提案された。これは C++20 まで遡及適用された。</li> |
| 312 | +</ul> |
| 313 | +</li> |
309 | 314 | </ul></div> |
310 | 315 |
|
311 | 316 | </div> |
|
0 commit comments