|
201 | 201 | <p class="text-right"><small> |
202 | 202 | 最終更新日時: |
203 | 203 | <time itemprop="datePublished" class="js-local-time" |
204 | | - datetime="2026-08-25T12:11:17+09:00"> |
205 | | - 2026年08月25日 12時11分17秒 (JST) |
| 204 | + datetime="2026-08-31T13:38:53+09:00"> |
| 205 | + 2026年08月31日 13時38分53秒 (JST) |
206 | 206 | </time> |
207 | 207 | <br/> |
208 | 208 | <span itemprop="author" itemscope itemtype="http://schema.org/Person"> |
|
254 | 254 | <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">CharT</span><span class="p">,</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="nc">Traits</span><span class="o">></span> |
255 | 255 | <span class="w"> </span><span class="n">basic_istream</span><span class="o"><</span><span class="n">CharT</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="k">operator</span><span class="o">>></span><span class="p">(</span><span class="n">basic_istream</span><span class="o"><</span><span class="n">CharT</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="n">is</span><span class="p">,</span><span class="w"> </span><span class="n">CharT</span><span class="o">&</span><span class="w"> </span><span class="n">c</span><span class="p">);</span><span class="w"> </span><span class="c1">// (1) C++98</span> |
256 | 256 | <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">Traits</span><span class="o">></span> |
257 | | -<span class="w"> </span><span class="n">basic_istream</span><span class="o"><</span><span class="kt">char</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="k">operator</span><span class="o">>></span><span class="p">(</span><span class="n">basic_istream</span><span class="o"><</span><span class="n">CharT</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="n">is</span><span class="p">,</span><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">char</span><span class="o">&</span><span class="w"> </span><span class="n">c</span><span class="p">);</span><span class="w"> </span><span class="c1">// (2) C++98</span> |
| 257 | +<span class="w"> </span><span class="n">basic_istream</span><span class="o"><</span><span class="kt">char</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="k">operator</span><span class="o">>></span><span class="p">(</span><span class="n">basic_istream</span><span class="o"><</span><span class="n">CharT</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="n">is</span><span class="p">,</span><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">char</span><span class="o">&</span><span class="w"> </span><span class="n">c</span><span class="p">);</span><span class="w"> </span><span class="c1">// (2) C++98、C++29から非推奨</span> |
258 | 258 | <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">Traits</span><span class="o">></span> |
259 | | -<span class="w"> </span><span class="n">basic_istream</span><span class="o"><</span><span class="kt">char</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="k">operator</span><span class="o">>></span><span class="p">(</span><span class="n">basic_istream</span><span class="o"><</span><span class="n">CharT</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="n">is</span><span class="p">,</span><span class="w"> </span><span class="kt">signed</span><span class="w"> </span><span class="kt">char</span><span class="o">&</span><span class="w"> </span><span class="n">c</span><span class="p">);</span><span class="w"> </span><span class="c1">// (3) C++98</span> |
| 259 | +<span class="w"> </span><span class="n">basic_istream</span><span class="o"><</span><span class="kt">char</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="k">operator</span><span class="o">>></span><span class="p">(</span><span class="n">basic_istream</span><span class="o"><</span><span class="n">CharT</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="n">is</span><span class="p">,</span><span class="w"> </span><span class="kt">signed</span><span class="w"> </span><span class="kt">char</span><span class="o">&</span><span class="w"> </span><span class="n">c</span><span class="p">);</span><span class="w"> </span><span class="c1">// (3) C++98、C++29から非推奨</span> |
260 | 260 |
|
261 | 261 | <span class="w"> </span><span class="c1">// 文字列</span> |
262 | 262 | <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">CharT</span><span class="p">,</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="nc">Traits</span><span class="o">></span> |
263 | 263 | <span class="w"> </span><span class="n">basic_istream</span><span class="o"><</span><span class="n">CharT</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="k">operator</span><span class="o">>></span><span class="p">(</span><span class="n">basic_istream</span><span class="o"><</span><span class="n">CharT</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="n">is</span><span class="p">,</span><span class="w"> </span><span class="n">CharT</span><span class="o">*</span><span class="w"> </span><span class="n">c</span><span class="p">);</span><span class="w"> </span><span class="c1">// (4) C++98</span> |
264 | 264 | <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">CharT</span><span class="p">,</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="nc">Traits</span><span class="p">,</span><span class="w"> </span><span class="n"><a href="../../cstddef/size_t.html">std::size_t</a></span><span class="w"> </span><span class="n">N</span><span class="o">></span> |
265 | 265 | <span class="w"> </span><span class="n">basic_istream</span><span class="o"><</span><span class="n">CharT</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="k">operator</span><span class="o">>></span><span class="p">(</span><span class="n">basic_istream</span><span class="o"><</span><span class="n">CharT</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="n">is</span><span class="p">,</span><span class="w"> </span><span class="n">CharT</span><span class="w"> </span><span class="p">(</span><span class="o">&</span><span class="n">s</span><span class="p">)[</span><span class="n">N</span><span class="p">]);</span><span class="w"> </span><span class="c1">// (4) C++20</span> |
266 | 266 | <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">Traits</span><span class="o">></span> |
267 | | -<span class="w"> </span><span class="n">basic_istream</span><span class="o"><</span><span class="kt">char</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="k">operator</span><span class="o">>></span><span class="p">(</span><span class="n">basic_istream</span><span class="o"><</span><span class="n">CharT</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="n">is</span><span class="p">,</span><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">char</span><span class="o">*</span><span class="w"> </span><span class="n">c</span><span class="p">);</span><span class="w"> </span><span class="c1">// (5) C++98</span> |
| 267 | +<span class="w"> </span><span class="n">basic_istream</span><span class="o"><</span><span class="kt">char</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="k">operator</span><span class="o">>></span><span class="p">(</span><span class="n">basic_istream</span><span class="o"><</span><span class="n">CharT</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="n">is</span><span class="p">,</span><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">char</span><span class="o">*</span><span class="w"> </span><span class="n">c</span><span class="p">);</span><span class="w"> </span><span class="c1">// (5) C++98、C++29から非推奨</span> |
268 | 268 | <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">Traits</span><span class="p">,</span><span class="w"> </span><span class="n"><a href="../../cstddef/size_t.html">std::size_t</a></span><span class="w"> </span><span class="n">N</span><span class="o">></span> |
269 | | -<span class="w"> </span><span class="n">basic_istream</span><span class="o"><</span><span class="kt">char</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="k">operator</span><span class="o">>></span><span class="p">(</span><span class="n">basic_istream</span><span class="o"><</span><span class="n">CharT</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="n">is</span><span class="p">,</span><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="p">(</span><span class="o">&</span><span class="n">s</span><span class="p">)[</span><span class="n">N</span><span class="p">]);</span><span class="w"> </span><span class="c1">// (5) C++20</span> |
| 269 | +<span class="w"> </span><span class="n">basic_istream</span><span class="o"><</span><span class="kt">char</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="k">operator</span><span class="o">>></span><span class="p">(</span><span class="n">basic_istream</span><span class="o"><</span><span class="n">CharT</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="n">is</span><span class="p">,</span><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="p">(</span><span class="o">&</span><span class="n">s</span><span class="p">)[</span><span class="n">N</span><span class="p">]);</span><span class="w"> </span><span class="c1">// (5) C++20、C++29から非推奨</span> |
270 | 270 | <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">Traits</span><span class="o">></span> |
271 | | -<span class="w"> </span><span class="n">basic_istream</span><span class="o"><</span><span class="kt">char</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="k">operator</span><span class="o">>></span><span class="p">(</span><span class="n">basic_istream</span><span class="o"><</span><span class="n">CharT</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="n">is</span><span class="p">,</span><span class="w"> </span><span class="kt">signed</span><span class="w"> </span><span class="kt">char</span><span class="o">*</span><span class="w"> </span><span class="n">c</span><span class="p">);</span><span class="w"> </span><span class="c1">// (6) C++98</span> |
| 271 | +<span class="w"> </span><span class="n">basic_istream</span><span class="o"><</span><span class="kt">char</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="k">operator</span><span class="o">>></span><span class="p">(</span><span class="n">basic_istream</span><span class="o"><</span><span class="n">CharT</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="n">is</span><span class="p">,</span><span class="w"> </span><span class="kt">signed</span><span class="w"> </span><span class="kt">char</span><span class="o">*</span><span class="w"> </span><span class="n">c</span><span class="p">);</span><span class="w"> </span><span class="c1">// (6) C++98、C++29から非推奨</span> |
272 | 272 | <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">Traits</span><span class="p">,</span><span class="w"> </span><span class="n"><a href="../../cstddef/size_t.html">std::size_t</a></span><span class="w"> </span><span class="n">N</span><span class="o">></span> |
273 | | -<span class="w"> </span><span class="n">basic_istream</span><span class="o"><</span><span class="kt">char</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="k">operator</span><span class="o">>></span><span class="p">(</span><span class="n">basic_istream</span><span class="o"><</span><span class="n">CharT</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="n">is</span><span class="p">,</span><span class="w"> </span><span class="kt">signed</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="p">(</span><span class="o">&</span><span class="n">s</span><span class="p">)[</span><span class="n">N</span><span class="p">]);</span><span class="w"> </span><span class="c1">// (6) C++20</span> |
| 273 | +<span class="w"> </span><span class="n">basic_istream</span><span class="o"><</span><span class="kt">char</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="k">operator</span><span class="o">>></span><span class="p">(</span><span class="n">basic_istream</span><span class="o"><</span><span class="n">CharT</span><span class="p">,</span><span class="w"> </span><span class="n">Traits</span><span class="o">>&</span><span class="w"> </span><span class="n">is</span><span class="p">,</span><span class="w"> </span><span class="kt">signed</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="p">(</span><span class="o">&</span><span class="n">s</span><span class="p">)[</span><span class="n">N</span><span class="p">]);</span><span class="w"> </span><span class="c1">// (6) C++20、C++29から非推奨</span> |
274 | 274 |
|
275 | 275 | <span class="w"> </span><span class="c1">// 右辺値参照ストリームからの入力</span> |
276 | 276 | <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">CharT</span><span class="p">,</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="nc">Traits</span><span class="p">,</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="nc">T</span><span class="o">></span> |
@@ -348,6 +348,14 @@ <h3>右辺値参照ストリームからの入力</h3> |
348 | 348 | </ul> |
349 | 349 | <h2><a class="cpprefjp-defined-word" data-desc="関数呼び出し式の評価結果となるオブジェクト・値">戻り値</a></h2> |
350 | 350 | <p><code>is</code></p> |
| 351 | +<h2>非推奨・削除の詳細</h2> |
| 352 | +<ul> |
| 353 | +<li>(2), (3), (5), (6) :<ul> |
| 354 | +<li>C++29では、<code>unsigned char</code>・<code>signed char</code>を文字として扱う<a class="cpprefjp-defined-word" data-desc="同名の関数を異なる引数・テンプレート・制約などで複数定義すること。または同名の関数の集合">オーバーロード</a>が非推奨となった。</li> |
| 355 | +<li>これらの型は文字型ではなく整数型であり (<code><a href="../../cstdint/int8_t.html">std::int8_t</a></code>・<code><a href="../../cstdint/uint8_t.html">std::uint8_t</a></code>の別名でもある)、文字として入出力されるのは意図しない動作であることが多いため。<code><a href="../../format/format.html">std::format()</a></code>ではこれらの型を整数として扱っている。</li> |
| 356 | +</ul> |
| 357 | +</li> |
| 358 | +</ul> |
351 | 359 | <h2>例(文字列)</h2> |
352 | 360 | <p><div class="yata" id="e976aebe950c273ece050c947b3d6d630606cefa"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../../iostream.html"><iostream></a></span> |
353 | 361 | <span class="cp">#include <a href="../../iomanip.html"><iomanip></a></span> |
@@ -402,6 +410,10 @@ <h2>参照</h2> |
402 | 410 | <li>C++23でローカルエラー状態の概念が導入され、入力関数のエラー処理セマンティクスが明確化された</li> |
403 | 411 | </ul> |
404 | 412 | </li> |
| 413 | +<li><a href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3154r3.html" target="_blank">P3154R3 Deprecating signed character types in iostreams</a><ul> |
| 414 | +<li>C++29で、<code>unsigned char</code>・<code>signed char</code>を文字として扱う<a class="cpprefjp-defined-word" data-desc="同名の関数を異なる引数・テンプレート・制約などで複数定義すること。または同名の関数の集合">オーバーロード</a> (2), (3), (5), (6) が非推奨となった</li> |
| 415 | +</ul> |
| 416 | +</li> |
405 | 417 | </ul></div> |
406 | 418 |
|
407 | 419 | </div> |
|
0 commit comments