<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>cpprefjp - C++日本語リファレンス</title>
  <link href="https://cpprefjp.github.io" />
  <updated>2026-09-07T08:26:39.409110</updated>
  <id>1b8aa272-7b7b-49bc-be98-3103a356e20b</id>

  
    <entry>
      <title>C++29 -- error_code / error_category : C++29対応としてformatter特殊化を追加。エラーメッセージのエンコーディングを規定 (close #1700)</title>
      <link href="https://cpprefjp.github.io/lang/cpp29.html"/>
      <id>6ca95c905a7497917fa057c80a303c7d9d29023d:lang/cpp29.md</id>
      <updated>2026-09-07T17:24:24+09:00</updated>
      
        <content type="html">&lt;h1 itemprop=&#34;name&#34;&gt;&lt;span class=&#34;token&#34;&gt;C++29&lt;/span&gt;&lt;/h1&gt;
&lt;div itemprop=&#34;articleBody&#34;&gt;&lt;h2&gt;概要&lt;/h2&gt;
&lt;p&gt;C++29とは、2029年中に改訂される予定の、C++バージョンの通称である。&lt;/p&gt;
&lt;p&gt;このバージョンは、策定中のためC++2dと呼ばれることがある。「(2020年代の4つ目のバージョンが) 202d年にリリースされる」という伏せ字として「d」が使われているが、3年周期に次のバージョンが策定されることが決まっているため、伏せ字になっている年数がずれることはない。&lt;/p&gt;
&lt;h2&gt;言語機能&lt;/h2&gt;
&lt;h3&gt;変数&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/clarify_the_behavior_of_floating-point_overflow.html&#34;&gt;浮動小数点演算のオーバーフローと無限大・NaNの扱いを明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;無限大を表現できる浮動小数点型では、オーバーフローは未定義動作ではなく無限大を生成すると規定する。オーバーフローやNaNを新たに生成する演算は定数式にならず、無限大・NaNの伝播は定数式として扱える&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;文字列&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/more_named_universal_character_escapes.html&#34;&gt;名前付きユニバーサルキャラクタ名で使用できる別名を拡張&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;\N{…}&lt;/code&gt;に指定できる文字名の別名の分類制限を撤廃し、&lt;code&gt;\N{NBSP}&lt;/code&gt;のような略称 (abbreviation) なども使用できるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;制御構文&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/return_value_and_return_void_are_not_mutually_exclusive.html&#34;&gt;コルーチンのpromise型で&lt;code&gt;return_value&lt;/code&gt;と&lt;code&gt;return_void&lt;/code&gt;の両方の宣言を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;1つのコルーチン内に、値をともなう&lt;code&gt;co_return&lt;/code&gt;文とともなわない&lt;code&gt;co_return&lt;/code&gt;文を混在させられるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;関数&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/lexical_order_for_lambdas.html&#34;&gt;ラムダ式のキャプチャが書かれた順に初期化されることを保証&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;明示的なキャプチャに対応するクロージャ型のメンバ変数が、キャプチャを書いた順に宣言・初期化され、逆順に破棄されることを保証する&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/deallocation_functions_with_throwing_exception_specification_are_ill_formed.html&#34;&gt;例外を送出しうる例外指定をもつ解放関数を不適格とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;operator delete&lt;/code&gt;などの解放関数に、&lt;code&gt;noexcept(false)&lt;/code&gt;のような例外を送出しうる例外指定を付けることを&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;とする。解放関数からの例外送出による未定義動作へ到達する経路を、宣言の時点で排除する&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;クラス&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/designated-initializers_for_base_classes.html&#34;&gt;基底クラスのメンバ変数に対する指示付き初期化を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;B{.a=1, .b=2}&lt;/code&gt;のように、集成体の指示付き初期化で基底クラスのメンバ変数を直接指定できるようにする。基底クラス部分を初期化する指示なし初期化子との混在も許可する&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/defaulting_postfix_increment_and_decrement_operations.html&#34;&gt;後置インクリメント・デクリメント演算のdefault定義&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;後置&lt;code&gt;++&lt;/code&gt;／&lt;code&gt;--&lt;/code&gt;を&lt;code&gt;= default&lt;/code&gt;で定義（前置版から自動生成）できるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/adding_restrictions_to_defaulted_assignment_operator_functions.html&#34;&gt;default定義できる代入演算子のシグネチャを制限&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;A&amp;amp; operator=(const A&amp;amp;) &amp;amp;&amp;amp; = default&lt;/code&gt;のような右辺値修飾やCV修飾された代入演算子のdefault定義を&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;とする。これらの代入演算子を自分で定義することは引き続きできる&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/contracts_for_virtual_functions.html&#34;&gt;仮想関数への事前条件・事後条件の指定を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;C++26で&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;とされていた、仮想関数への事前条件&lt;code&gt;pre&lt;/code&gt;・事後条件&lt;code&gt;post&lt;/code&gt;の指定を許可する。仮想関数呼び出しでは、静的に選択された関数と実際に呼び出される関数の両方のアサーションが評価される&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;テンプレート&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/language_linkage_for_templates.html&#34;&gt;extern &#34;C&#34;の中でのテンプレートの宣言を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートがC言語リンケージを持つことを禁止する規定を削除し、&lt;code&gt;extern &#34;C&#34;&lt;/code&gt;の中でテンプレートを宣言できるようにする。C言語リンケージの関数ポインタ型を、テンプレートパラメータに依存する形で書けるようになる&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/conditional_noexcept_specifiers_in_compound_requirements.html&#34;&gt;requires式の複合要件で条件付き&lt;code&gt;noexcept&lt;/code&gt;指定を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;requires式の複合要件で、&lt;code&gt;{ 式 } noexcept(定数式)&lt;/code&gt;形式の条件付き&lt;code&gt;noexcept&lt;/code&gt;指定を書けるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/pack_indexing_for_template_names.html&#34;&gt;テンプレートテンプレートパラメータのパックへのインデックスアクセスを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートテンプレートパラメータのパックに&lt;code&gt;TT...[N]&lt;/code&gt;形式でインデックスアクセスできるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;定数式&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/consteval-only_values.html&#34;&gt;consteval-only型の規則をconsteval-only値の規則へ置き換え&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;リフレクションが実行時へ漏れることを防ぐ規則を、型ベースから値ベースへ変更する&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;並行・並列処理&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/nondeterministic_pointer_provenance.html&#34;&gt;整数からポインタへの変換とポインタの由来の扱いを規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;整数からポインタへの変換では、その整数へ変換できるポインタ値のうち、プログラムの動作が定義される値が選択されると規定する&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/invalid_pointer_operations.html&#34;&gt;無効なポインタ値の読み書き・コピーを定義された動作とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;無効なポインタ値の使用のうち、間接参照は未定義動作、比較などは処理系定義のままとし、読み込み・書き込み・コピーなどそれ以外の操作を定義された動作とする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/pointer_lifetime-end_zap_proposed_solutions.html&#34;&gt;アトミック操作とvolatileアクセスでの無効なポインタ値の扱いを規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;アトミックポインタの操作やvolatileアクセスの結果が無効なポインタ値となる場合、整数への往復変換を経た有効なポインタ値になると規定する。解放と並行してポインタを扱うロックフリーアルゴリズムを定義された動作にする&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;プリプロセッサ&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/embed_offset_parameter.html&#34;&gt;&lt;code&gt;#embed&lt;/code&gt;に&lt;code&gt;offset&lt;/code&gt;パラメータを追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#embed&lt;/code&gt;のパラメータとして、リソースの先頭から指定した要素数を読み飛ばす&lt;code&gt;offset&lt;/code&gt;を追加する&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;未定義動作&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/undefined_behavior_and_ifndr_annexes.html&#34;&gt;未定義動作とIFNDRの一覧を規格の付録に追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コア言語で明示的に規定されているすべての未定義動作と、診断不要で&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt; (IFNDR) となるすべての規則を、安定した名前・説明・コード例付きで列挙する参考情報の付録を追加する&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;ソースコード&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/adjust_identifier_following_new_Unicode_recommendations.html&#34;&gt;数学互換記法の文字を識別子として許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Unicodeの新しい勧告に従い、&lt;code&gt;∇f&lt;/code&gt;や&lt;code&gt;x²&lt;/code&gt;のような数学記法の文字（ID_Compat_Math_Start／Continueプロパティを持つ文字）を識別子に使用できるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;ライブラリ更新の概要&lt;/h2&gt;
&lt;h3&gt;整数&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;任意定義だった&lt;code&gt;&lt;a href=&#34;../reference/cstdint/intptr_t.html&#34;&gt;std::intptr_t&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/cstdint/uintptr_t.html&#34;&gt;std::uintptr_t&lt;/a&gt;&lt;/code&gt;型を必須定義とする&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;文字列&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/format/format.html&#34;&gt;std::format()&lt;/a&gt;&lt;/code&gt;関数での浮動小数点数の規定の出力形式を修正&lt;ul&gt;
&lt;li&gt;これまでの既定書式が最短文字数を基準としていたため、&lt;code&gt;100000.0&lt;/code&gt;→&lt;code&gt;&#34;1e+05&#34;&lt;/code&gt;なのに&lt;code&gt;120000.0&lt;/code&gt;→&lt;code&gt;&#34;120000&#34;&lt;/code&gt;と一貫していない出力になっていたのを修正&lt;/li&gt;
&lt;li&gt;また、大きな値で&lt;code&gt;1234567890123456774144&lt;/code&gt;のような無意味な桁（garbage digits）がでる問題について、固定表記か指数表記かの切り替え基準を「値の大きさ（指数範囲 &lt;code&gt;[10⁻⁴, 10ⁿ)&lt;/code&gt;）」に変更して修正した&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;ビット操作&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/bit.html&#34;&gt;&amp;lt;bit&amp;gt;&lt;/a&gt;&lt;/code&gt;に、以下のビット操作関数を追加&lt;ul&gt;
&lt;li&gt;ビット列の並びを反転する&lt;code&gt;&lt;a href=&#34;../reference/bit/bit_reverse.html&#34;&gt;std::bit_reverse()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;li&gt;指定した下位ビットパターンを繰り返す&lt;code&gt;&lt;a href=&#34;../reference/bit/bit_repeat.html&#34;&gt;std::bit_repeat()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;li&gt;指定したマスクで立っている一のビットを下位に詰める&lt;code&gt;&lt;a href=&#34;../reference/bit/bit_compress.html&#34;&gt;std::bit_compress()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;li&gt;下位ビットを指定したマスクが立っている位置へ展開する&lt;code&gt;&lt;a href=&#34;../reference/bit/bit_expand.html&#34;&gt;std::bit_expand()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;li&gt;未定義動作にならないビットシフト&lt;code&gt;&lt;a href=&#34;../reference/bit/shl.html&#34;&gt;std::shl()&lt;/a&gt;&lt;/code&gt;関数と&lt;code&gt;&lt;a href=&#34;../reference/bit/shr.html&#34;&gt;std::shr()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;コンテナ&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/map/map.html&#34;&gt;std::map&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/unordered_map/unordered_map.html&#34;&gt;std::unordered_map&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/flat_map/flat_map.html&#34;&gt;std::flat_map&lt;/a&gt;&lt;/code&gt;クラスに、&lt;code&gt;&lt;a href=&#34;../reference/optional/optional.html&#34;&gt;std::optional&lt;/a&gt;&amp;lt;要素への参照&amp;gt;&lt;/code&gt;を返す検索メンバ関数&lt;code&gt;lookup()&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ranges/view_interface.html&#34;&gt;std::ranges::view_interface&lt;/a&gt;&lt;/code&gt;クラスに、境界チェック付きでランダムアクセスをするメンバ関数&lt;code&gt;&lt;a href=&#34;../reference/ranges/view_interface/at.html&#34;&gt;at()&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/mdspan/mdspan.html&#34;&gt;std::mdspan&lt;/a&gt;&lt;/code&gt;クラス向けのアルゴリズムとして&lt;code&gt;&lt;a href=&#34;../reference/mdspan/copy.md.nolink&#34;&gt;std::copy()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/mdspan/fill.md.nolink&#34;&gt;std::fill()&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;メモリ&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダに、ポインタのタグ付けを行う&lt;code&gt;&lt;a href=&#34;../reference/memory/pointer_tag_pair.md.nolink&#34;&gt;std::pointer_tag_pair&lt;/a&gt;&lt;/code&gt;クラスとその関連機能を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;エラーハンドリング&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/expected/expected.html&#34;&gt;std::expected&lt;/a&gt;&lt;/code&gt;クラスに、エラー値を保持しているかを判定するメンバ関数&lt;code&gt;&lt;a href=&#34;../reference/expected/expected/has_error.html&#34;&gt;has_error()&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/system_error/error_code.html&#34;&gt;std::error_code&lt;/a&gt;&lt;/code&gt;クラスを&lt;code&gt;&lt;a href=&#34;../reference/format/format.html&#34;&gt;std::format()&lt;/a&gt;&lt;/code&gt;で出力できるよう、&lt;a href=&#34;../reference/system_error/error_code/formatter.html&#34;&gt;&lt;code&gt;formatter&lt;/code&gt;特殊化&lt;/a&gt;を追加。あわせて、カテゴリ名とエラーメッセージのエンコーディングが未規定だった問題を修正&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;並行・並列&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/thread/thread.html&#34;&gt;std::thread&lt;/a&gt;&lt;/code&gt;クラスと&lt;code&gt;&lt;a href=&#34;../reference/thread/jthread.html&#34;&gt;std::jthread&lt;/a&gt;&lt;/code&gt;クラスに、スレッド名とスタックサイズを設定する機能を追加&lt;/li&gt;
&lt;li&gt;SIMDデータ用に連番を生成する&lt;code&gt;&lt;a href=&#34;../reference/simd/iota.html&#34;&gt;std::simd::iota&lt;/a&gt;&lt;/code&gt;変数テンプレートを追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/bit.html&#34;&gt;&amp;lt;bit&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダと同様に、&lt;code&gt;&lt;a href=&#34;../reference/simd.html&#34;&gt;&amp;lt;simd&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダにも、以下のビット操作関数を追加&lt;ul&gt;
&lt;li&gt;ビット列の並びを反転する&lt;code&gt;&lt;a href=&#34;../reference/simd/bit_reverse.html&#34;&gt;std::simd::bit_reverse()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;li&gt;指定した下位ビットパターンを繰り返す&lt;code&gt;&lt;a href=&#34;../reference/simd/bit_repeat.html&#34;&gt;std::simd::bit_repeat()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;li&gt;指定したマスクで立っている一のビットを下位に詰める&lt;code&gt;&lt;a href=&#34;../reference/simd/bit_compress.html&#34;&gt;std::simd::bit_compress()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;li&gt;下位ビットを指定したマスクが立っている位置へ展開する&lt;code&gt;&lt;a href=&#34;../reference/simd/bit_expand.html&#34;&gt;std::simd::bit_expand()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;li&gt;未定義動作にならないビットシフト&lt;code&gt;&lt;a href=&#34;../reference/simd/shl.html&#34;&gt;std::simd::shl()&lt;/a&gt;&lt;/code&gt;関数と&lt;code&gt;&lt;a href=&#34;../reference/simd/shr.html&#34;&gt;std::simd::shr()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/hazard_pointer.html&#34;&gt;&amp;lt;hazard_pointer&amp;gt;&lt;/a&gt;&lt;/code&gt;に、複数のハザードポインタをまとめて構築・破棄する&lt;code&gt;&lt;a href=&#34;../reference/hazard_pointer/make_hazard_pointer_batch.html&#34;&gt;std::make_hazard_pointer_batch()&lt;/a&gt;&lt;/code&gt;関数と&lt;code&gt;&lt;a href=&#34;../reference/hazard_pointer/clear_hazard_pointer_batch.html&#34;&gt;std::clear_hazard_pointer_batch()&lt;/a&gt;&lt;/code&gt;関数を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;非推奨化&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/iostream.html&#34;&gt;&amp;lt;iostream&amp;gt;&lt;/a&gt;&lt;/code&gt;において、&lt;code&gt;signed char&lt;/code&gt; / &lt;code&gt;unsigned char&lt;/code&gt;の入出力を非推奨化。&lt;code&gt;&lt;a href=&#34;../reference/cstdint/int8_t.html&#34;&gt;std::int8_t&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/cstdint/uint8_t.html&#34;&gt;std::uint8_t&lt;/a&gt;&lt;/code&gt;の別名として扱われるこれらの型の入出力で、整数型であることを期待して予期せぬ結果を招く可能性があった&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>message -- error_code / error_category : C++29対応としてformatter特殊化を追加。エラーメッセージのエンコーディングを規定 (close #1700)</title>
      <link href="https://cpprefjp.github.io/reference/system_error/error_category/message.html"/>
      <id>6ca95c905a7497917fa057c80a303c7d9d29023d:reference/system_error/error_category/message.md</id>
      <updated>2026-09-07T17:24:24+09:00</updated>
      
        <summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/reference/system_error/error_category/message.md b/reference/system_error/error_category/message.md
index 0b0283d1c..3478e6142 100644
--- a/reference/system_error/error_category/message.md
+++ b/reference/system_error/error_category/message.md
@@ -17,6 +17,9 @@ virtual string message(int ev) const = 0;
 ## 戻り値
 エラーコードを説明するメッセージを返す
 
+- C++11 : 文字列のエンコーディングは未規定（実装によってCロケールのエンコーディングだったり、Windowsのコードページ (ACP) だったりと移植可能に扱えなかった）
+- C++29 : 文字列は、実行文字集合のマルチバイト文字列であると規定された
+
 
 ## 例
 ```cpp example
@@ -54,3 +57,7 @@ Not a directory
 
 
 ## 参照
+- [P3395R6 Fix encoding issues and add a `formatter` for `std::error_code`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3395r6.html)
+    - C++29で、返される文字列のエンコーディングが規定された
+- [LWG Issue 4156. `error_category` messages have unspecified encoding](https://cplusplus.github.io/LWG/issue4156)
+    - エンコーディングが未規定であることを指摘したissue。P3395R6で解決された
&lt;/code&gt;&lt;/pre&gt;</summary>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>name -- error_code / error_category : C++29対応としてformatter特殊化を追加。エラーメッセージのエンコーディングを規定 (close #1700)</title>
      <link href="https://cpprefjp.github.io/reference/system_error/error_category/name.html"/>
      <id>6ca95c905a7497917fa057c80a303c7d9d29023d:reference/system_error/error_category/name.md</id>
      <updated>2026-09-07T17:24:24+09:00</updated>
      
        <summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/reference/system_error/error_category/name.md b/reference/system_error/error_category/name.md
index 9f156908f..09f3c24c3 100644
--- a/reference/system_error/error_category/name.md
+++ b/reference/system_error/error_category/name.md
@@ -16,6 +16,9 @@ virtual const char* name() const noexcept = 0;
 ## 戻り値
 エラーの分類を示す文字列を返す
 
+- C++11 : 文字列のエンコーディングは未規定（実際には、各実装とも文字列リテラルで定義しており、通常の文字列リテラルのエンコーディングだった）
+- C++29 : 文字列は、通常の文字列リテラルのエンコーディングであると規定された
+
 
 ## 例外
 投げない
@@ -57,3 +60,7 @@ system
 
 
 ## 参照
+- [P3395R6 Fix encoding issues and add a `formatter` for `std::error_code`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3395r6.html)
+    - C++29で、返される文字列のエンコーディングが規定された
+- [LWG Issue 4156. `error_category` messages have unspecified encoding](https://cplusplus.github.io/LWG/issue4156)
+    - エンコーディングが未規定であることを指摘したissue。P3395R6で解決された
&lt;/code&gt;&lt;/pre&gt;</summary>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>error_code -- error_code / error_category : C++29対応としてformatter特殊化を追加。エラーメッセージのエンコーディングを規定 (close #1700)</title>
      <link href="https://cpprefjp.github.io/reference/system_error/error_code.html"/>
      <id>6ca95c905a7497917fa057c80a303c7d9d29023d:reference/system_error/error_code.md</id>
      <updated>2026-09-07T17:24:24+09:00</updated>
      
        <summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/reference/system_error/error_code.md b/reference/system_error/error_code.md
index 6e6486ae1..84a3a6462 100644
--- a/reference/system_error/error_code.md
+++ b/reference/system_error/error_code.md
@@ -52,6 +52,7 @@ namespace std {
 | 名前 | 説明 | 対応バージョン |
 |------|------|----------------|
 | `hash` | `error_code`での特殊化 | C++11 |
+| [`formatter`](error_code/formatter.md) | [`std::formatter`](/reference/format/formatter.md)クラスの特殊化 | C++29 |
 
 
 ## 例
@@ -102,3 +103,5 @@ Invalid argument
 
 
 ## 参照
+- [P3395R6 Fix encoding issues and add a `formatter` for `std::error_code`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3395r6.html)
+    - C++29で、[`std::format()`](/reference/format/format.md)用の[`formatter`](error_code/formatter.md)特殊化が追加された
&lt;/code&gt;&lt;/pre&gt;</summary>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>formatter -- error_code / error_category : C++29対応としてformatter特殊化を追加。エラーメッセージのエンコーディングを規定 (close #1700)</title>
      <link href="https://cpprefjp.github.io/reference/system_error/error_code/formatter.html"/>
      <id>6ca95c905a7497917fa057c80a303c7d9d29023d:reference/system_error/error_code/formatter.md</id>
      <updated>2026-09-07T17:24:24+09:00</updated>
      
        <summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/reference/system_error/error_code/formatter.md b/reference/system_error/error_code/formatter.md
new file mode 100644
index 000000000..70d2ed306
--- /dev/null
+++ b/reference/system_error/error_code/formatter.md
@@ -0,0 +1,79 @@
+# formatter
+* system_error[meta header]
+* std[meta namespace]
+* class[meta id-type]
+* cpp29[meta cpp]
+
+```cpp
+namespace std {
+  template &amp;lt;class charT&amp;gt;
+  struct formatter&amp;lt;error_code, charT&amp;gt;;
+}
+```
+
+## 概要
+[`error_code`](../error_code.md)クラスに対する[`std::formatter`](/reference/format/formatter.md)クラステンプレートの特殊化。
+
+フォーマットフラグとしては、以下を使用できる：
+
+```
+[[fill] [align] [width]] [?] [s]
+```
+
+- デフォルトでは、[ストリーム出力](op_ostream.md)と同じ「カテゴリ名`:`エラー値」の形式（例：`generic:2`）で出力される
+- `s`を指定すると、[`message()`](message.md)で得られるエラーメッセージが出力される
+    - `charT`が`char`であり、通常の文字列リテラルのエンコーディングがUTF-8である場合、メッセージはUTF-8へ変換され、不正なバイト列はU+FFFD（置換文字）に置き換えられる
+- `?`を指定すると、デバッグ出力としてエラーコード全体が引用符で囲まれたエスケープ文字列として出力される
+    - カテゴリ名とエラー値を区切る`:`が、連想コンテナのフォーマット出力におけるキーと値の区切りの`:`と紛らわしくなることを避けられる
+
+
+## 備考
+- ストリーム出力の`operator&amp;lt;&amp;lt;`では、`std::setw()`などの入出力マニピュレータがカテゴリ名だけに適用されてしまう問題があった。この`formatter`特殊化では、幅や整列の指定はエラーコード全体に適用される
+- エラー値のみを出力するためのフラグは提供されない。エラー値はカテゴリの情報がなければ有用性が低く、必要であれば`ec.`[`value()`](value.md)を直接フォーマットすればよいためである
+
+
+## 例
+```cpp
+#include &amp;lt;format&amp;gt;
+#include &amp;lt;iostream&amp;gt;
+#include &amp;lt;system_error&amp;gt;
+
+int main()
+{
+  std::error_code ec = std::make_error_code(std::errc::no_such_file_or_directory);
+
+  std::cout &amp;lt;&amp;lt; std::format(&amp;#34;{}&amp;#34;, ec) &amp;lt;&amp;lt; std::endl;
+  std::cout &amp;lt;&amp;lt; std::format(&amp;#34;[{:&amp;gt;12}]&amp;#34;, ec) &amp;lt;&amp;lt; std::endl;
+  std::cout &amp;lt;&amp;lt; std::format(&amp;#34;{:?}&amp;#34;, ec) &amp;lt;&amp;lt; std::endl;
+  std::cout &amp;lt;&amp;lt; std::format(&amp;#34;{:s}&amp;#34;, ec) &amp;lt;&amp;lt; std::endl;
+}
+```
+* std::make_error_code[link /reference/system_error/make_error_code.md]
+* std::errc[link /reference/system_error/errc.md]
+
+### 出力例
+```
+generic:2
+[   generic:2]
+&amp;#34;generic:2&amp;#34;
+No such file or directory
+```
+
+
+## バージョン
+### 言語
+- C++29
+
+### 処理系
+- [Clang](/implementation.md#clang): ??
+- [GCC](/implementation.md#gcc): ??
+- [Visual C++](/implementation.md#visual_cpp): ??
+
+
+## 関連項目
+- [`std::format()`](/reference/format/format.md) (フォーマットの詳細)
+- [`operator&amp;lt;&amp;lt;`](op_ostream.md)
+
+
+## 参照
+- [P3395R6 Fix encoding issues and add a `formatter` for `std::error_code`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3395r6.html)
&lt;/code&gt;&lt;/pre&gt;</summary>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>C++29 -- expected : C++29対応としてhas_errorメンバ関数を追加 (close #1697)</title>
      <link href="https://cpprefjp.github.io/lang/cpp29.html"/>
      <id>d36f0d470e78887e84d0e4a86b77f4b673472402:lang/cpp29.md</id>
      <updated>2026-09-07T17:05:36+09:00</updated>
      
        <content type="html">&lt;h1 itemprop=&#34;name&#34;&gt;&lt;span class=&#34;token&#34;&gt;C++29&lt;/span&gt;&lt;/h1&gt;
&lt;div itemprop=&#34;articleBody&#34;&gt;&lt;h2&gt;概要&lt;/h2&gt;
&lt;p&gt;C++29とは、2029年中に改訂される予定の、C++バージョンの通称である。&lt;/p&gt;
&lt;p&gt;このバージョンは、策定中のためC++2dと呼ばれることがある。「(2020年代の4つ目のバージョンが) 202d年にリリースされる」という伏せ字として「d」が使われているが、3年周期に次のバージョンが策定されることが決まっているため、伏せ字になっている年数がずれることはない。&lt;/p&gt;
&lt;h2&gt;言語機能&lt;/h2&gt;
&lt;h3&gt;変数&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/clarify_the_behavior_of_floating-point_overflow.html&#34;&gt;浮動小数点演算のオーバーフローと無限大・NaNの扱いを明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;無限大を表現できる浮動小数点型では、オーバーフローは未定義動作ではなく無限大を生成すると規定する。オーバーフローやNaNを新たに生成する演算は定数式にならず、無限大・NaNの伝播は定数式として扱える&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;文字列&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/more_named_universal_character_escapes.html&#34;&gt;名前付きユニバーサルキャラクタ名で使用できる別名を拡張&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;\N{…}&lt;/code&gt;に指定できる文字名の別名の分類制限を撤廃し、&lt;code&gt;\N{NBSP}&lt;/code&gt;のような略称 (abbreviation) なども使用できるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;制御構文&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/return_value_and_return_void_are_not_mutually_exclusive.html&#34;&gt;コルーチンのpromise型で&lt;code&gt;return_value&lt;/code&gt;と&lt;code&gt;return_void&lt;/code&gt;の両方の宣言を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;1つのコルーチン内に、値をともなう&lt;code&gt;co_return&lt;/code&gt;文とともなわない&lt;code&gt;co_return&lt;/code&gt;文を混在させられるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;関数&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/lexical_order_for_lambdas.html&#34;&gt;ラムダ式のキャプチャが書かれた順に初期化されることを保証&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;明示的なキャプチャに対応するクロージャ型のメンバ変数が、キャプチャを書いた順に宣言・初期化され、逆順に破棄されることを保証する&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/deallocation_functions_with_throwing_exception_specification_are_ill_formed.html&#34;&gt;例外を送出しうる例外指定をもつ解放関数を不適格とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;operator delete&lt;/code&gt;などの解放関数に、&lt;code&gt;noexcept(false)&lt;/code&gt;のような例外を送出しうる例外指定を付けることを&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;とする。解放関数からの例外送出による未定義動作へ到達する経路を、宣言の時点で排除する&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;クラス&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/designated-initializers_for_base_classes.html&#34;&gt;基底クラスのメンバ変数に対する指示付き初期化を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;B{.a=1, .b=2}&lt;/code&gt;のように、集成体の指示付き初期化で基底クラスのメンバ変数を直接指定できるようにする。基底クラス部分を初期化する指示なし初期化子との混在も許可する&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/defaulting_postfix_increment_and_decrement_operations.html&#34;&gt;後置インクリメント・デクリメント演算のdefault定義&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;後置&lt;code&gt;++&lt;/code&gt;／&lt;code&gt;--&lt;/code&gt;を&lt;code&gt;= default&lt;/code&gt;で定義（前置版から自動生成）できるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/adding_restrictions_to_defaulted_assignment_operator_functions.html&#34;&gt;default定義できる代入演算子のシグネチャを制限&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;A&amp;amp; operator=(const A&amp;amp;) &amp;amp;&amp;amp; = default&lt;/code&gt;のような右辺値修飾やCV修飾された代入演算子のdefault定義を&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;とする。これらの代入演算子を自分で定義することは引き続きできる&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/contracts_for_virtual_functions.html&#34;&gt;仮想関数への事前条件・事後条件の指定を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;C++26で&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;とされていた、仮想関数への事前条件&lt;code&gt;pre&lt;/code&gt;・事後条件&lt;code&gt;post&lt;/code&gt;の指定を許可する。仮想関数呼び出しでは、静的に選択された関数と実際に呼び出される関数の両方のアサーションが評価される&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;テンプレート&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/language_linkage_for_templates.html&#34;&gt;extern &#34;C&#34;の中でのテンプレートの宣言を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートがC言語リンケージを持つことを禁止する規定を削除し、&lt;code&gt;extern &#34;C&#34;&lt;/code&gt;の中でテンプレートを宣言できるようにする。C言語リンケージの関数ポインタ型を、テンプレートパラメータに依存する形で書けるようになる&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/conditional_noexcept_specifiers_in_compound_requirements.html&#34;&gt;requires式の複合要件で条件付き&lt;code&gt;noexcept&lt;/code&gt;指定を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;requires式の複合要件で、&lt;code&gt;{ 式 } noexcept(定数式)&lt;/code&gt;形式の条件付き&lt;code&gt;noexcept&lt;/code&gt;指定を書けるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/pack_indexing_for_template_names.html&#34;&gt;テンプレートテンプレートパラメータのパックへのインデックスアクセスを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートテンプレートパラメータのパックに&lt;code&gt;TT...[N]&lt;/code&gt;形式でインデックスアクセスできるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;定数式&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/consteval-only_values.html&#34;&gt;consteval-only型の規則をconsteval-only値の規則へ置き換え&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;リフレクションが実行時へ漏れることを防ぐ規則を、型ベースから値ベースへ変更する&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;並行・並列処理&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/nondeterministic_pointer_provenance.html&#34;&gt;整数からポインタへの変換とポインタの由来の扱いを規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;整数からポインタへの変換では、その整数へ変換できるポインタ値のうち、プログラムの動作が定義される値が選択されると規定する&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/invalid_pointer_operations.html&#34;&gt;無効なポインタ値の読み書き・コピーを定義された動作とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;無効なポインタ値の使用のうち、間接参照は未定義動作、比較などは処理系定義のままとし、読み込み・書き込み・コピーなどそれ以外の操作を定義された動作とする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/pointer_lifetime-end_zap_proposed_solutions.html&#34;&gt;アトミック操作とvolatileアクセスでの無効なポインタ値の扱いを規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;アトミックポインタの操作やvolatileアクセスの結果が無効なポインタ値となる場合、整数への往復変換を経た有効なポインタ値になると規定する。解放と並行してポインタを扱うロックフリーアルゴリズムを定義された動作にする&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;プリプロセッサ&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/embed_offset_parameter.html&#34;&gt;&lt;code&gt;#embed&lt;/code&gt;に&lt;code&gt;offset&lt;/code&gt;パラメータを追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#embed&lt;/code&gt;のパラメータとして、リソースの先頭から指定した要素数を読み飛ばす&lt;code&gt;offset&lt;/code&gt;を追加する&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;未定義動作&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/undefined_behavior_and_ifndr_annexes.html&#34;&gt;未定義動作とIFNDRの一覧を規格の付録に追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コア言語で明示的に規定されているすべての未定義動作と、診断不要で&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt; (IFNDR) となるすべての規則を、安定した名前・説明・コード例付きで列挙する参考情報の付録を追加する&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;ソースコード&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/adjust_identifier_following_new_Unicode_recommendations.html&#34;&gt;数学互換記法の文字を識別子として許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Unicodeの新しい勧告に従い、&lt;code&gt;∇f&lt;/code&gt;や&lt;code&gt;x²&lt;/code&gt;のような数学記法の文字（ID_Compat_Math_Start／Continueプロパティを持つ文字）を識別子に使用できるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;ライブラリ更新の概要&lt;/h2&gt;
&lt;h3&gt;整数&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;任意定義だった&lt;code&gt;&lt;a href=&#34;../reference/cstdint/intptr_t.html&#34;&gt;std::intptr_t&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/cstdint/uintptr_t.html&#34;&gt;std::uintptr_t&lt;/a&gt;&lt;/code&gt;型を必須定義とする&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;文字列&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/format/format.html&#34;&gt;std::format()&lt;/a&gt;&lt;/code&gt;関数での浮動小数点数の規定の出力形式を修正&lt;ul&gt;
&lt;li&gt;これまでの既定書式が最短文字数を基準としていたため、&lt;code&gt;100000.0&lt;/code&gt;→&lt;code&gt;&#34;1e+05&#34;&lt;/code&gt;なのに&lt;code&gt;120000.0&lt;/code&gt;→&lt;code&gt;&#34;120000&#34;&lt;/code&gt;と一貫していない出力になっていたのを修正&lt;/li&gt;
&lt;li&gt;また、大きな値で&lt;code&gt;1234567890123456774144&lt;/code&gt;のような無意味な桁（garbage digits）がでる問題について、固定表記か指数表記かの切り替え基準を「値の大きさ（指数範囲 &lt;code&gt;[10⁻⁴, 10ⁿ)&lt;/code&gt;）」に変更して修正した&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;ビット操作&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/bit.html&#34;&gt;&amp;lt;bit&amp;gt;&lt;/a&gt;&lt;/code&gt;に、以下のビット操作関数を追加&lt;ul&gt;
&lt;li&gt;ビット列の並びを反転する&lt;code&gt;&lt;a href=&#34;../reference/bit/bit_reverse.html&#34;&gt;std::bit_reverse()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;li&gt;指定した下位ビットパターンを繰り返す&lt;code&gt;&lt;a href=&#34;../reference/bit/bit_repeat.html&#34;&gt;std::bit_repeat()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;li&gt;指定したマスクで立っている一のビットを下位に詰める&lt;code&gt;&lt;a href=&#34;../reference/bit/bit_compress.html&#34;&gt;std::bit_compress()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;li&gt;下位ビットを指定したマスクが立っている位置へ展開する&lt;code&gt;&lt;a href=&#34;../reference/bit/bit_expand.html&#34;&gt;std::bit_expand()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;li&gt;未定義動作にならないビットシフト&lt;code&gt;&lt;a href=&#34;../reference/bit/shl.html&#34;&gt;std::shl()&lt;/a&gt;&lt;/code&gt;関数と&lt;code&gt;&lt;a href=&#34;../reference/bit/shr.html&#34;&gt;std::shr()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;コンテナ&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/map/map.html&#34;&gt;std::map&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/unordered_map/unordered_map.html&#34;&gt;std::unordered_map&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/flat_map/flat_map.html&#34;&gt;std::flat_map&lt;/a&gt;&lt;/code&gt;クラスに、&lt;code&gt;&lt;a href=&#34;../reference/optional/optional.html&#34;&gt;std::optional&lt;/a&gt;&amp;lt;要素への参照&amp;gt;&lt;/code&gt;を返す検索メンバ関数&lt;code&gt;lookup()&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ranges/view_interface.html&#34;&gt;std::ranges::view_interface&lt;/a&gt;&lt;/code&gt;クラスに、境界チェック付きでランダムアクセスをするメンバ関数&lt;code&gt;&lt;a href=&#34;../reference/ranges/view_interface/at.html&#34;&gt;at()&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/mdspan/mdspan.html&#34;&gt;std::mdspan&lt;/a&gt;&lt;/code&gt;クラス向けのアルゴリズムとして&lt;code&gt;&lt;a href=&#34;../reference/mdspan/copy.md.nolink&#34;&gt;std::copy()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/mdspan/fill.md.nolink&#34;&gt;std::fill()&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;メモリ&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダに、ポインタのタグ付けを行う&lt;code&gt;&lt;a href=&#34;../reference/memory/pointer_tag_pair.md.nolink&#34;&gt;std::pointer_tag_pair&lt;/a&gt;&lt;/code&gt;クラスとその関連機能を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;エラーハンドリング&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/expected/expected.html&#34;&gt;std::expected&lt;/a&gt;&lt;/code&gt;クラスに、エラー値を保持しているかを判定するメンバ関数&lt;code&gt;&lt;a href=&#34;../reference/expected/expected/has_error.html&#34;&gt;has_error()&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/system_error/error_code.html&#34;&gt;std::error_code&lt;/a&gt;&lt;/code&gt;クラスのオブジェクトを文字列化する際の、カテゴリ名のエンコーディングの問題を修正し、&lt;code&gt;&lt;a href=&#34;../reference/format/format.html&#34;&gt;std::format()&lt;/a&gt;&lt;/code&gt;用の&lt;code&gt;formatter&lt;/code&gt;特殊化を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;並行・並列&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/thread/thread.html&#34;&gt;std::thread&lt;/a&gt;&lt;/code&gt;クラスと&lt;code&gt;&lt;a href=&#34;../reference/thread/jthread.html&#34;&gt;std::jthread&lt;/a&gt;&lt;/code&gt;クラスに、スレッド名とスタックサイズを設定する機能を追加&lt;/li&gt;
&lt;li&gt;SIMDデータ用に連番を生成する&lt;code&gt;&lt;a href=&#34;../reference/simd/iota.html&#34;&gt;std::simd::iota&lt;/a&gt;&lt;/code&gt;変数テンプレートを追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/bit.html&#34;&gt;&amp;lt;bit&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダと同様に、&lt;code&gt;&lt;a href=&#34;../reference/simd.html&#34;&gt;&amp;lt;simd&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダにも、以下のビット操作関数を追加&lt;ul&gt;
&lt;li&gt;ビット列の並びを反転する&lt;code&gt;&lt;a href=&#34;../reference/simd/bit_reverse.html&#34;&gt;std::simd::bit_reverse()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;li&gt;指定した下位ビットパターンを繰り返す&lt;code&gt;&lt;a href=&#34;../reference/simd/bit_repeat.html&#34;&gt;std::simd::bit_repeat()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;li&gt;指定したマスクで立っている一のビットを下位に詰める&lt;code&gt;&lt;a href=&#34;../reference/simd/bit_compress.html&#34;&gt;std::simd::bit_compress()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;li&gt;下位ビットを指定したマスクが立っている位置へ展開する&lt;code&gt;&lt;a href=&#34;../reference/simd/bit_expand.html&#34;&gt;std::simd::bit_expand()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;li&gt;未定義動作にならないビットシフト&lt;code&gt;&lt;a href=&#34;../reference/simd/shl.html&#34;&gt;std::simd::shl()&lt;/a&gt;&lt;/code&gt;関数と&lt;code&gt;&lt;a href=&#34;../reference/simd/shr.html&#34;&gt;std::simd::shr()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/hazard_pointer.html&#34;&gt;&amp;lt;hazard_pointer&amp;gt;&lt;/a&gt;&lt;/code&gt;に、複数のハザードポインタをまとめて構築・破棄する&lt;code&gt;&lt;a href=&#34;../reference/hazard_pointer/make_hazard_pointer_batch.html&#34;&gt;std::make_hazard_pointer_batch()&lt;/a&gt;&lt;/code&gt;関数と&lt;code&gt;&lt;a href=&#34;../reference/hazard_pointer/clear_hazard_pointer_batch.html&#34;&gt;std::clear_hazard_pointer_batch()&lt;/a&gt;&lt;/code&gt;関数を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;非推奨化&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/iostream.html&#34;&gt;&amp;lt;iostream&amp;gt;&lt;/a&gt;&lt;/code&gt;において、&lt;code&gt;signed char&lt;/code&gt; / &lt;code&gt;unsigned char&lt;/code&gt;の入出力を非推奨化。&lt;code&gt;&lt;a href=&#34;../reference/cstdint/int8_t.html&#34;&gt;std::int8_t&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/cstdint/uint8_t.html&#34;&gt;std::uint8_t&lt;/a&gt;&lt;/code&gt;の別名として扱われるこれらの型の入出力で、整数型であることを期待して予期せぬ結果を招く可能性があった&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>機能テストマクロ -- expected : C++29対応としてhas_errorメンバ関数を追加 (close #1697)</title>
      <link href="https://cpprefjp.github.io/lang/cpp29/feature_test_macros.html"/>
      <id>d36f0d470e78887e84d0e4a86b77f4b673472402:lang/cpp29/feature_test_macros.md</id>
      <updated>2026-09-07T17:05:36+09:00</updated>
      
        <content type="html">&lt;h1 itemprop=&#34;name&#34;&gt;&lt;span class=&#34;token&#34;&gt;機能テストマクロ&lt;/span&gt;&lt;span class=&#34;cpp cpp29&#34; title=&#34;C++29で追加&#34;&gt;(C++29)&lt;/span&gt;&lt;/h1&gt;
&lt;div itemprop=&#34;articleBody&#34;&gt;&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;このページはC++29に採用された言語機能の変更を解説しています。&lt;/p&gt;
&lt;p&gt;のちのC++規格でさらに変更される場合があるため&lt;a href=&#34;#relative-page&#34;&gt;関連項目&lt;/a&gt;を参照してください。&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;h2&gt;概要&lt;/h2&gt;
&lt;h3&gt;言語&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;マクロ名&lt;/th&gt;
&lt;th&gt;値&lt;/th&gt;
&lt;th&gt;機能&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_concepts&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202606L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;conditional_noexcept_specifiers_in_compound_requirements.html&#34;&gt;requires式の複合要件で条件付き&lt;code&gt;noexcept&lt;/code&gt;指定を許可&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_consteval&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202606L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;consteval-only_values.html&#34;&gt;consteval-only型の規則をconsteval-only値の規則へ置き換え&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_contracts&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202606L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;contracts_for_virtual_functions.html&#34;&gt;仮想関数への事前条件・事後条件の指定を許可&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_impl_coroutine&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202606L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;return_value_and_return_void_are_not_mutually_exclusive.html&#34;&gt;コルーチンのpromise型で&lt;code&gt;return_value&lt;/code&gt;と&lt;code&gt;return_void&lt;/code&gt;の両方の宣言を許可&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_designated_initializers&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202606L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;designated-initializers_for_base_classes.html&#34;&gt;基底クラスのメンバ変数に対する指示付き初期化を許可&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_named_character_escapes&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202606L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;more_named_universal_character_escapes.html&#34;&gt;名前付きユニバーサルキャラクタ名で使用できる別名を拡張&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_pack_indexing&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202606L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;pack_indexing_for_template_names.html&#34;&gt;テンプレートテンプレートパラメータのパックへのインデックスアクセスを許可&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_pp_embed&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202606L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;embed_offset_parameter.html&#34;&gt;&lt;code&gt;#embed&lt;/code&gt;に&lt;code&gt;offset&lt;/code&gt;パラメータを追加&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;ライブラリ&lt;/h3&gt;
&lt;p&gt;ライブラリの機能テストマクロは全て&lt;code&gt;&lt;a href=&#34;../../reference/version.html&#34;&gt;&amp;lt;version&amp;gt;&lt;/a&gt;&lt;/code&gt;でも提供される。&lt;/p&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;マクロ名&lt;/th&gt;
&lt;th&gt;値&lt;/th&gt;
&lt;th&gt;機能&lt;/th&gt;
&lt;th&gt;ヘッダ&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_expected&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202606L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/expected/expected.html&#34;&gt;std::expected&lt;/a&gt;&lt;/code&gt;に、エラー値を保持しているかを判定する&lt;code&gt;&lt;a href=&#34;../../reference/expected/expected/has_error.html&#34;&gt;has_error()&lt;/a&gt;&lt;/code&gt;メンバ関数を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/expected.html&#34;&gt;&amp;lt;expected&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_hazard_pointer&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202606L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/hazard_pointer.html&#34;&gt;&amp;lt;hazard_pointer&amp;gt;&lt;/a&gt;&lt;/code&gt;に、複数のハザードポインタをまとめて構築・破棄する&lt;code&gt;&lt;a href=&#34;../../reference/hazard_pointer/make_hazard_pointer_batch.html&#34;&gt;std::make_hazard_pointer_batch()&lt;/a&gt;&lt;/code&gt;関数と&lt;code&gt;&lt;a href=&#34;../../reference/hazard_pointer/clear_hazard_pointer_batch.html&#34;&gt;std::clear_hazard_pointer_batch()&lt;/a&gt;&lt;/code&gt;関数を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/hazard_pointer.html&#34;&gt;&amp;lt;hazard_pointer&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_simd&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202606L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/simd.html&#34;&gt;&amp;lt;simd&amp;gt;&lt;/a&gt;&lt;/code&gt;に、SIMDデータ用の連番を生成する&lt;code&gt;&lt;a href=&#34;../../reference/simd/iota.html&#34;&gt;std::simd::iota&lt;/a&gt;&lt;/code&gt;変数テンプレートなどを追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/simd.html&#34;&gt;&amp;lt;simd&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_simd_bitops&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202607L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/simd.html&#34;&gt;&amp;lt;simd&amp;gt;&lt;/a&gt;&lt;/code&gt;に、ビット列を操作する&lt;code&gt;&lt;a href=&#34;../../reference/simd/bit_reverse.html&#34;&gt;bit_reverse()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../../reference/simd/bit_repeat.html&#34;&gt;bit_repeat()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../../reference/simd/bit_compress.html&#34;&gt;bit_compress()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../../reference/simd/bit_expand.html&#34;&gt;bit_expand()&lt;/a&gt;&lt;/code&gt;関数と、未定義動作にならないシフト&lt;code&gt;&lt;a href=&#34;../../reference/simd/shl.html&#34;&gt;shl()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../../reference/simd/shr.html&#34;&gt;shr()&lt;/a&gt;&lt;/code&gt;関数を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/simd.html&#34;&gt;&amp;lt;simd&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_to_chars&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202606L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/charconv/to_chars.html&#34;&gt;std::to_chars()&lt;/a&gt;&lt;/code&gt;の浮動小数点数に対する既定表現を、値の範囲によって固定小数表記と指数表記を選択するよう変更&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/charconv.html&#34;&gt;&amp;lt;charconv&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_view_interface&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202606L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/ranges/view_interface.html&#34;&gt;std::ranges::view_interface&lt;/a&gt;&lt;/code&gt;に、範囲チェックをともなって要素へアクセスする&lt;code&gt;&lt;a href=&#34;../../reference/ranges/view_interface/at.html&#34;&gt;at()&lt;/a&gt;&lt;/code&gt;メンバ関数を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/ranges.html&#34;&gt;&amp;lt;ranges&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;参照&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations&#34; target=&#34;_blank&#34;&gt;SD-FeatureTest: Feature-Test Macros and Policies - isocpp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3950r1.pdf&#34; target=&#34;_blank&#34;&gt;P3950R1 &lt;code&gt;return_value&lt;/code&gt; &amp;amp; &lt;code&gt;return_void&lt;/code&gt; Are Not Mutually Exclusive&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_impl_coroutine&lt;/code&gt;が&lt;code&gt;202606L&lt;/code&gt;に更新された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p4101r1.html&#34; target=&#34;_blank&#34;&gt;P4101R1 Consteval-only Values for C++26&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_consteval&lt;/code&gt;が&lt;code&gt;202606L&lt;/code&gt;に更新された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3540r3.html&#34; target=&#34;_blank&#34;&gt;P3540R3 &lt;code&gt;#embed&lt;/code&gt; offset parameter&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_pp_embed&lt;/code&gt;が&lt;code&gt;202606L&lt;/code&gt;に更新された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p2287r6.html&#34; target=&#34;_blank&#34;&gt;P2287R6 Designated-initializers for Base Classes&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_designated_initializers&lt;/code&gt;が&lt;code&gt;202606L&lt;/code&gt;に更新された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3733r1.html&#34; target=&#34;_blank&#34;&gt;P3733R1 More named universal character escapes&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_named_character_escapes&lt;/code&gt;が&lt;code&gt;202606L&lt;/code&gt;に更新された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3097r3.pdf&#34; target=&#34;_blank&#34;&gt;P3097R3 Contracts for C++: Virtual functions&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_contracts&lt;/code&gt;が&lt;code&gt;202606L&lt;/code&gt;に更新された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3822r2.html&#34; target=&#34;_blank&#34;&gt;P3822R2 Conditional noexcept specifiers in compound requirements&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_concepts&lt;/code&gt;が&lt;code&gt;202606L&lt;/code&gt;に更新された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3670r4.pdf&#34; target=&#34;_blank&#34;&gt;P3670R4 Pack Indexing for Template Names&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_pack_indexing&lt;/code&gt;が&lt;code&gt;202606L&lt;/code&gt;に更新された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3798r1.html&#34; target=&#34;_blank&#34;&gt;P3798R1 The &lt;code&gt;unexpected&lt;/code&gt; in &lt;code&gt;std::expected&lt;/code&gt;&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_lib_expected&lt;/code&gt;が&lt;code&gt;202606L&lt;/code&gt;に更新された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3428r4.pdf&#34; target=&#34;_blank&#34;&gt;P3428R4 Hazard Pointer Batches&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_lib_hazard_pointer&lt;/code&gt;が&lt;code&gt;202606L&lt;/code&gt;に更新された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3319r6.pdf&#34; target=&#34;_blank&#34;&gt;P3319R6 Add an iota object for simd (and more)&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_lib_simd&lt;/code&gt;が&lt;code&gt;202606L&lt;/code&gt;に更新された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3772r2.html&#34; target=&#34;_blank&#34;&gt;P3772R2 std::simd overloads for bit permutations&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_lib_simd_bitops&lt;/code&gt;が追加された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3793r2.html&#34; target=&#34;_blank&#34;&gt;P3793R2 Better shifting&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_lib_simd_bitops&lt;/code&gt;が追加された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3505r4.html&#34; target=&#34;_blank&#34;&gt;P3505R4 Fix the default floating-point representation in &lt;code&gt;std::format&lt;/code&gt;&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_lib_to_chars&lt;/code&gt;が&lt;code&gt;202606L&lt;/code&gt;に更新された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3052r2.html&#34; target=&#34;_blank&#34;&gt;P3052R2 &lt;code&gt;view_interface::at()&lt;/code&gt;&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_lib_view_interface&lt;/code&gt;が追加された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>expected -- expected : C++29対応としてhas_errorメンバ関数を追加 (close #1697)</title>
      <link href="https://cpprefjp.github.io/reference/expected/expected.html"/>
      <id>d36f0d470e78887e84d0e4a86b77f4b673472402:reference/expected/expected.md</id>
      <updated>2026-09-07T17:05:36+09:00</updated>
      
        <summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/reference/expected/expected.md b/reference/expected/expected.md
index 173e17968..ef8490621 100644
--- a/reference/expected/expected.md
+++ b/reference/expected/expected.md
@@ -58,6 +58,7 @@ namespace std {
 | [`operator*`](expected/op_deref.md) | 正常値への間接参照 | C++23 |
 | [`operator bool`](expected/op_bool.md) | 正常値を保持しているかを判定する | C++23 |
 | [`has_value`](expected/has_value.md) | 正常値を保持しているかを判定する | C++23 |
+| [`has_error`](expected/has_error.md) | エラー値を保持しているかを判定する | C++29 |
 | [`value`](expected/value.md) | 正常値を取得する | C++23 |
 | [`error`](expected/error.md) | エラー値を取得する | C++23 |
 | [`value_or`](expected/value_or.md) | 正常値もしくは指定された値を取得する | C++23 |
@@ -103,6 +104,7 @@ namespace std {
 | [`operator*`](expected.void/op_deref.md) | 正常値への間接参照 | C++23 |
 | [`operator bool`](expected.void/op_bool.md) | 正常値を保持しているかを判定する | C++23 |
 | [`has_value`](expected.void/has_value.md) | 正常値を保持しているかを判定する | C++23 |
+| [`has_error`](expected.void/has_error.md) | エラー値を保持しているかを判定する | C++29 |
 | [`value`](expected.void/value.md) | 正常値を取得する | C++23 |
 | [`error`](expected.void/error.md) | エラー値を取得する | C++23 |
 | [`error_or`](expected.void/error_or.md) | エラー値もしくは指定された値を取得する | C++23 |
@@ -214,3 +216,5 @@ int main()
 - [P2505R5 Monadic Functions for `std::expected`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2505r5.html)
 - [LWG Issue 3703. Missing requirements for `expected&amp;lt;T, E&amp;gt;` requires `is_void&amp;lt;T&amp;gt;`](https://cplusplus.github.io/LWG/issue3703)
     - C++23で、`expected&amp;lt;void, E&amp;gt;`部分特殊化にも型`E`に対する適格要件が明記された
+- [P3798R1 The `unexpected` in `std::expected`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3798r1.html)
+    - C++29で、エラー値を保持しているかを判定する[`has_error()`](expected/has_error.md)メンバ関数が追加された
&lt;/code&gt;&lt;/pre&gt;</summary>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>has_error -- expected : C++29対応としてhas_errorメンバ関数を追加 (close #1697)</title>
      <link href="https://cpprefjp.github.io/reference/expected/expected.void/has_error.html"/>
      <id>d36f0d470e78887e84d0e4a86b77f4b673472402:reference/expected/expected.void/has_error.md</id>
      <updated>2026-09-07T17:05:36+09:00</updated>
      
        <summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/reference/expected/expected.void/has_error.md b/reference/expected/expected.void/has_error.md
new file mode 100644
index 000000000..c652d265e
--- /dev/null
+++ b/reference/expected/expected.void/has_error.md
@@ -0,0 +1,74 @@
+# has_error
+* expected[meta header]
+* function[meta id-type]
+* std[meta namespace]
+* expected.void[meta class]
+* cpp29[meta cpp]
+
+```cpp
+// expected&amp;lt;cv void, E&amp;gt;部分特殊化
+constexpr bool has_error() const noexcept;
+```
+
+## 概要
+エラー値を保持しているかを判定する。
+
+
+## 効果
+以下と等価である。
+
+```cpp
+return !has_value();
+```
+* has_value()[link has_value.md]
+
+
+## 例外
+投げない
+
+
+## 備考
+- `expected&amp;lt;cv void, E&amp;gt;`部分特殊化は正常「値」を持たないため、[`has_value()`](has_value.md)の否定よりも意図が読み取りやすくなる
+
+
+## 例
+```cpp example
+#include &amp;lt;expected&amp;gt;
+#include &amp;lt;iostream&amp;gt;
+
+int main()
+{
+  std::expected&amp;lt;void, int&amp;gt; x;
+  std::cout &amp;lt;&amp;lt; x.has_error() &amp;lt;&amp;lt; std::endl;
+
+  std::expected&amp;lt;void, int&amp;gt; y = std::unexpected{42};
+  std::cout &amp;lt;&amp;lt; y.has_error() &amp;lt;&amp;lt; std::endl;
+}
+```
+* has_error[color ff0000]
+* std::unexpected[link ../unexpected.md]
+
+### 出力
+```
+0
+1
+```
+
+
+## バージョン
+### 言語
+- C++29
+
+### 処理系
+- [Clang](/implementation.md#clang): 24 [mark verified]
+- [GCC](/implementation.md#gcc): 16.1 [mark noimpl]
+- [Visual C++](/implementation.md#visual_cpp): 2026 Update 6 [mark noimpl]
+
+
+## 関連項目
+- [`has_value`](has_value.md)
+- [`operator bool`](op_bool.md)
+
+
+## 参照
+- [P3798R1 The `unexpected` in `std::expected`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3798r1.html)
&lt;/code&gt;&lt;/pre&gt;</summary>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>has_error -- expected : C++29対応としてhas_errorメンバ関数を追加 (close #1697)</title>
      <link href="https://cpprefjp.github.io/reference/expected/expected/has_error.html"/>
      <id>d36f0d470e78887e84d0e4a86b77f4b673472402:reference/expected/expected/has_error.md</id>
      <updated>2026-09-07T17:05:36+09:00</updated>
      
        <summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/reference/expected/expected/has_error.md b/reference/expected/expected/has_error.md
new file mode 100644
index 000000000..10c8d50fa
--- /dev/null
+++ b/reference/expected/expected/has_error.md
@@ -0,0 +1,74 @@
+# has_error
+* expected[meta header]
+* function[meta id-type]
+* std[meta namespace]
+* expected[meta class]
+* cpp29[meta cpp]
+
+```cpp
+constexpr bool has_error() const noexcept;
+```
+
+## 概要
+エラー値を保持しているかを判定する。
+
+
+## 効果
+以下と等価である。
+
+```cpp
+return !has_value();
+```
+* has_value()[link has_value.md]
+
+
+## 例外
+投げない
+
+
+## 備考
+- [`has_value()`](has_value.md)の否定と同じであるが、エラー処理に注目したコードを書く際に、`!x.has_value()`よりも意図が読み取りやすくなる
+
+
+## 例
+```cpp example
+#include &amp;lt;expected&amp;gt;
+#include &amp;lt;iostream&amp;gt;
+#include &amp;lt;string&amp;gt;
+
+int main()
+{
+  std::expected&amp;lt;std::string, int&amp;gt; x = &amp;#34;Hello&amp;#34;;
+  std::cout &amp;lt;&amp;lt; x.has_error() &amp;lt;&amp;lt; std::endl;
+
+  std::expected&amp;lt;std::string, int&amp;gt; y = std::unexpected{42};
+  std::cout &amp;lt;&amp;lt; y.has_error() &amp;lt;&amp;lt; std::endl;
+}
+```
+* has_error[color ff0000]
+* std::unexpected[link ../unexpected.md]
+
+### 出力
+```
+0
+1
+```
+
+
+## バージョン
+### 言語
+- C++29
+
+### 処理系
+- [Clang](/implementation.md#clang): 24 [mark verified]
+- [GCC](/implementation.md#gcc): 16.1 [mark noimpl]
+- [Visual C++](/implementation.md#visual_cpp): 2026 Update 6 [mark noimpl]
+
+
+## 関連項目
+- [`has_value`](has_value.md)
+- [`operator bool`](op_bool.md)
+
+
+## 参照
+- [P3798R1 The `unexpected` in `std::expected`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3798r1.html)
&lt;/code&gt;&lt;/pre&gt;</summary>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>コンパイラの実装状況 -- C++26 : 「SFINAEが適用される「直接文脈」を定義」を追加 (close #1629)</title>
      <link href="https://cpprefjp.github.io/implementation-status.html"/>
      <id>49d6dd75fdadd8c2259608159967bbd4d4bce5ae:implementation-status.md</id>
      <updated>2026-09-07T12:13:35+09:00</updated>
      
        <content type="html">&lt;h1 itemprop=&#34;name&#34;&gt;&lt;span class=&#34;token&#34;&gt;コンパイラの実装状況&lt;/span&gt;&lt;/h1&gt;
&lt;div itemprop=&#34;articleBody&#34;&gt;&lt;p&gt;このページでは、C++のバージョンごとの言語機能を、どのコンパイラがどのバージョンからサポートしているかをまとめる。&lt;/p&gt;
&lt;p&gt;ライブラリ機能については、本サイトのリファレンスで各機能を参照してもらいたい。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#cpp11&#34;&gt;C++11&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#cpp14&#34;&gt;C++14&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#cpp17&#34;&gt;C++17&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#cpp20&#34;&gt;C++20&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#cpp23&#34;&gt;C++23&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#cpp26&#34;&gt;C++26&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#cpp29&#34;&gt;C++29&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href=&#34;#cpp11&#34; id=&#34;cpp11&#34;&gt;C++11言語機能の実装状況&lt;/a&gt;&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#gcc&#34;&gt;GCC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#clang&#34;&gt;Clang&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#icc&#34;&gt;ICC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#visual_cpp&#34;&gt;MSVC&lt;/a&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;N2341: &lt;code&gt;&lt;a href=&#34;lang/cpp11/alignas.html&#34;&gt;alignas&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;アライメント指定&lt;/td&gt;
&lt;td&gt;4.8&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;15.0&lt;/td&gt;
&lt;td&gt;2015&lt;br /&gt;2003あるいはそれ以前からある&lt;code&gt;__declspec(align(x))&lt;/code&gt;構文で代替可能。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2341: &lt;code&gt;&lt;a href=&#34;lang/cpp11/alignof.html&#34;&gt;alignof&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;アライメント取得&lt;/td&gt;
&lt;td&gt;4.5&lt;/td&gt;
&lt;td&gt;3.3&lt;/td&gt;
&lt;td&gt;15.0&lt;/td&gt;
&lt;td&gt;2015&lt;br /&gt;2003あるいはそれ以前よりある&lt;code&gt;__alignof&lt;/code&gt;で代替可能。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N1984: &lt;a href=&#34;lang/cpp11/auto.html&#34;&gt;変数の型推論のためのauto&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;型推論&lt;/td&gt;
&lt;td&gt;4.4&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;12.0&lt;/td&gt;
&lt;td&gt;2010&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2343: &lt;code&gt;&lt;a href=&#34;lang/cpp11/decltype.html&#34;&gt;decltype&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;式の型を取得&lt;/td&gt;
&lt;td&gt;4.3&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;13.0&lt;/td&gt;
&lt;td&gt;2010 (partial)&lt;br /&gt; 2012&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N1653: C99互換のプリプロセッサ&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;lang/cpp11/variadic_macros.html&#34;&gt;可変引数マクロ&lt;/a&gt;、&lt;a href=&#34;lang/cpp11/pragma_operator.html&#34;&gt;Pragma演算子&lt;/a&gt;、&lt;code&gt;&lt;a href=&#34;lang/cpp11/func.html&#34;&gt;__func__&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;4.3&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;11.1&lt;/td&gt;
&lt;td&gt;2005 (partial): 可変引数のみ &lt;code&gt;_Pragma&lt;/code&gt;の代わりに&lt;code&gt;__pragma&lt;/code&gt;が存在する。&lt;br /&gt; 2019 Update 6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2235: &lt;code&gt;&lt;a href=&#34;lang/cpp11/constexpr.html&#34;&gt;constexpr&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;定数式&lt;/td&gt;
&lt;td&gt;4.6&lt;/td&gt;
&lt;td&gt;3.1&lt;/td&gt;
&lt;td&gt;13.0 (partial)&lt;br /&gt; 14.0&lt;/td&gt;
&lt;td&gt;2015 (partial)&lt;br /&gt; 2015 Update 1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2346: &lt;a href=&#34;lang/cpp11/defaulted_and_deleted_functions.html&#34;&gt;関数の&lt;code&gt;default/delete&lt;/code&gt;宣言&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;自動定義される特殊関数の制御&lt;/td&gt;
&lt;td&gt;4.4&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;12.0&lt;/td&gt;
&lt;td&gt;2013: ムーブコンストラクタ・ムーブ代入演算子の&lt;code&gt;default&lt;/code&gt;は不可&lt;br /&gt; 2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N1986: &lt;a href=&#34;lang/cpp11/delegating_constructors.html&#34;&gt;委譲コンストラクタ&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コンストラクタから他のコンストラクタに処理を委譲する&lt;/td&gt;
&lt;td&gt;4.7&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;14.0&lt;/td&gt;
&lt;td&gt;2013&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2437: &lt;a href=&#34;lang/cpp11/explicit_conversion_operator.html&#34;&gt;明示的な型変換演算子のオーバーロード&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;明示的な型変換が行われる場合にのみ呼び出される演算子をオーバーロードできるようにする&lt;/td&gt;
&lt;td&gt;4.5&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;14.0&lt;/td&gt;
&lt;td&gt;2013&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N1791: &lt;a href=&#34;lang/cpp11/extend_friend_targets.html&#34;&gt;&lt;code&gt;friend&lt;/code&gt;宣言できる対象を拡張&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートパラメータや型の別名を&lt;code&gt;friend&lt;/code&gt;宣言&lt;/td&gt;
&lt;td&gt;4.7&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;11.1 (partial) &lt;br /&gt; 12.0&lt;/td&gt;
&lt;td&gt;2010&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N1987: &lt;code&gt;&lt;a href=&#34;lang/cpp11/extern_template.html&#34;&gt;extern template&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;テンプレートのインスタンス化抑止&lt;/td&gt;
&lt;td&gt;3.3&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;11.1&lt;/td&gt;
&lt;td&gt;6.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2540: &lt;a href=&#34;lang/cpp11/inheriting_constructors.html&#34;&gt;継承コンストラクタ&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;基底クラスのコンストラクタを継承する&lt;/td&gt;
&lt;td&gt;4.8&lt;/td&gt;
&lt;td&gt;3.3&lt;/td&gt;
&lt;td&gt;15.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2927: &lt;a href=&#34;lang/cpp11/lambda_expressions.html&#34;&gt;ラムダ式&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;関数オブジェクトをその場に書く&lt;/td&gt;
&lt;td&gt;4.5&lt;/td&gt;
&lt;td&gt;3.1&lt;/td&gt;
&lt;td&gt;12.0&lt;/td&gt;
&lt;td&gt;2010 (partial)&lt;br /&gt; 2012&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2657: &lt;a href=&#34;lang/cpp11/local_and_unnamed_type_as_template_arguments.html&#34;&gt;ローカル型と無名型を、テンプレート引数として使用することを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ローカルおよび無名として定義したクラスや列挙型を、テンプレート引数として渡せるようにする&lt;/td&gt;
&lt;td&gt;4.5&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;12.0&lt;/td&gt;
&lt;td&gt;2010&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N1811: &lt;a href=&#34;lang/cpp11/long_long_type.html&#34;&gt;&lt;code&gt;long long&lt;/code&gt;型&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;64ビット以上の大きさを持つ整数型&lt;/td&gt;
&lt;td&gt;4.3&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;11.1&lt;/td&gt;
&lt;td&gt;2003&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2535: &lt;a href=&#34;lang/cpp11/inline_namespaces.html&#34;&gt;インライン名前空間&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ネストした名前空間に、透過的にアクセスする&lt;/td&gt;
&lt;td&gt;4.4&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;14.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2249: &lt;a href=&#34;lang/cpp11/char16_32.html&#34;&gt;&lt;code&gt;char16_t&lt;/code&gt;と&lt;code&gt;char32_t&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;UTF-16とUTF-32の文字型&lt;/td&gt;
&lt;td&gt;4.4&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;12.1 (Windows: partial) &lt;br /&gt; 12.1 (GNU/Linux, macOS)&lt;br /&gt; 14.0&lt;/td&gt;
&lt;td&gt;2015&lt;br /&gt; 2010より組み込み型ではなく型の別名として存在する&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2442: &lt;a href=&#34;lang/cpp11/utf8_string_literals.html&#34;&gt;UTF-8文字列リテラル&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;char&lt;/code&gt;の文字列をUTF-8エンコーディングするプレフィックス&lt;/td&gt;
&lt;td&gt;4.5&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;12.1 (Windows: partial) &lt;br /&gt; 12.1 (GNU/Linux, macOS)&lt;br /&gt; 14.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2442: &lt;a href=&#34;lang/cpp11/raw_string_literals.html&#34;&gt;生文字列リテラル&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;文字列リテラルにRプレフィックスを付けることで、エスケープシーケンスを無視する&lt;/td&gt;
&lt;td&gt;4.5&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;14.0&lt;/td&gt;
&lt;td&gt;2013&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2765: &lt;a href=&#34;lang/cpp11/user_defined_literals.html&#34;&gt;ユーザー定義リテラル&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;リテラルのサフィックスをユーザー定義する&lt;/td&gt;
&lt;td&gt;4.7&lt;/td&gt;
&lt;td&gt;3.1&lt;/td&gt;
&lt;td&gt;15.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2541: &lt;a href=&#34;lang/cpp11/trailing_return_types.html&#34;&gt;戻り値の型を後置する関数宣言構文&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;以下のような形式での関数宣言&lt;br /&gt; &lt;code&gt;auto f(arg_types...) -&amp;gt; return_type&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;4.4&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;12.0&lt;/td&gt;
&lt;td&gt;2010&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2431: &lt;code&gt;&lt;a href=&#34;lang/cpp11/nullptr.html&#34;&gt;nullptr&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ヌルポインタを表すポインタリテラル&lt;/td&gt;
&lt;td&gt;4.6&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;11.1&lt;/td&gt;
&lt;td&gt;2010&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N1757: &lt;a href=&#34;lang/cpp11/right_angle_brackets.html&#34;&gt;テンプレートでの連続した右山カッコを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;vector&amp;lt;basic_string&amp;lt;char&amp;gt;&amp;gt;&lt;/code&gt;のように、&lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt;をスペースを空けずに記述可能にする&lt;/td&gt;
&lt;td&gt;4.3&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;11.1&lt;/td&gt;
&lt;td&gt;2005&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2118: &lt;a href=&#34;lang/cpp11/rvalue_ref_and_move_semantics.html&#34;&gt;右辺値参照・ムーブセマンティクス&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;右辺値によるオーバーロード、およびそれによるリソースの所有権移動&lt;/td&gt;
&lt;td&gt;4.3 (partial)&lt;br /&gt; 4.6&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;12.0&lt;/td&gt;
&lt;td&gt;2010 (partial) ムーブコンストラクタと代入演算子の暗黙定義に対応していない。&lt;br /&gt; 2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N1720: &lt;a href=&#34;lang/cpp11/static_assert.html&#34;&gt;コンパイル時アサート&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コンパイル時に条件式が真であることを表明する&lt;/td&gt;
&lt;td&gt;4.3&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;11.1&lt;/td&gt;
&lt;td&gt;2010&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2347: &lt;a href=&#34;lang/cpp11/scoped_enum.html#extended-unscoped-enum&#34;&gt;&lt;code&gt;enum&lt;/code&gt;の先行宣言&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;4.6&lt;/td&gt;
&lt;td&gt;3.1&lt;/td&gt;
&lt;td&gt;11.1 (partial)&lt;br /&gt; 14.0&lt;/td&gt;
&lt;td&gt;2012&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2347: &lt;a href=&#34;lang/cpp11/scoped_enum.html&#34;&gt;スコープを持つ列挙型&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;強い型付けとスコープを持つ列挙型&lt;/td&gt;
&lt;td&gt;4.4&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;11.1 (partial)&lt;br /&gt; 14.0&lt;/td&gt;
&lt;td&gt;2012&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2258: &lt;a href=&#34;lang/cpp11/alias_templates.html&#34;&gt;エイリアステンプレート&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートによって型の別名を定義する&lt;/td&gt;
&lt;td&gt;4.7&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;12.1&lt;/td&gt;
&lt;td&gt;2013&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2544: &lt;a href=&#34;lang/cpp11/unrestricted_unions.html&#34;&gt;共用体でクラスオブジェクトをもつことを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;共用体のメンバ変数として、クラスオブジェクトを持つ&lt;/td&gt;
&lt;td&gt;4.6&lt;/td&gt;
&lt;td&gt;3.1&lt;/td&gt;
&lt;td&gt;14.0(Linux系OSおよびMacのみ。Windowsは非対応)&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2242: &lt;a href=&#34;lang/cpp11/variadic_templates.html&#34;&gt;可変引数テンプレート&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;任意の数のテンプレートパラメータを受け取れるようにする&lt;/td&gt;
&lt;td&gt;4.3 (partial)&lt;br /&gt; 4.4&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;12.1&lt;/td&gt;
&lt;td&gt;2013&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2930: &lt;a href=&#34;lang/cpp11/range_based_for.html&#34;&gt;範囲for文&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;配列やコンテナといった範囲を表すオブジェクトを、簡潔に走査する&lt;/td&gt;
&lt;td&gt;4.6&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;13.0&lt;/td&gt;
&lt;td&gt;2012&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2928: &lt;a href=&#34;lang/cpp11/override_final.html&#34;&gt;&lt;code&gt;override&lt;/code&gt;と&lt;code&gt;final&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;メンバ関数のオーバーライド指定、および派生クラスでのオーバーロードを禁止する指定&lt;/td&gt;
&lt;td&gt;4.7&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;14.0&lt;/td&gt;
&lt;td&gt;2005 (partial): &lt;code&gt;override&lt;/code&gt;のみ。&lt;code&gt;final&lt;/code&gt;の代わりにsealedが存在する。ただし両者ともデストラクタには指定できない。&lt;br /&gt; 2012&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2761: &lt;a href=&#34;lang/cpp11/attributes.html&#34;&gt;属性構文&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;[[attr]]&lt;/code&gt;構文による、クラス、関数、変数の属性指定&lt;/td&gt;
&lt;td&gt;4.8&lt;/td&gt;
&lt;td&gt;3.3&lt;/td&gt;
&lt;td&gt;12.1&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2439: &lt;a href=&#34;lang/cpp11/ref_qualifier_for_this.html&#34;&gt;メンバ関数の左辺値／右辺値修飾&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;オブジェクトが左辺値／右辺値の場合のみ呼び出し可能であることの指定&lt;/td&gt;
&lt;td&gt;4.8.1&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;14.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2756: &lt;a href=&#34;lang/cpp11/non_static_data_member_initializers.html&#34;&gt;非静的メンバ変数の初期化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;メンバ変数を、宣言と同時に初期値指定する&lt;/td&gt;
&lt;td&gt;4.7&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;14.0&lt;/td&gt;
&lt;td&gt;2013&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2672: &lt;a href=&#34;lang/cpp11/initializer_lists.html&#34;&gt;初期化子リスト&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;波カッコによる初期化をユーザー定義する。&lt;code&gt;vector&amp;lt;int&amp;gt; v = {1, 2, 3};&lt;/code&gt;など。&lt;/td&gt;
&lt;td&gt;4.4&lt;/td&gt;
&lt;td&gt;3.1&lt;/td&gt;
&lt;td&gt;14.0&lt;/td&gt;
&lt;td&gt;2013&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2672: &lt;a href=&#34;lang/cpp11/uniform_initialization.html&#34;&gt;一様初期化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コンストラクタ呼び出しを波カッコで行う。 &lt;code&gt;T x { a, b, c };&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;4.4&lt;/td&gt;
&lt;td&gt;3.1&lt;/td&gt;
&lt;td&gt;13.0(partial)&lt;br /&gt; 14.0&lt;/td&gt;
&lt;td&gt;2013&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3050: &lt;code&gt;&lt;a href=&#34;lang/cpp11/noexcept.html&#34;&gt;noexcept&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;関数の例外指定、例外を投げる可能性のある式かbool値を返す演算子&lt;/td&gt;
&lt;td&gt;4.6&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;13.0(partial)&lt;br /&gt;14.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2634: &lt;a href=&#34;lang/cpp11/sfinae_expressions.html&#34;&gt;任意の式によるSFINAE&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;特定の式が有効かどうかで、その関数をオーバーロード解決に含めるかどうかを決定する&lt;/td&gt;
&lt;td&gt;4.4&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;12.0&lt;/td&gt;
&lt;td&gt;2015 Update 1 (partial)&lt;br /&gt; 2017 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2659: &lt;a href=&#34;lang/cpp11/thread_local_storage.html&#34;&gt;スレッドローカルストレージ&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;スレッドごとに異なる静的記憶域に保持される変数&lt;/td&gt;
&lt;td&gt;4.8&lt;/td&gt;
&lt;td&gt;3.3&lt;/td&gt;
&lt;td&gt;11.1 (partial)&lt;/td&gt;
&lt;td&gt;2010&lt;br /&gt; &lt;code&gt;__declspec(thread)&lt;/code&gt;属性での部分サポート&lt;br /&gt; 2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2660: &lt;a href=&#34;lang/cpp11/static_initialization_thread_safely.html&#34;&gt;ブロックスコープを持つ&lt;code&gt;static&lt;/code&gt;変数初期化のスレッドセーフ化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;関数ローカルで定義した&lt;code&gt;static&lt;/code&gt;変数の初期化を、スレッドセーフにする&lt;/td&gt;
&lt;td&gt;4.3&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;11.0 (Linux/macOS)&lt;br /&gt; 14.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;各処理系のC++11実装状況ページ：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;全体的な対応状況： &lt;a href=&#34;http://web.archive.org/web/20160327011707/https://wiki.apache.org/stdcxx/C++0xCompilerSupport&#34; target=&#34;_blank&#34;&gt;C++0xCompilerSupport&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GCC： &lt;a href=&#34;https://gcc.gnu.org/projects/cxx-status.html#cxx11&#34; target=&#34;_blank&#34;&gt;C++11 Support in GCC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;libstdc++ : &lt;a href=&#34;https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2011&#34; target=&#34;_blank&#34;&gt;C++ 2011&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Clang： &lt;a href=&#34;http://clang.llvm.org/cxx_status.html&#34; target=&#34;_blank&#34;&gt;C++98 and C++11 Support in Clang&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://clang.llvm.org/cxx_dr_status.html&#34; target=&#34;_blank&#34;&gt;C++ Defect Report Support in Clang&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ICC : &lt;a href=&#34;https://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler&#34; target=&#34;_blank&#34;&gt;C++11 Features Supported by Intel® C++ Compiler&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Visual C++ (MSVC):&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.microsoft.com/ja-jp/cpp/visual-cpp-language-conformance&#34; target=&#34;_blank&#34;&gt;Visual C++ 言語への準拠&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blogs.msdn.microsoft.com/vcblog/2018/05/07/announcing-msvc-conforms-to-the-c-standard/&#34; target=&#34;_blank&#34;&gt;Announcing: MSVC Conforms to the C++ Standard&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href=&#34;#cpp14&#34; id=&#34;cpp14&#34;&gt;C++14言語機能の実装状況&lt;/a&gt;&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#gcc&#34;&gt;GCC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#clang&#34;&gt;Clang&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#icc&#34;&gt;ICC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#visual_cpp&#34;&gt;MSVC&lt;/a&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;N3472: &lt;a href=&#34;lang/cpp14/binary_literals.html&#34;&gt;2進数リテラル&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;2進数を表す&lt;code&gt;0b&lt;/code&gt; or &lt;code&gt;0B&lt;/code&gt;プレフィックスを付けた数値リテラルの記述を可能とする&lt;/td&gt;
&lt;td&gt;4.3(GNU)&lt;br /&gt; 4.9&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;11.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3638: &lt;a href=&#34;lang/cpp14/return_type_deduction_for_normal_functions.html&#34;&gt;通常関数の戻り値型推論&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;関数の戻り値型を&lt;code&gt;auto&lt;/code&gt;にすることで、&lt;code&gt;return&lt;/code&gt;文から戻り値の型を推論させる&lt;/td&gt;
&lt;td&gt;4.8(partial)&lt;br /&gt;4.9&lt;/td&gt;
&lt;td&gt;3.3(partial)&lt;br /&gt; 3.4&lt;/td&gt;
&lt;td&gt;15.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3648: &lt;a href=&#34;lang/cpp14/initialize_capture.html&#34;&gt;ラムダ式の初期化キャプチャ&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;キャプチャに代入構文を導入し、一つの変数に複数のキャプチャ方法を指定可能にする&lt;/td&gt;
&lt;td&gt;4.9&lt;/td&gt;
&lt;td&gt;3.4&lt;/td&gt;
&lt;td&gt;15.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3649: &lt;a href=&#34;lang/cpp14/generic_lambdas.html&#34;&gt;ジェネリックラムダ&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ラムダ式のパラメータを&lt;code&gt;auto&lt;/code&gt;にすることで、ジェネリックな関数呼び出し演算子を持つ関数オブジェクトを生成する&lt;/td&gt;
&lt;td&gt;4.9&lt;/td&gt;
&lt;td&gt;3.4&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3651: &lt;a href=&#34;lang/cpp14/variable_templates.html&#34;&gt;変数テンプレート&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;変数定義時のテンプレート指定を可能にする。&lt;/td&gt;
&lt;td&gt;5.1&lt;/td&gt;
&lt;td&gt;3.4&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;2015 Update 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3652: &lt;a href=&#34;lang/cpp14/relaxing_constraints_on_constexpr.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;関数内での条件分岐とループの文を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;if&lt;/code&gt;文、&lt;code&gt;switch&lt;/code&gt;文による条件分岐の許可。&lt;br /&gt;&lt;code&gt;for&lt;/code&gt;文、&lt;code&gt;while&lt;/code&gt;文、&lt;code&gt;do-while&lt;/code&gt;文によるループの許可。&lt;br /&gt;&lt;code&gt;void&lt;/code&gt;戻り値型の許可&lt;br /&gt;初期化を伴う変数宣言の許可。&lt;br /&gt;変数書き換えの許可。&lt;/td&gt;
&lt;td&gt;5.1&lt;/td&gt;
&lt;td&gt;3.3(partial) &lt;br /&gt; 3.4&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;2017&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3653: &lt;a href=&#34;lang/cpp14/brace_elision_in_array_temporary_initialization.html&#34;&gt;宣言時のメンバ初期化を持つ型の集成体初期化を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;一様初期化と初期化子リストを組み合わせた際、二重に波カッコが必要となっていた仕様を緩和し、波カッコを省略できるようにする&lt;/td&gt;
&lt;td&gt;5.1&lt;/td&gt;
&lt;td&gt;3.3&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;2017&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3760: &lt;a href=&#34;lang/cpp14/deprecated_attr.html&#34;&gt;&lt;code&gt;[[deprecated]]&lt;/code&gt;属性&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;非推奨の機能であることを示す属性。&lt;/td&gt;
&lt;td&gt;4.9&lt;/td&gt;
&lt;td&gt;3.4&lt;/td&gt;
&lt;td&gt;15.0&lt;br /&gt; (Linux/Mac OS)&lt;/td&gt;
&lt;td&gt;2015&lt;br /&gt;それ以前は&lt;code&gt;__declspec(deprecated)&lt;/code&gt;で代替可能&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3781: &lt;a href=&#34;lang/cpp14/digit_separators.html&#34;&gt;数値リテラルの桁区切り文字&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;シングルクォーテーションで数値リテラルを桁区切りする。&lt;/td&gt;
&lt;td&gt;4.9&lt;/td&gt;
&lt;td&gt;3.4&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3778: &lt;a href=&#34;lang/cpp14/sized_deallocation.html&#34;&gt;サイズ付きデアロケーション&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;サイズをとる&lt;code&gt;delete&lt;/code&gt;演算子のオーバーロードを許可する。&lt;/td&gt;
&lt;td&gt;5.1&lt;/td&gt;
&lt;td&gt;3.4&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;各処理系のC++14実装状況ページ：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GCC: &lt;a href=&#34;https://gcc.gnu.org/projects/cxx-status.html#cxx14&#34; target=&#34;_blank&#34;&gt;C++14 Support in GCC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;libstdc++: &lt;a href=&#34;https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2014&#34; target=&#34;_blank&#34;&gt;C++ 2014&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Clang: &lt;a href=&#34;http://clang.llvm.org/cxx_status.html&#34; target=&#34;_blank&#34;&gt;C++98, C++11, and C++14 Support in Clang&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Visual C++ (MSVC):&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.microsoft.com/ja-jp/cpp/visual-cpp-language-conformance&#34; target=&#34;_blank&#34;&gt;Visual C++ 言語への準拠&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blogs.msdn.microsoft.com/vcblog/2018/05/07/announcing-msvc-conforms-to-the-c-standard/&#34; target=&#34;_blank&#34;&gt;Announcing: MSVC Conforms to the C++ Standard&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ICC: &lt;a href=&#34;https://software.intel.com/en-us/articles/c14-features-supported-by-intel-c-compiler&#34; target=&#34;_blank&#34;&gt;C++14 Features Supported by Intel C++ Compiler&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://software.intel.com/en-us/forums/topic/549502&#34; target=&#34;_blank&#34;&gt;Intel (R) Parallel Studio XE 2016 Beta program has begun&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href=&#34;#cpp17&#34; id=&#34;cpp17&#34;&gt;C++17言語機能の実装状況&lt;/a&gt;&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#gcc&#34;&gt;GCC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#clang&#34;&gt;Clang&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#icc&#34;&gt;ICC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#visual_cpp&#34;&gt;MSVC&lt;/a&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;N3928: &lt;a href=&#34;lang/cpp17/extending_static_assert.html&#34;&gt;メッセージなしの&lt;code&gt;static_assert&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;デフォルトの表明メッセージを使用する&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;3.5&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N4086: &lt;a href=&#34;lang/cpp17/removing_trigraphs.html&#34;&gt;トライグラフを削除&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;5.1&lt;/td&gt;
&lt;td&gt;3.5&lt;/td&gt;
&lt;td&gt;19.1&lt;/td&gt;
&lt;td&gt;2010&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N4051: &lt;a href=&#34;lang/cpp17/allow_typename_in_a_template_template_parameter.html&#34;&gt;テンプレートテンプレートパラメータに&lt;code&gt;typename&lt;/code&gt;を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;class&lt;/code&gt;キーワードしか使用できなかった部分に、&lt;code&gt;typename&lt;/code&gt;を許可&lt;/td&gt;
&lt;td&gt;5.0&lt;/td&gt;
&lt;td&gt;3.5&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3922: &lt;a href=&#34;lang/cpp17/new_rules_for_auto_deduction_from_braced-init-list.html&#34;&gt;単一要素の波カッコ初期化を非配列とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;initializer_list&amp;lt;T&amp;gt;&lt;/code&gt;だったのを&lt;code&gt;T&lt;/code&gt;に変更&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;3.8&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N4295: &lt;a href=&#34;lang/cpp17/folding_expressions.html&#34;&gt;畳み込み式&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;パラメータパックに対する2項演算の集積処理&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;3.6&lt;/td&gt;
&lt;td&gt;19.0&lt;/td&gt;
&lt;td&gt;2017 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N4267: &lt;a href=&#34;lang/cpp17/utf8_character_literals.html&#34;&gt;UTF-8文字リテラル&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;文字列リテラルだけでなく、文字リテラルにもUTF-8指定できるようにする&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;3.6&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N4230: &lt;a href=&#34;lang/cpp17/nested_namespace.html&#34;&gt;入れ子名前空間の定義&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;namespace A::B {}&lt;/code&gt;のように、入れ子の名前空間を簡単に定義できるようにする&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;3.6&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;2015 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N4266: &lt;a href=&#34;lang/cpp17/attributes_for_namespaces_and_enumerators.html&#34;&gt;名前空間と列挙子に属性の付加を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;名前空間の定義と、列挙型の各要素の定義に、属性を付けられるようにする&lt;/td&gt;
&lt;td&gt;名前空間は4.0&lt;br /&gt;列挙子は6&lt;/td&gt;
&lt;td&gt;3.6&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N4268: &lt;a href=&#34;lang/cpp17/allow_constant_evaluation_for_all_non-type_template_arguments.html&#34;&gt;全ての非型テンプレート引数の定数式評価を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ポインタの定数式評価として、配列からポインタへの変換や、関数から関数ポインタへの変換などを許可&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;3.6&lt;/td&gt;
&lt;td&gt;19.1&lt;/td&gt;
&lt;td&gt;2017 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0001R1: &lt;a href=&#34;lang/cpp17/remove_deprecated_use_of_the_register_keyword.html&#34;&gt;非推奨だった&lt;code&gt;register&lt;/code&gt;キーワードを削除&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.8&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0002R1: &lt;a href=&#34;lang/cpp17/remove_deprecated_increment_of_bool.html&#34;&gt;非推奨だった&lt;code&gt;bool&lt;/code&gt;型オブジェクトに対するインクリメントの仕様を削除&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.8&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0012R1: &lt;a href=&#34;lang/cpp17/exception_spec_be_part_of_the_type_system.html&#34;&gt;例外仕様を型システムの一部にする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0061R1: &lt;a href=&#34;lang/cpp17/has_include.html&#34;&gt;プリプロセッサでの条件式&lt;code&gt;__has_include&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;対象のインクルードファイルが存在するかをプリプロセス時に判定する&lt;/td&gt;
&lt;td&gt;5.0&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0136R1: &lt;a href=&#34;http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0136r1.html&#34; target=&#34;_blank&#34;&gt;継承コンストラクタの新仕様&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;デフォルト引数を引き継ぐようにした&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;2017 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0188R1: &lt;a href=&#34;lang/cpp17/fallthrough.html&#34;&gt;&lt;code&gt;[[fallthrough]]&lt;/code&gt;属性&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;case&lt;/code&gt;節で&lt;code&gt;break&lt;/code&gt;や&lt;code&gt;return&lt;/code&gt;を書かなかった場合に、それが意図したフォールスルーであることをコンパイラに伝える属性&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0189R1: &lt;a href=&#34;lang/cpp17/nodiscard.html&#34;&gt;&lt;code&gt;[[nodiscard]]&lt;/code&gt;属性&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;関数の戻り値を無視してはならないことをユーザーに伝える属性&lt;/td&gt;
&lt;td&gt;4.8からは&lt;code&gt;[[gnu::warn_unused_result]]&lt;/code&gt;を使用すること&lt;br /&gt; 7からサポート&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0212R1: &lt;a href=&#34;lang/cpp17/maybe_unused.html&#34;&gt;&lt;code&gt;[[maybe_unused]]&lt;/code&gt;属性&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;使用しない可能性がある変数であることをコンパイラに伝える属性&lt;/td&gt;
&lt;td&gt;4.8からは&lt;code&gt;[[gnu::unused]]&lt;/code&gt;を使用すること&lt;br /&gt; 7からサポート&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0017R1: &lt;a href=&#34;lang/cpp17/extension_to_aggregate_initialization.html&#34;&gt;基底クラスのメンバ変数を集成体初期化するための波カッコを省略できるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;基底クラスのメンバを集成体初期化するために、&lt;code&gt;derived d {{42}};&lt;/code&gt;の代わりに&lt;code&gt;derived d {42};&lt;/code&gt;と書けるようにする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;19.1&lt;/td&gt;
&lt;td&gt;2017 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0170R1: &lt;a href=&#34;lang/cpp17/constexpr_lambda.html&#34;&gt;ラムダ式を&lt;code&gt;constexpr&lt;/code&gt;として使用できるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ラムダ式の関数オブジェクトが定数式の文脈で使用された場合に、それがコンパイル時に評価されるようにする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;19.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0184R0: &lt;a href=&#34;lang/cpp17/generalizing_the_range-based_for_loop.html&#34;&gt;範囲for文のイテレータ型が一致しないことを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;begin()&lt;/code&gt;と&lt;code&gt;end()&lt;/code&gt;が異なるイテレータ型を返せるようにすることで、終端イテレータを定義しやすくする&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0018R3: &lt;a href=&#34;lang/cpp17/lambda_capture_of_this_by_value.html&#34;&gt;ラムダ式での&lt;code&gt;*this&lt;/code&gt;のコピーキャプチャ&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;キャプチャリストに&lt;code&gt;*this&lt;/code&gt;を指定することで、&lt;code&gt;*this&lt;/code&gt;をコピーキャプチャする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;19.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0138R2: &lt;a href=&#34;lang/cpp17/construction_enum_class_values.html&#34;&gt;&lt;code&gt;enum class&lt;/code&gt;変数の初期値として整数を指定する際の規則を調整&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;キャストを使用することなく整数を初期値として使用し、&lt;code&gt;E e{0};&lt;/code&gt;のような初期化を許可&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;19.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0245R1: &lt;a href=&#34;lang/cpp17/hexadecimal_floating_literals.html&#34;&gt;16進浮動小数点数リテラル&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;hexfloat&lt;/code&gt;マニピュレータや&lt;code&gt;printf()&lt;/code&gt;の16進数出力に合わせて、浮動小数点数のリテラルも16進数表記できるようにする&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0028R4: &lt;a href=&#34;lang/cpp17/using_attribute_namespaces.html&#34;&gt;属性の名前空間指定に繰り返しをなくす&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;[[using CC: opt(1), debug]]&lt;/code&gt;のように属性の名前空間宣言をまとめて行う&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0035R4: &lt;a href=&#34;lang/cpp17/dynamic_memory_allocation_for_over-aligned_data.html&#34;&gt;アライメント指定されたデータの動的メモリ確保&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;operator new&lt;/code&gt;と&lt;code&gt;operator delete&lt;/code&gt;でアライメント値を取得できるようにする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;19.0&lt;/td&gt;
&lt;td&gt;2017 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0091R3: &lt;a href=&#34;lang/cpp17/type_deduction_for_class_templates.html&#34;&gt;クラステンプレートのテンプレート引数推論&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コンストラクタの引数からクラスのテンプレート引数を推論できるようにする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;19.1&lt;/td&gt;
&lt;td&gt;2017 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0127R2: &lt;a href=&#34;lang/cpp17/declaring_non-type_template_arguments_with_auto.html&#34;&gt;非型テンプレート引数の&lt;code&gt;auto&lt;/code&gt;宣言&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;template &amp;lt;typename T, T x&amp;gt;&lt;/code&gt;という冗長なコードを&lt;code&gt;template &amp;lt;auto x&amp;gt;&lt;/code&gt;のようにして受けられるようにし、&lt;br /&gt; &lt;code&gt;X&amp;lt;3&amp;gt;; X&amp;lt;true&amp;gt;; X&amp;lt;&#39;a&#39;&amp;gt;&lt;/code&gt;のように定数を簡潔に渡せるようにする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;19.1&lt;/td&gt;
&lt;td&gt;2017 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0135R1: &lt;a href=&#34;lang/cpp17/guaranteed_copy_elision.html&#34;&gt;値のコピー省略を保証&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;一時オブジェクトをコピーする際に、単純な値を持つクラスであればコピーが省略されることを保証する&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;19.1&lt;/td&gt;
&lt;td&gt;2017 Update 6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0145R3: &lt;a href=&#34;lang/cpp17/expression_evaluation_order.html&#34;&gt;厳密な式の評価順&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;式の項が評価される順序を厳密に規定する。&lt;br /&gt; &lt;code&gt;b = a;&lt;/code&gt;の式が右から順番(a, bの順)に評価される&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;19.1&lt;/td&gt;
&lt;td&gt;2017 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0283R2: &lt;a href=&#34;lang/cpp17/non_standard_attributes.html&#34;&gt;不明な属性を無視する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;実装が知らない名前空間の属性は無視する&lt;/td&gt;
&lt;td&gt;4.8&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0292R2: &lt;a href=&#34;lang/cpp17/if_constexpr.html&#34;&gt;constexpr if文&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;if constexpr(cond)&lt;/code&gt;とすることで、そのif文はコンパイル時に処理される&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;19.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0386R2: &lt;a href=&#34;lang/cpp17/inline_variables.html&#34;&gt;インライン変数&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;インライン指定を関数だけでなく変数にも指定できるようにする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;19.0&lt;/td&gt;
&lt;td&gt;2017 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0217R3: &lt;a href=&#34;lang/cpp17/structured_bindings.html&#34;&gt;構造化束縛&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;タプルやユーザー定義型を分解して受け取れるようにする&lt;br /&gt; &lt;code&gt;tuple&amp;lt;int, string&amp;gt; f();&lt;/code&gt; &lt;br /&gt; &lt;code&gt;const auto [a, b] = f(); // aはintの値、bはstringの値&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0305R1: &lt;a href=&#34;lang/cpp17/selection_statements_with_initializer.html&#34;&gt;if文とswitch文の条件式と初期化を分離&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;if (init; condition)&lt;/code&gt;のように初期化と条件式を分けて記述できるようにする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0137R1: &lt;a href=&#34;lang/cpp17/replacement_of_class_objects_containing_reference_members.html&#34;&gt;参照メンバをもつクラスの置き換え&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;参照型メンバや&lt;code&gt;const&lt;/code&gt;メンバ変数を含むクラスについてこれまで未定義動作とされていた配置&lt;code&gt;new&lt;/code&gt;によるオブジェクトの置き換えを条件付きで可能とする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;6.0&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;2017 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0003R5: &lt;a href=&#34;lang/cpp17/remove_deprecated_exception_specifications.html&#34;&gt;非推奨だった例外仕様を削除&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;noexcept&lt;/code&gt;が入ったことによって非推奨になった&lt;code&gt;throw&lt;/code&gt;キーワードによる例外仕様を削除&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;19.0&lt;/td&gt;
&lt;td&gt;2017 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0195R2: &lt;a href=&#34;lang/cpp17/pack_expansions_in_using.html&#34;&gt;using宣言でのパック展開&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;パラメータパックの型を基底クラスとして指定した場合に、&lt;code&gt;using&lt;/code&gt;宣言に基底クラスのパラメータパックを指定できるようにする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;19.0&lt;/td&gt;
&lt;td&gt;2017 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0512R0: &lt;a href=&#34;http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0512r0.pdf&#34; target=&#34;_blank&#34;&gt;クラステンプレート引数の推論仕様を調整&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;5.0&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;2017 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0490R0: &lt;a href=&#34;http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0490r0.html&#34; target=&#34;_blank&#34;&gt;Committee Draftに対するNational Body Commentへの対応&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0522R0: &lt;a href=&#34;http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0522r0.html&#34; target=&#34;_blank&#34;&gt;テンプレートテンプレート引数のマッチングにおいて、互換性のあるテンプレートを除外&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;4 (partial)&lt;br /&gt;19&lt;/td&gt;
&lt;td&gt;19.1&lt;/td&gt;
&lt;td&gt;2017 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;各処理系のC++17実装状況ページ：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GCC: &lt;a href=&#34;https://gcc.gnu.org/projects/cxx-status.html#cxx17&#34; target=&#34;_blank&#34;&gt;C++17 Support in GCC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Clang: &lt;a href=&#34;http://clang.llvm.org/cxx_status.html&#34; target=&#34;_blank&#34;&gt;C++ Support in Clang&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;libc++ : &lt;a href=&#34;https://libcxx.llvm.org/Status/Cxx17.html&#34; target=&#34;_blank&#34;&gt;libc++ C++17 Status&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Visual C++ (MSVC):&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.microsoft.com/ja-jp/cpp/visual-cpp-language-conformance&#34; target=&#34;_blank&#34;&gt;Visual C++ 言語への準拠&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blogs.msdn.microsoft.com/vcblog/2018/05/07/announcing-msvc-conforms-to-the-c-standard/&#34; target=&#34;_blank&#34;&gt;Announcing: MSVC Conforms to the C++ Standard&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ICC: &lt;a href=&#34;https://software.intel.com/en-us/articles/c17-features-supported-by-intel-c-compiler&#34; target=&#34;_blank&#34;&gt;C++17 Features Supported by Intel C++ Compiler&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href=&#34;#cpp20&#34; id=&#34;cpp20&#34;&gt;C++20言語機能の実装状況&lt;/a&gt;&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#gcc&#34;&gt;GCC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#clang&#34;&gt;Clang&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#icc&#34;&gt;ICC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#visual_cpp&#34;&gt;MSVC&lt;/a&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;P0683R1: &lt;a href=&#34;lang/cpp20/default_member_initializers_for_bit_fields.html&#34;&gt;ビットフィールドのメンバ変数初期化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ビットフィールドメンバ変数のデフォルト値を設定する構文を追加する&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;6.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0409R2: &lt;a href=&#34;lang/cpp20/allow_lambda_capture_equal_this.html&#34;&gt;ラムダ式のキャプチャとして&lt;code&gt;[=, this]&lt;/code&gt;を許可する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;デフォルトコピーキャプチャと&lt;code&gt;this&lt;/code&gt;ポインタのコピーキャプチャを両方指定できるようにする&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;6.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0806R2: &lt;a href=&#34;lang/cpp20/deprecate_implicit_capture_of_this_via_defcopy.html&#34;&gt;&lt;code&gt;[=]&lt;/code&gt;による&lt;code&gt;this&lt;/code&gt;の暗黙のキャプチャを非推奨化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コピーのデフォルトキャプチャでは、&lt;code&gt;this&lt;/code&gt;ポインタをキャプチャされなくする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;2019 Update 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0428R2: &lt;a href=&#34;lang/cpp20/familiar_template_syntax_for_generic_lambdas.html&#34;&gt;ジェネリックラムダのテンプレート構文&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ジェネリックラムダでテンプレートパラメータを定義できるようにする&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0704R1: &lt;a href=&#34;lang/cpp20/fixing_const_qualified_pointers_to_members.html&#34;&gt;&lt;code&gt;const&lt;/code&gt;修飾されたメンバポインタの制限を修正&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.*&lt;/code&gt;演算子での左辺値の&lt;code&gt;const&lt;/code&gt;メンバ関数呼び出しを許可する&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;6.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0306R4: &lt;a href=&#34;lang/cpp20/va_opt.html&#34;&gt;可変引数が空でない場合のトークン置換&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;プリプロセッサの置換で可変引数が空の場合に余計なカンマが付いてしまう問題に対処&lt;/td&gt;
&lt;td&gt;8 (partial, &lt;code&gt;#__VA_OPT__&lt;/code&gt;による文字列化が未サポート)&lt;br /&gt;10 (partial, placemarker token のハンドリング変更なし)&lt;br /&gt;12&lt;/td&gt;
&lt;td&gt;6.0&lt;br /&gt; 9.0 (&lt;a href=&#34;http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1042r1.html&#34; target=&#34;_blank&#34;&gt;p1042&lt;/a&gt;)&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0329R4: &lt;a href=&#34;lang/cpp20/designated_initialization.html&#34;&gt;指示付き初期化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;波カッコによる集成体初期化でメンバ名を指定して初期化できるようにする&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;6.0 (partial)&lt;br /&gt;10&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0734R0: &lt;a href=&#34;lang/cpp20/concepts.html&#34;&gt;コンセプト&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートパラメータに対する制約を行う&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;2021.6&lt;/td&gt;
&lt;td&gt;2019 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0614R1: &lt;a href=&#34;lang/cpp20/range-based_for_statements_with_initializer.html&#34;&gt;初期化式をともなう範囲for文&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;範囲for文スコープで使用する変数の初期化のための構文を追加&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;td&gt;2021.7&lt;/td&gt;
&lt;td&gt;2019 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0588R1: &lt;a href=&#34;lang/cpp20/simplifying_implicit_lambda_capture.html&#34;&gt;暗黙のラムダキャプチャを簡略化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ラムダ式のキャプチャに関する仕様整理&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0846R0: &lt;a href=&#34;lang/cpp20/adl_and_function_templates_that_are_not_visible.html&#34;&gt;関数テンプレートに明示的に型指定した場合にADLで見つからない問題を修正&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;名前空間内の関数テンプレートをテンプレート引数指定かつ非修飾・ADLで正しく呼び出せるよう修正&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0641R2: &lt;a href=&#34;lang/cpp20/resolving_const_mismatch_with_defaulted_copy_constructor.html&#34;&gt;デフォルトのコピーコンストラクタと非&lt;code&gt;const&lt;/code&gt;なコンストラクタが衝突する問題を修正&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;非&lt;code&gt;const&lt;/code&gt;なオブジェクトをとるコンストラクタを定義すると、そのクラスをラップしたクラスのコピーコンストラクタが&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;になってしまう問題を修正&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0859R0: &lt;a href=&#34;lang/cpp20/less_eager_instantiation_of_constexpr_functions.html&#34;&gt;評価されない文脈での定数式評価によって特殊メンバ関数がインスタンス化されることを規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sizeof&lt;/code&gt;や&lt;code&gt;decltype&lt;/code&gt;などの評価されない文脈において定数式評価を行った場合に、ムーブコンストラクタのような特殊メンバ関数が定義されることを規定&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;2019 Update 7 (partial)&lt;br /&gt;2022 Update 1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0515R3: &lt;a href=&#34;lang/cpp20/consistent_comparison.html&#34;&gt;&lt;code&gt;&amp;lt;=&amp;gt;&lt;/code&gt;/&lt;code&gt;==&lt;/code&gt;による比較演算子の自動定義&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;三方比較演算子によって比較演算子の自動生成を行うようにする&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;8.0 (partial)&lt;br /&gt;10&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0692R1: &lt;a href=&#34;lang/cpp20/access_checking_on_specializations.html&#34;&gt;特殊化のアクセスチェック&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0624R2: &lt;a href=&#34;lang/cpp20/default_constructible_and_assignable_stateless_lambdas.html&#34;&gt;状態を持たないラムダ式を、デフォルト構築可能、代入可能とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;キャプチャしていないラムダ式をデフォルト構築・代入可能にする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0767R1: &lt;a href=&#34;lang/cpp20/deprecate_pod.html&#34;&gt;PODを非推奨化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;PODという用語を非推奨化する&lt;/td&gt;
&lt;td&gt;10.1&lt;/td&gt;
&lt;td&gt;21&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0315R4: &lt;a href=&#34;lang/cpp20/wording_for_lambdas_in_unevaluated_contexts.html&#34;&gt;評価されない文脈でのラムダ式&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;評価されない文脈でもラムダ式を書くことができるようにする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;2024.0&lt;/td&gt;
&lt;td&gt;2019 Update 8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0840R2: &lt;a href=&#34;lang/cpp20/language_support_for_empty_objects.html&#34;&gt;空オブジェクトを言語サポート&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;[[no_unique_address]]&lt;/code&gt;属性を導入し、空の型のオブジェクトをほかのオブジェクトと共有する最適化を許可する&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 9 &lt;sup&gt;&lt;a href=&#34;#note-t1-1&#34; id=&#34;note_ref-t1-1&#34;&gt;†1&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0962R1: &lt;a href=&#34;lang/cpp20/relaxing_the_range_for_loop_customization_point_finding_rules.html&#34;&gt;範囲for文がカスタマイゼーションポイントを見つけるルールを緩和&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;begin()&lt;/code&gt;/&lt;code&gt;end()&lt;/code&gt;メンバ関数のどちらかが見つからなかった場合に非メンバ関数の&lt;code&gt;begin()&lt;/code&gt;/&lt;code&gt;end()&lt;/code&gt;を探しにいく&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0969R0: &lt;a href=&#34;lang/cpp20/allow_structured_bindings_to_accessible_members.html&#34;&gt;friend指定された関数内から構造化束縛を使用して非公開メンバ変数にアクセスすることを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;構造化束縛の仕様として公開メンバ変数のみを取り出せるようになっていたが、friend指定された関数からは非公開メンバ変数にもアクセスできるようにする&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0961R1: &lt;a href=&#34;lang/cpp20/relaxing_the_structured_bindings_customization_point_finding_rules.html&#34;&gt;構造化束縛がカスタマイゼーションポイントを見つけるルールを緩和&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;非テンプレートの&lt;code&gt;get()&lt;/code&gt;メンバ関数が見つかった場合は、非メンバ関数の&lt;code&gt;get()&lt;/code&gt;を探しにいく&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0634R3: &lt;a href=&#34;lang/cpp20/down_with_typename.html&#34;&gt;型の文脈で&lt;code&gt;typename&lt;/code&gt;の省略を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;型しか現れない文脈では、依存名を解決するための&lt;code&gt;typename&lt;/code&gt;キーワードを省略できるようにする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;2023.1&lt;/td&gt;
&lt;td&gt;2019 Update 9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0780R2: &lt;a href=&#34;lang/cpp20/allow_pack_expansion_in_lambda_init_capture.html&#34;&gt;ラムダ式の初期化キャプチャでのパック展開を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;[...args = std::move(args)]&lt;/code&gt;のようなキャプチャを許可&lt;/td&gt;
&lt;td&gt;9&lt;br /&gt;10&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.7&lt;/td&gt;
&lt;td&gt;2019 Update 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0479R5: &lt;a href=&#34;lang/cpp20/likely_and_unlikely_attributes.html&#34;&gt;確率が高い分岐と低い分岐を伝える属性 &lt;code&gt;[[likely]]&lt;/code&gt;, &lt;code&gt;[[unlikely]]&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;条件分岐の最適化ヒントを与える属性&lt;/td&gt;
&lt;td&gt;9 (partial, &lt;code&gt;switch&lt;/code&gt; 文のみ可能)&lt;br /&gt; 10&lt;/td&gt;
&lt;td&gt;12.0&lt;/td&gt;
&lt;td&gt;2021.7&lt;/td&gt;
&lt;td&gt;2019 Update 6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0929R2: &lt;a href=&#34;lang/cpp20/checking_for_abstract_class_types.html&#34;&gt;抽象型のチェック&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;関数の宣言段階では、パラメータおよび戻り値型が抽象型かどうかをチェックしないようにする&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;2019 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0732R2: &lt;a href=&#34;lang/cpp20/class_types_in_non-type_template_parameters.html&#34;&gt;非型テンプレートパラメータとしてクラス型を許可する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数式として使用できる型を広く非型テンプレートパラメータとして使用できるようにする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;2022.2 Partial&lt;/td&gt;
&lt;td&gt;2019 Update 6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0722R3: &lt;a href=&#34;lang/cpp20/efficient_sized_delete_for_variable_sized_classes.html&#34;&gt;可変長データを扱うクラスの効率的な&lt;code&gt;delete&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;クラスの&lt;code&gt;delete&lt;/code&gt;演算子が呼び出される前にデストラクタが呼ばれないようにするオプションを追加&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;6.0&lt;/td&gt;
&lt;td&gt;2023.0&lt;/td&gt;
&lt;td&gt;2019 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1064R0: &lt;a href=&#34;lang/cpp20/allow_virtual_function_calls_in_constant_expressions.html&#34;&gt;定数式からの仮想関数の呼び出しを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;仮想関数に&lt;code&gt;constexpr&lt;/code&gt;を付けられない制限を解除&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1327R1: &lt;a href=&#34;lang/cpp20/allowing_dynamic_cast_polymorphic_typeid_in_constant_expressions.html&#34;&gt;定数式での&lt;code&gt;dynamic_cast&lt;/code&gt;、多態的な&lt;code&gt;typeid&lt;/code&gt;を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数式での動的多態を許可&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1002R1: &lt;a href=&#34;lang/cpp20/try-catch_blocks_in_constexpr_functions.html&#34;&gt;constexpr関数内でのtry-catchブロックを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;constexpr関数内でtry-catchブロックを書けるようにする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;td&gt;2023.1&lt;/td&gt;
&lt;td&gt;2019 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1073R3: &lt;a href=&#34;lang/cpp20/immediate_functions.html&#34;&gt;常に定数式評価する&lt;code&gt;consteval&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;consteval&lt;/code&gt;キーワードを追加し、常に定数式評価されるよう指定できるようにする&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1330R0: &lt;a href=&#34;lang/cpp20/changing_the_active_member_of_a_union_inside_constexpr.html&#34;&gt;定数式内での共用体のアクティブメンバの変更を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;共用体メンバの書き換えを定数式内で行えるようにする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2017&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1008R1: &lt;a href=&#34;lang/cpp20/prohibit_aggregates_with_user-declared_constructors.html&#34;&gt;ユーザー宣言したコンストラクタを持つクラスの集成体初期化を禁止&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コンストラクタが&lt;code&gt;delete&lt;/code&gt;／&lt;code&gt;default&lt;/code&gt;宣言されているクラスを、集成体初期化によってコンストラクタ呼び出しを回避して構築できてしまっていた技法を禁止&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0892R2: &lt;a href=&#34;lang/cpp20/explicit_bool.html&#34;&gt;関数を条件付きで&lt;code&gt;explicit&lt;/code&gt;にする構文を追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;explicit(true)&lt;/code&gt;のように&lt;code&gt;explicit&lt;/code&gt;に真理値パラメータを指定できるようにする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1236R1: &lt;a href=&#34;lang/cpp20/signed_integers_are_twos_complement.html&#34;&gt;符号付き整数型が2の補数表現であることを規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;符号付き整数型のビット表現を2の補数に規定する&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2023.0&lt;/td&gt;
&lt;td&gt;2022 Update 14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0482R6: &lt;a href=&#34;lang/cpp20/char8_t.html&#34;&gt;UTF-8エンコーディングされた文字の型として&lt;code&gt;char8_t&lt;/code&gt;を追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;UTF-8エンコードされた文字かどうかでオーバーロード・特殊化をできるようにする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;7 (&lt;code&gt;-fchar8_t&lt;/code&gt;オプションが必要)&lt;br /&gt;8 (&lt;code&gt;-std=c++20&lt;/code&gt;で有効化)&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1094R2: &lt;a href=&#34;lang/cpp20/nested_inline_mamespaces.html&#34;&gt;入れ子名前空間定義でのインライン名前空間&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;namespace ns1::inline ns2::ns3 {}&lt;/code&gt;のように、入れ子名前空間を定義する式にインライン名前空間の指定を含められるようにする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1091R3: &lt;a href=&#34;lang/cpp20/extending_structured_bindings_to_be_more_like_variable_declarations.html&#34;&gt;構造化束縛を拡張して通常の変数宣言のように使用できるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;記憶域指定子として&lt;code&gt;static&lt;/code&gt;と&lt;code&gt;thread_local&lt;/code&gt;の指定を許可&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;8.0 (partial)&lt;br /&gt;16&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1381R1: &lt;a href=&#34;lang/cpp20/reference_capture_of_structured_bindings.html&#34;&gt;構造化束縛した変数の参照キャプチャを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;構造化束縛をした変数は特殊な扱いのためラムダ式で参照キャプチャできない規定となっていたがこれを許可する&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;8.0 (partial)&lt;br /&gt;16&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0960R3: &lt;a href=&#34;lang/cpp20/allow_initializing_aggregates_from_a_parenthesized_list_of_values.html&#34;&gt;丸カッコの値リストからの集成体初期化を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;T x{1, 2, 3};&lt;/code&gt;と同様に&lt;code&gt;T x(1, 2, 3);&lt;/code&gt;でも集成体初期化できるようにする&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1009R2: &lt;a href=&#34;lang/cpp20/array_size_deduction_in_new-expressions.html&#34;&gt;&lt;code&gt;new&lt;/code&gt;式での配列要素数の推論&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;double* p = new double[]{1,2,3};&lt;/code&gt;を許可&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1041R4: &lt;a href=&#34;lang/cpp20/make_char16t_char32t_string_literals_be_utf16_32.html&#34;&gt;&lt;code&gt;char16_t&lt;/code&gt;と&lt;code&gt;char32_t&lt;/code&gt;の文字・文字列リテラルを、文字コードUTF-16/32に規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;__STDC_UTF_16__&lt;/code&gt;、&lt;code&gt;__STDC_UTF_32__&lt;/code&gt;の定義に関係なく、&lt;code&gt;char16_t&lt;/code&gt;、&lt;code&gt;char32_t&lt;/code&gt;のリテラルをUTF-16/32文字コードに規定する&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;2023.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1103R3: &lt;a href=&#34;lang/cpp20/modules.html&#34;&gt;モジュール&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ヘッダファイル・ソースファイル、インクルードに変わる仕組みとしてモジュールを導入する&lt;/td&gt;
&lt;td&gt;11 (&lt;code&gt;-fmodules-ts&lt;/code&gt;が必要)&lt;/td&gt;
&lt;td&gt;8.0 partial (&lt;code&gt;-fmodules&lt;/code&gt;, &lt;code&gt;-fmodules-ts&lt;/code&gt;が必要)&lt;br /&gt;15&lt;/td&gt;
&lt;td&gt;2023.1 (partial)&lt;/td&gt;
&lt;td&gt;2019 Update 8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0912R5: &lt;a href=&#34;lang/cpp20/coroutines.html&#34;&gt;コルーチン&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;関数実行を中断・再開する仕組みとしてコルーチンを導入する&lt;/td&gt;
&lt;td&gt;10 (&lt;code&gt;-fcoroutines&lt;/code&gt;が必要)&lt;br /&gt;11 (&lt;code&gt;-std=c++20&lt;/code&gt;で有効化)&lt;/td&gt;
&lt;td&gt;8.0 (partial)&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1161R3: &lt;a href=&#34;lang/cpp20/deprecate_uses_of_the_comma_operator_in_subscripting_expressions.html&#34;&gt;添字演算子内でのカンマ演算子の使用を非推奨化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ar[i, j]&lt;/code&gt;を非推奨化。&lt;code&gt;ar[(i, j)]&lt;/code&gt;はOK&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.6&lt;/td&gt;
&lt;td&gt;2019 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1331R2: &lt;a href=&#34;lang/cpp20/permitting_trivial_default_initialization_in_constexpr_contexts.html&#34;&gt;constexpr関数内でのトリビアルなデフォルト初期化を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;constexpr関数内でのデフォルト初期化を許可し、未初期化値を読むことのみ禁止する&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;10.0&lt;/td&gt;
&lt;td&gt;2022.3&lt;/td&gt;
&lt;td&gt;2019 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0848R3: &lt;a href=&#34;lang/cpp20/conditionally_trivial_special_member_functions.html&#34;&gt;条件付きで特殊メンバ関数をトリビアルに定義するように&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;制約によってトリビアルな特殊メンバ関数と非トリビアルな特殊メンバ関数をオーバーロードできるようにする&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;16 (partial)&lt;br /&gt;19&lt;/td&gt;
&lt;td&gt;2022.3&lt;/td&gt;
&lt;td&gt;2019 Update 8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1301R4: &lt;a href=&#34;lang/cpp20/nodiscard_should_have_a_reason.html&#34;&gt;&lt;code&gt;[[nodiscard]]&lt;/code&gt;属性に理由となる文字列を付加できるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;関数の戻り値を無視してはならない理由を関数宣言に持たせ、警告メッセージに役立てる&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.6&lt;/td&gt;
&lt;td&gt;2019 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1099R5: &lt;a href=&#34;lang/cpp20/using_enum.html&#34;&gt;スコープ付き列挙型のusing宣言&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;using enum EnumType;&lt;/code&gt;もしくは&lt;code&gt;using EnumType::enumerator&lt;/code&gt;とすることで、列挙値のスコープ指定を省略できるようにする&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;2023.0&lt;/td&gt;
&lt;td&gt;2019 Update 4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1816R0: &lt;a href=&#34;lang/cpp20/class_template_argument_deduction_for_aggregates.html&#34;&gt;集成体クラステンプレートのテンプレート引数推論&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;クラステンプレートのテンプレート引数推論はコンストラクタ引数から推論されるが、集成体初期化からも推論できるようにする&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;2024.0&lt;/td&gt;
&lt;td&gt;2019 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1668R1: &lt;a href=&#34;lang/cpp20/enabling_constexpr_intrinsics_by_permitting_unevaluated_inline-assembly_in_constexpr_functions.html&#34;&gt;constexpr関数内で未評価のインラインアセンブリを許可することによる組み込み関数のconstexpr有効化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コンパイル時に評価されない場合にconstexpr関数にasm定義を含めることを許可&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;10.0&lt;/td&gt;
&lt;td&gt;2022.3&lt;/td&gt;
&lt;td&gt;2019 Update 9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0388R4: &lt;a href=&#34;lang/cpp20/permit_conversions_to_arrays_of_unknown_bound.html&#34;&gt;要素数不明の配列への変換を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;要素数が判明している配列から、要素数が不明の配列への変換を許可&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;2021.6&lt;/td&gt;
&lt;td&gt;2019 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1143R2: &lt;a href=&#34;lang/cpp20/constinit.html&#34;&gt;コンパイル時初期化を強制する&lt;code&gt;constinit&lt;/code&gt;キーワードを追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;初期化のみコンパイル時におわらせたい場合に使用する&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;10.0&lt;/td&gt;
&lt;td&gt;2022.3&lt;/td&gt;
&lt;td&gt;2019 Update 10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1152R4: &lt;a href=&#34;lang/cpp20/deprecating_volatile.html&#34;&gt;ほとんどの&lt;code&gt;volatile&lt;/code&gt;を非推奨化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;volatile&lt;/code&gt;の有用な機能のみを残し、効果が疑わしい、または壊れている機能を非推奨化する&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;10.0&lt;/td&gt;
&lt;td&gt;2021.6&lt;/td&gt;
&lt;td&gt;2019 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1814R0: &lt;a href=&#34;lang/cpp20/class_template_argument_deduction_for_alias_templates.html&#34;&gt;エイリアステンプレート経由でのクラステンプレートのテンプレート引数推論&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;エイリアステンプレートからクラステンプレートのテンプレート引数を推論できるようにする&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;19 (partial)&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;2019 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0784R7: &lt;a href=&#34;lang/cpp20/more_constexpr_containers.html&#34;&gt;可変サイズをもつコンテナの&lt;code&gt;constexpr&lt;/code&gt;化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;constexpr&lt;/code&gt;記憶域をもつメモリアロケータの存在を考慮することで、可変サイズをもつコンテナをコンパイル時に使用できるようにする&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;10.0&lt;/td&gt;
&lt;td&gt;2021.6&lt;/td&gt;
&lt;td&gt;2019 Update 9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1957R2: &lt;a href=&#34;lang/cpp20/converting_from_pointer_to_bool_should_be_considered_narrowing.html&#34;&gt;ポインタから&lt;code&gt;bool&lt;/code&gt;への変換を縮小変換とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ポインタから&lt;code&gt;bool&lt;/code&gt;値への変換を縮小変換と規定することで、意図しない変換を防止する&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;11.0&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;2019 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#note_ref-t1-1&#34; id=&#34;note-t1-1&#34;&gt;&lt;strong&gt;^&lt;/strong&gt;&lt;/a&gt; 不明な属性として無視されなくなっただけで期待する効果は得られない。完全に実装されるまでは、代わりに&lt;code&gt;&lt;a href=&#34;https://devblogs.microsoft.com/cppblog/msvc-cpp20-and-the-std-cpp20-switch/#msvc-extensions-and-abi&#34; target=&#34;_blank&#34;&gt;[[msvc::no_unique_address]]&lt;/a&gt;&lt;/code&gt;を使用できる。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;各処理系のC++20実装状況ページ：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GCC: &lt;a href=&#34;https://gcc.gnu.org/projects/cxx-status.html#cxx20&#34; target=&#34;_blank&#34;&gt;C++20 Support in GCC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Clang: &lt;a href=&#34;http://clang.llvm.org/cxx_status.html&#34; target=&#34;_blank&#34;&gt;C++ Support in Clang&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;libstdc++: &lt;a href=&#34;https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2020&#34; target=&#34;_blank&#34;&gt;C++ 2020 Implementation Status&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;libc++: &lt;a href=&#34;https://libcxx.llvm.org/Status/Cxx20.html&#34; target=&#34;_blank&#34;&gt;libc++ C++20 Status&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Visual C++ (MSVC):&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://learn.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance?view=msvc-170&#34; target=&#34;_blank&#34;&gt;Microsoft C/C++ language conformance by Visual Studio version&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.microsoft.com/ja-jp/cpp/visual-cpp-language-conformance&#34; target=&#34;_blank&#34;&gt;Visual C++ 言語への準拠&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/microsoft/STL/wiki/Changelog&#34; target=&#34;_blank&#34;&gt;次リリース情報(VS2019,2022) - Change log&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ICC: &lt;a href=&#34;https://www.intel.com/content/www/us/en/developer/articles/technical/c20-features-supported-by-intel-cpp-compiler.html&#34; target=&#34;_blank&#34;&gt;C++20 Features Supported by Intel® C++ Compiler&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href=&#34;#cpp23&#34; id=&#34;cpp23&#34;&gt;C++23言語機能の実装状況&lt;/a&gt;&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#gcc&#34;&gt;GCC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#clang&#34;&gt;Clang&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#icc&#34;&gt;ICX&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#visual_cpp&#34;&gt;MSVC&lt;/a&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;P0330R8: &lt;a href=&#34;lang/cpp23/literal_suffix_for_signed_size_t.html&#34;&gt;(符号付き)&lt;code&gt;size_t&lt;/code&gt;リテラルのためのサフィックス&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;42z&lt;/code&gt;/&lt;code&gt;42Z&lt;/code&gt;とすることで&lt;code&gt;size_t&lt;/code&gt;に対応する符号付き整数型のリテラルとする&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2022 Update 13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2290R3: &lt;a href=&#34;lang/cpp23/delimited_escape_sequences.html&#34;&gt;エスケープシーケンスの区切り&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;エスケープシーケンスの範囲を明確にする構文を追加する&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;2023.2&lt;/td&gt;
&lt;td&gt;2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2266R3: &lt;a href=&#34;lang/cpp23/simpler_implicit_move.html&#34;&gt;暗黙的なムーブを簡略化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;参照を返す関数の&lt;code&gt;return&lt;/code&gt;文で暗黙的にムーブされない問題を修正&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0849R8: &lt;a href=&#34;lang/cpp23/auto_cast.html&#34;&gt;&lt;code&gt;auto(x)&lt;/code&gt;による一時オブジェクトへの変換&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;auto(x)&lt;/code&gt;/&lt;code&gt;auto{x}&lt;/code&gt;で、式の値をコピーした一時オブジェクトを得る&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1787R6: &lt;a href=&#34;lang/cpp23/declarations_and_where_to_find_them.html&#34;&gt;スコープと名前探索の仕様整理&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;複雑で不完全になっているスコープと名前探索の仕様を整理し、一部の問題を解決する&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2615R1: &lt;a href=&#34;lang/cpp23/meaningful_exports.html&#34;&gt;無意味なexport宣言を禁止する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;いくつかの不必要な宣言に対するモジュールexportを禁止する&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2360R0: &lt;a href=&#34;lang/cpp23/extend_init_statement_to_allow_alias_declaration.html&#34;&gt;初期化文での型の別名宣言を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;for (using T = int; T e : v) {}&lt;/code&gt;を許可&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2718R0: &lt;a href=&#34;lang/cpp23/lifetime_extension_in_range_based_for_loop.html&#34;&gt;範囲for文が範囲初期化子内で生じた一時オブジェクトを延命することを規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;範囲初期化子内で生じた一時オブジェクトは範囲for文の終わりまで延命される&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2324R2: &lt;a href=&#34;lang/cpp23/labels_at_the_end_of_compound_statements.html&#34;&gt;複合文の末尾へのラベルを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;C互換のため、複合文の末尾でのgoto文のラベルを許可する&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;2023.2&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0847R7: &lt;a href=&#34;lang/cpp23/deducing_this.md.nolink&#34;&gt;自身のオブジェクトを明示的にパラメータとして指定する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;メンバ関数が&lt;code&gt;*this&lt;/code&gt;の型・オブジェクトをパラメータとしてとり、&lt;code&gt;*this&lt;/code&gt;オブジェクトがconst/非const、左辺値/右辺値であるかをメンバ関数内で識別できるようにする&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;2022 Update 2 (partial)&lt;br /&gt;2022 Update 13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1847R4: &lt;a href=&#34;lang/cpp23/make_declaration_order_layout_mandated.html&#34;&gt;アクセス制御の異なるメンバ変数のレイアウトを宣言順に規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;アクセス制御の異なるメンバ変数のレイアウトは並び替えを許可されていたが宣言順に規定する&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;2022&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2128R6: &lt;a href=&#34;lang/cpp23/multidimensional_subscript_operator.html&#34;&gt;添字演算子の多次元サポート&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;operator[](int x, int y, int z)&lt;/code&gt;のように添字演算子のオーバーロードで複数のパラメータをとることを許可&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2022 Update 12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1169R4: &lt;a href=&#34;lang/cpp23/static_operator.html&#34;&gt;&lt;code&gt;this&lt;/code&gt;ポインタをもつ必要のない演算子を&lt;code&gt;static&lt;/code&gt;として宣言できるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;状態をもたないいくつかの演算子を&lt;code&gt;static&lt;/code&gt;として宣言できるようにする&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;2023.2&lt;/td&gt;
&lt;td&gt;2022 Update 14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2201R1: &lt;a href=&#34;lang/cpp23/mixed_string_literal_concatenation.html&#34;&gt;異なる文字エンコーディングをもつ文字列リテラルの連結を不適格とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;auto a = u8&#34;&#34; L&#34;&#34;;&lt;/code&gt;のような異なる文字エンコーディング同士での文字列リテラルの連結を禁止する&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2029R4: &lt;a href=&#34;lang/cpp23/numeric_and_universal_character_escapes_in_character_and_string_literals.html&#34;&gt;文字・文字列リテラル中の数値・ユニバーサルキャラクタのエスケープに関する問題解決&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2362R3: &lt;a href=&#34;lang/cpp23/remove_non_encodable_wide_character_literals_and_multicharacter_wide_character_literals.html&#34;&gt;1ワイド文字に収まらないワイド文字リテラルを禁止する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;エンコード結果として&lt;code&gt;wchar_t&lt;/code&gt;の大きさに収まらないワイド文字リテラルを禁止する&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;2023.2&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2071R2: &lt;a href=&#34;lang/cpp23/named_universal_character_escapes.html&#34;&gt;名前付きユニバーサルキャラクタ名&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;16進数のユニバーサルキャラクタだけでなく、その文字の名前を入力できるようにする&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;2023.2&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2096R2: &lt;a href=&#34;lang/cpp23/generalized_wording_for_partial_specializations.html&#34;&gt;変数テンプレートの部分特殊化を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;変数テンプレートの部分特殊化を許可するために部分特殊化の仕様を汎用化&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2582R1: &lt;a href=&#34;lang/cpp23/class_template_argument_deduction_from_inherited.html&#34;&gt;継承コンストラクタからのクラステンプレート引数の推論&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;継承コンストラクタからもクラステンプレート引数を推論できるようにする&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1938R3: &lt;code&gt;&lt;a href=&#34;lang/cpp23/if_consteval.html&#34;&gt;if consteval&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;コンパイル時の文脈かどうかで分岐させる&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;2022 Update 14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1401R5: &lt;a href=&#34;lang/cpp23/narrowing_contextual_conversions_to_bool.html&#34;&gt;定数式の文脈での&lt;code&gt;bool&lt;/code&gt;への縮小変換を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;if constexpr(flags &amp;amp; Flags::Exec)&lt;/code&gt;や&lt;code&gt;static_assert(N);&lt;/code&gt;を許可&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2022 Update 14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2242R3: &lt;a href=&#34;lang/cpp23/non_literal_variables_in_constexpr_functions.html&#34;&gt;定数式内での非リテラル変数、静的変数・スレッドローカル変数およびgotoとラベルの存在を許可する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コンパイル時に評価されない限り、定数式内に静的変数・スレッドローカル変数およびgoto文とラベルを含むことを許可する&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2022 Update 13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2246R1: &lt;a href=&#34;lang/cpp23/character_encoding_of_diagnostic_text.html&#34;&gt;静的な診断メッセージの文字エンコーディング&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;static_assert&lt;/code&gt;や&lt;code&gt;[[deprecated]]&lt;/code&gt;などの診断メッセージの文字集合に関する要件をなくす&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2022&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2448R2: &lt;a href=&#34;lang/cpp23/relaxing_some_constexpr_restrictions.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;関数が定数実行できない場合でも適格とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;17 (partial)&lt;br /&gt;19&lt;/td&gt;
&lt;td&gt;2024.0 (partial)&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2647R1: &lt;a href=&#34;lang/cpp23/permitting_static_constexpr_variables_in_constexpr_functions.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;関数内での&lt;code&gt;static constexpr&lt;/code&gt;変数を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;constexpr&lt;/code&gt;関数のローカルで定数を定義できるようにする&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;2023.2&lt;/td&gt;
&lt;td&gt;2026 Update 6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2564R3: &lt;a href=&#34;lang/cpp23/consteval_needs_to_propagate_up.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;関数内で&lt;code&gt;consteval&lt;/code&gt;関数を呼び出せない問題を緩和&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;consteval&lt;/code&gt;呼び出しを含む&lt;code&gt;constexpr&lt;/code&gt;関数を条件付きで&lt;code&gt;consteval&lt;/code&gt;関数とみなすようにする&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;2024.0&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1102R2: &lt;a href=&#34;lang/cpp23/down_with_lambda_parens.html&#34;&gt;ラムダ式で&lt;code&gt;()&lt;/code&gt;を省略できる条件を緩和&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;修飾や戻り値型をともなってもパラメータリストが空であれば&lt;code&gt;()&lt;/code&gt;を省略できる&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2022 Update 14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2173R1: &lt;a href=&#34;lang/cpp23/attributes_on_lambda_expressions.html&#34;&gt;ラムダ式に対する属性&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ラムダ式のいくつかの箇所に属性を記述できるようにする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2022 Update 14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1774R8: &lt;a href=&#34;lang/cpp23/portable_assumptions.html&#34;&gt;コード内容の仮定をコンパイラに伝えるassume属性&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;最適化のために、コードの仮定をコンパイラに伝える属性を標準化する&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2316R2: &lt;a href=&#34;lang/cpp23/consistent_character_literal_encoding.html&#34;&gt;文字リテラルエンコーディングを一貫させる&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;プリプロセッサの条件式での文字リテラルの扱いをC++式と同様にする&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2022&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2334R1: &lt;a href=&#34;lang/cpp23/add_support_for_preprocessing_directives_elifdef_and_elifndef.html&#34;&gt;&lt;code&gt;elif&lt;/code&gt;/&lt;code&gt;elifdef&lt;/code&gt;/&lt;code&gt;elifndef&lt;/code&gt;のサポートを追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#if&lt;/code&gt;/&lt;code&gt;#ifdef&lt;/code&gt;/&lt;code&gt;#ifndef&lt;/code&gt;に対応する複数条件命令のサポートを追加する&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2022 Update 10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2437R1: &lt;a href=&#34;lang/cpp23/warning.html&#34;&gt;&lt;code&gt;#warning&lt;/code&gt;のサポートを追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;多くのC++コンパイラが実装していたプリプロセス時の警告&lt;code&gt;#warning message&lt;/code&gt;を正式サポート&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;2023.2&lt;/td&gt;
&lt;td&gt;2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2295R6: &lt;a href=&#34;lang/cpp23/support_for_utf8_as_a_portable_source_file_encoding.html&#34;&gt;汎用的なソースコードのエンコーディングとしてUTF-8をサポート&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;すべてのコンパイラはUTF-8文字コードのソースコードをサポートしなければならない&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;2023.2&lt;/td&gt;
&lt;td&gt;2019 Update 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2223R2: &lt;a href=&#34;lang/cpp23/trimming_whitespaces_before_line_splicing.html&#34;&gt;行末スペースを無視するよう規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;行末が「&lt;code&gt;\ &lt;/code&gt;」でおわっていた場合にMSVCは行の継続をしない実装になっていたため動作を共通化するため仕様を規定&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2026&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;各処理系のC++23実装状況ページ：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GCC: &lt;a href=&#34;https://gcc.gnu.org/projects/cxx-status.html#cxx23&#34; target=&#34;_blank&#34;&gt;C++23 Support in GCC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Clang: &lt;a href=&#34;https://clang.llvm.org/cxx_status.html#cxx23&#34; target=&#34;_blank&#34;&gt;C++23 implementation status&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Visual C++ (MSVC):&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://learn.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance?view=msvc-170&#34; target=&#34;_blank&#34;&gt;Microsoft C/C++ language conformance by Visual Studio version&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://learn.microsoft.com/en-us/cpp/overview/cpp-conformance-improvements?view=msvc-170&#34; target=&#34;_blank&#34;&gt;C++ Conformance improvements, behavior changes, and bug fixes in Visual Studio 2022&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://devblogs.microsoft.com/cppblog/msvc-compiler-updates-in-visual-studio-2022-version-17-13/&#34; target=&#34;_blank&#34;&gt;C++ Language Updates in MSVC in Visual Studio 2022 17.13&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://devblogs.microsoft.com/cppblog/msvc-compiler-language-updates-in-visual-studio-2022-version-17-12/&#34; target=&#34;_blank&#34;&gt;MSVC Compiler Language Updates in Visual Studio 2022 version 17.12&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://devblogs.microsoft.com/cppblog/c-language-updates-in-msvc-in-visual-studio-2022-17-14/&#34; target=&#34;_blank&#34;&gt;C++ Language Updates in MSVC in Visual Studio 2022 17.14&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://learn.microsoft.com/en-us/cpp/overview/msvc-conformance-improvements&#34; target=&#34;_blank&#34;&gt;C/C++ Conformance improvements, behavior changes, and bug fixes in Microsoft C++ (MSVC) Build Tools&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ICX: &lt;a href=&#34;https://www.intel.com/content/www/us/en/developer/articles/technical/c23-features-supported-by-intel-c-compiler.html&#34; target=&#34;_blank&#34;&gt;C++23 Features Supported by Intel® C++ Compiler&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href=&#34;#cpp26&#34; id=&#34;cpp26&#34;&gt;C++26言語機能の実装状況&lt;/a&gt;&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#gcc&#34;&gt;GCC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#clang&#34;&gt;Clang&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#icc&#34;&gt;ICX&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#visual_cpp&#34;&gt;MSVC&lt;/a&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;P2752R3: &lt;a href=&#34;lang/cpp26/static_storage_for_braced_initializers.html&#34;&gt;&lt;code&gt;std::initializer_list&lt;/code&gt;の配列を静的記憶域に配置する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;std::vector v = {1, 2, 3};&lt;/code&gt;のような初期化で初期化子リストを静的記憶域に配置することで無駄なコピーをなくす&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2169R4: &lt;a href=&#34;lang/cpp26/nice_placeholder_with_no_name.html&#34;&gt;宣言のみで使用しない変数の名前として&lt;code&gt;_&lt;/code&gt;をサポート&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;変数名&lt;code&gt;_&lt;/code&gt;は暗黙で&lt;code&gt;[[maybe_unused]]&lt;/code&gt;が指定される&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1854R4: &lt;a href=&#34;lang/cpp26/making_non-encodable_string_literals_ill-formed.html&#34;&gt;文字列リテラルの文字エンコーディング失敗を不適格とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;文字列リテラルのエンコーディング時に文字表現が失われる場合にコンパイルエラーにする&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2361R6: &lt;a href=&#34;lang/cpp26/unevaluated_strings.html&#34;&gt;コンパイル時にのみ使用される文字列の扱いを明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;static_assert&lt;/code&gt;や&lt;code&gt;[[deprecated]]&lt;/code&gt;などで使用されるコンパイル時の文字列について、文字コードの指定を禁止し、実行時エンコーディングが行われないことを規定&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2552R3: &lt;a href=&#34;lang/cpp26/on_the_ignorability_of_standard_attributes.html&#34;&gt;属性の無視性を見直し&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;構文として適格な属性のみを無視できるようにし、そうでない属性の使用を&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;とする&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2738R1: &lt;a href=&#34;lang/cpp26/constexpr_cast_from_voidptr.html&#34;&gt;定数式での&lt;code&gt;void*&lt;/code&gt;からポインタ型へのキャストを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;型消去のために&lt;code&gt;void*&lt;/code&gt;からポインタ型へのキャストを許可する&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2741R3: &lt;a href=&#34;lang/cpp26/user-generated_static_assert_messages.html&#34;&gt;&lt;code&gt;static_assert&lt;/code&gt;の診断メッセージにユーザーが生成した文字列の指定を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;constexpr&lt;/code&gt;な&lt;code&gt;S.size()&lt;/code&gt;と&lt;code&gt;S.data()&lt;/code&gt;メンバ関数をもつオブジェクトをコンパイル時文字列として指定できるようにする&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2558R2: &lt;a href=&#34;lang/cpp26/add_atsign_dollar_graveaccent_to_the_basic_character_set.html&#34;&gt;基本文字集合に@、$、`を追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;C言語との互換性のためにこれらの文字を基本文字集合に追加&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2662R3: &lt;a href=&#34;lang/cpp26/pack_indexing.html&#34;&gt;パラメータパックへのインデックスアクセスを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;可変引数テンプレートのパラメータパックに添字アクセスできるようにする&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2864R2: &lt;a href=&#34;lang/cpp26/remove_deprecated_arithmetic_conversion_on_enumerations.html&#34;&gt;非推奨となっていた列挙値から算術型への暗黙変換を削除&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;C++20から非推奨となっていた列挙値への算術演算で算術型に暗黙変換される仕様を削除&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2748R5: &lt;a href=&#34;lang/cpp26/disallow_binding_a_returned_glvalue_to_a_temporary.html&#34;&gt;返却された左辺値から暗黙変換された一時オブジェクトが参照に束縛されることを禁止する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;寿命切れの変数によって引き起こされるバグを防止する&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3106R1: &lt;a href=&#34;lang/cpp26/clarifying_rules_for_brace_elision_in_aggregate_initialization.html&#34;&gt;要素数不明の配列を集成体初期化する規則を明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;配列要素の集成体初期化で&lt;code&gt;{}&lt;/code&gt;が省略された場合の矛盾していた規定を修正&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0609R3: &lt;a href=&#34;lang/cpp26/attributes_for_structured_bindings.html&#34;&gt;構造化束縛への属性を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;auto [a, b [[maybe_unused]], c] = f();&lt;/code&gt;のように構造化束縛の要素に対して属性を付加できるようにする&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3034R1: &lt;a href=&#34;lang/cpp26/module_declarations_shouldnt_be_macros.html&#34;&gt;モジュール宣言でのモジュール名のマクロ展開を禁止する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;export module MACRO_NAME;&lt;/code&gt;を禁止&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2809R3: &lt;a href=&#34;lang/cpp26/trivial_infinite_loops_are_not_undefined_behavior.html&#34;&gt;空の無限ループは未定義動作ではないと規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;並行プログラムの進行保証などを考慮して空の無限ループを未定義動作ではないものとする&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2795R5: &lt;a href=&#34;lang/cpp26/erroneous_behavior_for_uninitialized_reads.html&#34;&gt;未初期化変数の読み取りをエラー性動作とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;初期化されていない自動変数の読み取りの安全性を規定する&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2573R2: &lt;a href=&#34;lang/cpp26/delete_reason.html&#34;&gt;関数宣言を削除する理由を指定できるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;f() = delete(&#34;reason&#34;);&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2893R3: &lt;a href=&#34;lang/cpp26/variadic_friends.html&#34;&gt;可変引数テンプレートで&lt;code&gt;friend&lt;/code&gt;宣言をできるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;クラステンプレートの可変引数テンプレートでまとめて&lt;code&gt;friend&lt;/code&gt;宣言できるようにする&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2747R2: &lt;a href=&#34;lang/cpp26/constexpr_placement_new.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;配置&lt;code&gt;new&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数式の文脈での配置&lt;code&gt;new&lt;/code&gt;を許可&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3144R2: &lt;a href=&#34;lang/cpp26/deleting_a_pointer_to_an_incomplete_type_should_be_ill-formed.html&#34;&gt;不完全型へのポインタに対する&lt;code&gt;delete&lt;/code&gt;を不適格とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;未定義動作を引き起こす操作をコンパイルエラーとする&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2963R3: &lt;a href=&#34;lang/cpp26/ordering_of_constraints_involving_fold_expressions.html&#34;&gt;制約式内での畳み込み式の順序付け&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;畳み込み式を含む制約の包摂関係を認識できるようにし、オーバーロード解決の曖昧さを解消する&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0963R3: &lt;a href=&#34;lang/cpp26/structured_binding_declaration_as_a_condition.html&#34;&gt;条件式での構造化束縛の使用を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;式全体を&lt;code&gt;bool&lt;/code&gt;値に変換できる場合に条件式で構造化束縛を使用できることとする&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;21&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2686R5: &lt;a href=&#34;lang/cpp26/constexpr_structured_bindings_and_references_to_constexpr_variables.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;構造化束縛の許可と、&lt;code&gt;constexpr&lt;/code&gt;参照の制限緩和&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数式に対する構造化束縛を許可し、関連して&lt;code&gt;constexpr&lt;/code&gt;参照の制限を緩和して自動変数も参照できるようにする&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3068R6: &lt;a href=&#34;lang/cpp26/allowing_exception_throwing_in_constant-evaluation.html&#34;&gt;定数評価での例外送出を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数式の文脈での例外の送出と捕捉を許可&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2865R6: &lt;a href=&#34;lang/cpp26/remove_deprecated_array_comparisons.html&#34;&gt;非推奨だった組み込み配列の比較を削除&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;C++20で非推奨となっていた配列比較を削除&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1061R10: &lt;a href=&#34;lang/cpp26/structured_bindings_can_introduce_a_pack.html&#34;&gt;構造化束縛でパックを導入できるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;タプルを分解する際に複数の変数をパックとして宣言できるようにする。&lt;code&gt;auto [a, ...xs] = f();&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3176R0: &lt;a href=&#34;lang/cpp26/the_oxford_variadic_comma.html&#34;&gt;先行するカンマのない省略記号を非推奨化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;void f(int, ...);&lt;/code&gt;はOK。&lt;code&gt;void f(int...);&lt;/code&gt;は非推奨&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3074R7: &lt;a href=&#34;lang/cpp26/trivial_unions.html&#34;&gt;共用体の特殊メンバ関数のトリビアル化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;非トリビアルな型をメンバにもつ共用体のデフォルトコンストラクタとデストラクタをトリビアルにし、未初期化ストレージとして使用可能にする&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2900R14: &lt;a href=&#34;lang/cpp26/contracts.html&#34;&gt;契約プログラミングをサポートする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;関数の事前条件、事後条件、不変条件を記述できるようにする&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2841R7: &lt;a href=&#34;lang/cpp26/concept_and_variable-template_template-parameters.html&#34;&gt;コンセプトと変数テンプレートをテンプレート引数として渡せるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートテンプレートパラメータとして、クラステンプレートやエイリアステンプレートに加え、コンセプトと変数テンプレートも渡せるようにする&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1967R14: &lt;a href=&#34;lang/cpp26/embed.html&#34;&gt;ファイルを読み込む&lt;code&gt;#embed&lt;/code&gt;命令を追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;バイナリファイルをインクルードするメカニズム。&lt;code&gt;#include&lt;/code&gt;とちがって読み出しサイズなどの柔軟な指定ができる&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3618R0: &lt;a href=&#34;lang/cpp26/allow_attaching_main_to_the_global_module.html&#34;&gt;&lt;code&gt;main&lt;/code&gt;関数をグローバルモジュールに含められるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;main&lt;/code&gt;関数に&lt;code&gt;extern &#34;C++&#34;&lt;/code&gt;を指定できるようにすることで名前付きモジュールに含められるようにする&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;21&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2996R13: &lt;a href=&#34;lang/cpp26/reflection.html&#34;&gt;静的リフレクション&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;リフレクション演算子&lt;code&gt;^^&lt;/code&gt;と&lt;code&gt;std::meta::info&lt;/code&gt;型によりコンパイル時にさまざまな情報を取得できる&lt;/td&gt;
&lt;td&gt;16 (&lt;code&gt;-freflection&lt;/code&gt; オプション指定)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1306R5: &lt;a href=&#34;lang/cpp26/expansion_statements.html&#34;&gt;コンパイル時のタプルやリストを展開処理する&lt;code&gt;template for&lt;/code&gt;文&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;タプル・構造体・Range・パラメータパックなどの各要素に対してコンパイル時に文を展開する&lt;code&gt;template for&lt;/code&gt;文を追加&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3533R2: &lt;a href=&#34;lang/cpp26/constexpr_virtual_inheritance.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;仮想継承を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数式の文脈での仮想継承を許可&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2843R3: &lt;a href=&#34;lang/cpp26/preprocessing_is_never_undefined.html&#34;&gt;プリプロセッサ仕様での「未定義動作」を不適格 (診断不要) に変更&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;プリプロセッサとレキサーの文脈での「未定義動作」用語を&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt; (診断不要) に変更&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3868R1: &lt;a href=&#34;lang/cpp26/allow_line_before_module_declarations.html&#34;&gt;モジュール宣言より前での&lt;code&gt;#line&lt;/code&gt;ディレクティブの使用を許可する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;モジュール宣言より前での&lt;code&gt;#line&lt;/code&gt;ディレクティブの使用を禁止していたのは過度な制限だった&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P4136R2: &lt;a href=&#34;lang/cpp26/line_is_not_in_line_with_existing_implementation.html&#34;&gt;&lt;code&gt;#line&lt;/code&gt;ディレクティブの制約を現実の実装に合わせて緩和する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#line 0&lt;/code&gt;や&lt;code&gt;#line 2147483648&lt;/code&gt;のような行番号指定を&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;としていたが、条件付きサポートとして許可する&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P4004R1: &lt;a href=&#34;lang/cpp26/reconsider_partial_ordering_of_variadic_templates.html&#34;&gt;可変引数テンプレートの半順序を再検討する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;可変引数テンプレートの部分特殊化の半順序ルールを再検討して、より一貫したルールにする&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3865R3: &lt;a href=&#34;lang/cpp26/class_template_argument_deduction_for_type_template_template_parameters.html&#34;&gt;テンプレートテンプレートパラメータに対するクラステンプレートパラメータ引数推論&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートテンプレートパラメータからクラステンプレート引数を推論できるようにクラステンプレートのテンプレート引数推論を拡張する&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3726R2: &lt;a href=&#34;lang/cpp26/adjustments_to_union_lifetime_rules.html&#34;&gt;共用体メンバの生存期間規則の調整&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;共用体の先頭メンバの生存期間を暗黙に開始する規則を撤回して&lt;code&gt;std::start_lifetime()&lt;/code&gt;による明示的な開始へ変更し、生存期間外の要素を含む配列メンバを定数式で許可する&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P4143R0: &lt;a href=&#34;lang/cpp26/constant_evaluation_when.md.nolink&#34;&gt;定数評価の開始・終了タイミングを明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数評価がどのタイミングで開始・終了するかを明確化し、constexprコンテキストの規則を整える&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P4149R1: &lt;a href=&#34;lang/cpp26/define_immediate_context.html&#34;&gt;SFINAEが適用される「直接文脈」を定義&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートの置換失敗がエラーにならない範囲を「直接文脈」として正式に定義し、デフォルト引数・&lt;code&gt;noexcept&lt;/code&gt;指定・契約指定子の中での置換失敗がコンパイルエラーとなることを明確化する&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3769R1: &lt;a href=&#34;lang/cpp26/clarifying_placement_new_deallocation.html&#34;&gt;配置newの解放処理を明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;配置&lt;code&gt;new&lt;/code&gt;で確保したメモリの解放処理の取り扱いに関するルールを明確化する&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;各処理系のC++26実装状況ページ：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GCC: &lt;a href=&#34;https://gcc.gnu.org/projects/cxx-status.html#cxx26&#34; target=&#34;_blank&#34;&gt;C++26 Support in GCC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Clang:&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://clang.llvm.org/cxx_status.html#cxx26&#34; target=&#34;_blank&#34;&gt;C++2c implementation status&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://libcxx.llvm.org/Status/Cxx26.html&#34; target=&#34;_blank&#34;&gt;libc++ C++26 Status&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Visual C++ (MSVC):&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://learn.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance?view=msvc-170&#34; target=&#34;_blank&#34;&gt;Microsoft C/C++ language conformance by Visual Studio version&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://learn.microsoft.com/en-us/cpp/overview/cpp-conformance-improvements?view=msvc-170&#34; target=&#34;_blank&#34;&gt;C++ Conformance improvements, behavior changes, and bug fixes in Visual Studio 2022&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href=&#34;#cpp29&#34; id=&#34;cpp29&#34;&gt;C++29言語機能の実装状況&lt;/a&gt;&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#gcc&#34;&gt;GCC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#clang&#34;&gt;Clang&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#icc&#34;&gt;ICX&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#visual_cpp&#34;&gt;MSVC&lt;/a&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;P3596R3: &lt;a href=&#34;lang/cpp29/undefined_behavior_and_ifndr_annexes.html&#34;&gt;未定義動作とIFNDRの一覧を規格の付録に追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コア言語で明示的に規定されているすべての未定義動作と、診断不要で&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt; (IFNDR) となるすべての規則を、安定した名前・説明・コード例付きで列挙する参考情報の付録を追加する&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2287R6: &lt;a href=&#34;lang/cpp29/designated-initializers_for_base_classes.html&#34;&gt;基底クラスのメンバ変数に対する指示付き初期化を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;B{.a=1, .b=2}&lt;/code&gt;のように、集成体の指示付き初期化で基底クラスのメンバ変数を直接指定できるようにする。基底クラス部分を初期化する指示なし初期化子との混在も許可する&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2953R5: &lt;a href=&#34;lang/cpp29/adding_restrictions_to_defaulted_assignment_operator_functions.html&#34;&gt;default定義できる代入演算子のシグネチャを制限&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;A&amp;amp; operator=(const A&amp;amp;) &amp;amp;&amp;amp; = default&lt;/code&gt;のような右辺値修飾やCV修飾された代入演算子のdefault定義を&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;とする。これらの代入演算子を自分で定義することは引き続きできる&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3899R3: &lt;a href=&#34;lang/cpp29/clarify_the_behavior_of_floating-point_overflow.html&#34;&gt;浮動小数点演算のオーバーフローと無限大・NaNの扱いを明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;無限大を表現できる浮動小数点型では、オーバーフローは未定義動作ではなく無限大を生成すると規定する。オーバーフローやNaNを新たに生成する演算は定数式にならず、無限大・NaNの伝播は定数式として扱える&lt;/td&gt;
&lt;td&gt;15 (partial)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3668R4: &lt;a href=&#34;lang/cpp29/defaulting_postfix_increment_and_decrement_operations.html&#34;&gt;後置インクリメント・デクリメント演算のdefault定義&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;後置&lt;code&gt;++&lt;/code&gt;／&lt;code&gt;--&lt;/code&gt;を&lt;code&gt;= default&lt;/code&gt;で定義（前置版から自動生成）できるようにする&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2434R5: &lt;a href=&#34;lang/cpp29/nondeterministic_pointer_provenance.html&#34;&gt;整数からポインタへの変換とポインタの由来の扱いを規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;整数からポインタへの変換では、その整数へ変換できるポインタ値のうち、プログラムの動作が定義される値が選択されると規定する&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3347R6: &lt;a href=&#34;lang/cpp29/invalid_pointer_operations.html&#34;&gt;無効なポインタ値の読み書き・コピーを定義された動作とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;無効なポインタ値の使用のうち、間接参照は未定義動作、比較などは処理系定義のままとし、読み込み・書き込み・コピーなどそれ以外の操作を定義された動作とする&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3658R1: &lt;a href=&#34;lang/cpp29/adjust_identifier_following_new_Unicode_recommendations.html&#34;&gt;数学互換記法の文字を識別子として許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Unicodeの新しい勧告に従い、&lt;code&gt;∇f&lt;/code&gt;や&lt;code&gt;x²&lt;/code&gt;のような数学記法の文字（ID_Compat_Math_Start／Continueプロパティを持つ文字）を識別子に使用できるようにする&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3950R1: &lt;a href=&#34;lang/cpp29/return_value_and_return_void_are_not_mutually_exclusive.html&#34;&gt;コルーチンのpromise型で&lt;code&gt;return_value&lt;/code&gt;と&lt;code&gt;return_void&lt;/code&gt;の両方の宣言を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;1つのコルーチン内に、値をともなう&lt;code&gt;co_return&lt;/code&gt;文とともなわない&lt;code&gt;co_return&lt;/code&gt;文を混在させられるようにする&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3733R1: &lt;a href=&#34;lang/cpp29/more_named_universal_character_escapes.html&#34;&gt;名前付きユニバーサルキャラクタ名で使用できる別名を拡張&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;\N{…}&lt;/code&gt;に指定できる文字名の別名の分類制限を撤廃し、&lt;code&gt;\N{NBSP}&lt;/code&gt;のような略称 (abbreviation) なども使用できるようにする&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;23&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3847R1: &lt;a href=&#34;lang/cpp29/lexical_order_for_lambdas.html&#34;&gt;ラムダ式のキャプチャが書かれた順に初期化されることを保証&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;明示的なキャプチャに対応するクロージャ型のメンバ変数が、キャプチャを書いた順に宣言・初期化され、逆順に破棄されることを保証する&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2243R0: &lt;a href=&#34;lang/cpp29/language_linkage_for_templates.html&#34;&gt;extern &#34;C&#34;の中でのテンプレートの宣言を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートがC言語リンケージを持つことを禁止する規定を削除し、&lt;code&gt;extern &#34;C&#34;&lt;/code&gt;の中でテンプレートを宣言できるようにする。C言語リンケージの関数ポインタ型を、テンプレートパラメータに依存する形で書けるようになる&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3424R2: &lt;a href=&#34;lang/cpp29/deallocation_functions_with_throwing_exception_specification_are_ill_formed.html&#34;&gt;例外を送出しうる例外指定をもつ解放関数を不適格とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;operator delete&lt;/code&gt;などの解放関数に、&lt;code&gt;noexcept(false)&lt;/code&gt;のような例外を送出しうる例外指定を付けることを&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;とする。解放関数からの例外送出による未定義動作へ到達する経路を、宣言の時点で排除する&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3822R2: &lt;a href=&#34;lang/cpp29/conditional_noexcept_specifiers_in_compound_requirements.html&#34;&gt;requires式の複合要件で条件付き&lt;code&gt;noexcept&lt;/code&gt;指定を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;requires式の複合要件で、&lt;code&gt;{ 式 } noexcept(定数式)&lt;/code&gt;形式の条件付き&lt;code&gt;noexcept&lt;/code&gt;指定を書けるようにする&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3097R3: &lt;a href=&#34;lang/cpp29/contracts_for_virtual_functions.html&#34;&gt;仮想関数への事前条件・事後条件の指定を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;C++26で&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;とされていた、仮想関数への事前条件&lt;code&gt;pre&lt;/code&gt;・事後条件&lt;code&gt;post&lt;/code&gt;の指定を許可する。仮想関数呼び出しでは、静的に選択された関数と実際に呼び出される関数の両方のアサーションが評価される&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P4101R1: &lt;a href=&#34;lang/cpp29/consteval-only_values.html&#34;&gt;consteval-only型の規則をconsteval-only値の規則へ置き換え&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;リフレクションが実行時へ漏れることを防ぐ規則を、型ベースから値ベースへ変更する&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2414R12: &lt;a href=&#34;lang/cpp29/pointer_lifetime-end_zap_proposed_solutions.html&#34;&gt;アトミック操作とvolatileアクセスでの無効なポインタ値の扱いを規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;アトミックポインタの操作やvolatileアクセスの結果が無効なポインタ値となる場合、整数への往復変換を経た有効なポインタ値になると規定する。解放と並行してポインタを扱うロックフリーアルゴリズムを定義された動作にする&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3670R4: &lt;a href=&#34;lang/cpp29/pack_indexing_for_template_names.html&#34;&gt;テンプレートテンプレートパラメータのパックへのインデックスアクセスを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートテンプレートパラメータのパックに&lt;code&gt;TT...[N]&lt;/code&gt;形式でインデックスアクセスできるようにする&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;24&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3540R3: &lt;a href=&#34;lang/cpp29/embed_offset_parameter.html&#34;&gt;&lt;code&gt;#embed&lt;/code&gt;に&lt;code&gt;offset&lt;/code&gt;パラメータを追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#embed&lt;/code&gt;のパラメータとして、リソースの先頭から指定した要素数を読み飛ばす&lt;code&gt;offset&lt;/code&gt;を追加する&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;</content>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>任意の式によるSFINAE [N2634] -- C++26 : 「SFINAEが適用される「直接文脈」を定義」を追加 (close #1629)</title>
      <link href="https://cpprefjp.github.io/lang/cpp11/sfinae_expressions.html"/>
      <id>49d6dd75fdadd8c2259608159967bbd4d4bce5ae:lang/cpp11/sfinae_expressions.md</id>
      <updated>2026-09-07T12:13:35+09:00</updated>
      
        <summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/lang/cpp11/sfinae_expressions.md b/lang/cpp11/sfinae_expressions.md
index df05e8bb3..11d95467b 100644
--- a/lang/cpp11/sfinae_expressions.md
+++ b/lang/cpp11/sfinae_expressions.md
@@ -280,6 +280,7 @@ int main()
 - [`&amp;lt;type_traits&amp;gt;`](/reference/type_traits.md)
 - [`declval`](/reference/utility/declval.md)
 - [`enable_if`](/reference/type_traits/enable_if.md)
+- [C++26 SFINAEが適用される「直接文脈」を定義](/lang/cpp26/define_immediate_context.md)
 
 
 ## 参照
&lt;/code&gt;&lt;/pre&gt;</summary>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>C++26 -- C++26 : 「SFINAEが適用される「直接文脈」を定義」を追加 (close #1629)</title>
      <link href="https://cpprefjp.github.io/lang/cpp26.html"/>
      <id>49d6dd75fdadd8c2259608159967bbd4d4bce5ae:lang/cpp26.md</id>
      <updated>2026-09-07T12:13:35+09:00</updated>
      
        <content type="html">&lt;h1 itemprop=&#34;name&#34;&gt;&lt;span class=&#34;token&#34;&gt;C++26&lt;/span&gt;&lt;/h1&gt;
&lt;div itemprop=&#34;articleBody&#34;&gt;&lt;h2&gt;概要&lt;/h2&gt;
&lt;p&gt;C++26とは、2026年中に改訂される予定の、C++バージョンの通称である。&lt;/p&gt;
&lt;p&gt;このバージョンは、策定中のためC++2cと呼ばれることがある。「(2020年代の3つ目のバージョンが) 202c年にリリースされる」という伏せ字として「c」が使われているが、3年周期に次のバージョンが策定されることが決まっているため、伏せ字になっている年数がずれることはない。&lt;/p&gt;
&lt;h2&gt;言語機能&lt;/h2&gt;
&lt;h3&gt;変数&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/static_storage_for_braced_initializers.html&#34;&gt;&lt;code&gt;std::initializer_list&lt;/code&gt;の配列を静的記憶域に配置する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;std::vector v = {1, 2, 3};&lt;/code&gt;のような初期化で初期化子リストを静的記憶域に配置することで無駄なコピーをなくす&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/nice_placeholder_with_no_name.html&#34;&gt;宣言のみで使用しない変数の名前として&lt;code&gt;_&lt;/code&gt;をサポート&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;変数名&lt;code&gt;_&lt;/code&gt;は暗黙で&lt;code&gt;[[maybe_unused]]&lt;/code&gt;が指定される&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/deleting_a_pointer_to_an_incomplete_type_should_be_ill-formed.html&#34;&gt;不完全型へのポインタに対する&lt;code&gt;delete&lt;/code&gt;を不適格とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;未定義動作を引き起こす操作をコンパイルエラーとする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/disallow_binding_a_returned_glvalue_to_a_temporary.html&#34;&gt;返却された左辺値から暗黙変換された一時オブジェクトが参照に束縛されることを禁止する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;寿命切れの変数によって引き起こされるバグを防止する&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/clarifying_rules_for_brace_elision_in_aggregate_initialization.html&#34;&gt;要素数不明の配列を集成体初期化する規則を明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;配列要素の集成体初期化で&lt;code&gt;{}&lt;/code&gt;が省略された場合の矛盾していた規定を修正&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/erroneous_behavior_for_uninitialized_reads.html&#34;&gt;未初期化変数の読み取りをエラー性動作とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;初期化されていない自動変数の読み取りの安全性を規定する&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/structured_bindings_can_introduce_a_pack.html&#34;&gt;構造化束縛でパックを導入できるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;タプルを分解する際に複数の変数をパックとして宣言できるようにする。&lt;code&gt;auto [a, ...xs] = f();&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;文字列&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/making_non-encodable_string_literals_ill-formed.html&#34;&gt;文字列リテラルの文字エンコーディング失敗を不適格とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;文字列リテラルのエンコーディング時に文字表現が失われる場合にコンパイルエラーにする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/unevaluated_strings.html&#34;&gt;コンパイル時にのみ使用される文字列の扱いを明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;static_assert&lt;/code&gt;や&lt;code&gt;[[deprecated]]&lt;/code&gt;などで使用されるコンパイル時の文字列について、文字コードの指定を禁止し、実行時エンコーディングが行われないことを規定&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;分岐・ループ&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/structured_binding_declaration_as_a_condition.html&#34;&gt;条件式での構造化束縛の使用を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;式全体を&lt;code&gt;bool&lt;/code&gt;値に変換できる場合に条件式で構造化束縛を使用できることとする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/trivial_infinite_loops_are_not_undefined_behavior.html&#34;&gt;空の無限ループは未定義動作ではないと規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;並行プログラムの進行保証などを考慮して空の無限ループを未定義動作ではないものとする&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;関数&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/delete_reason.html&#34;&gt;関数宣言を削除する理由を指定できるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;f() = delete(&#34;reason&#34;);&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/contracts.html&#34;&gt;契約プログラミングをサポートする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;関数の事前条件、事後条件、不変条件を記述できるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;クラス&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/trivial_unions.html&#34;&gt;共用体の特殊メンバ関数のトリビアル化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;非トリビアルな型をメンバにもつ共用体のデフォルトコンストラクタとデストラクタをトリビアルにし、未初期化ストレージとして使用可能にする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/adjustments_to_union_lifetime_rules.html&#34;&gt;共用体メンバの生存期間規則の調整&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;共用体の先頭メンバの生存期間を暗黙に開始する規則を撤回して&lt;code&gt;std::start_lifetime()&lt;/code&gt;による明示的な開始へ変更し、生存期間外の要素を含む配列メンバを定数式で許可する&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/clarifying_placement_new_deallocation.html&#34;&gt;配置newの解放処理を明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;配置&lt;code&gt;new&lt;/code&gt;で確保したメモリの解放処理の取り扱いに関するルールを明確化する&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;属性&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/on_the_ignorability_of_standard_attributes.html&#34;&gt;属性の無視性を見直し&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;構文として適格な属性のみを無視できるようにし、そうでない属性の使用を&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;とする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/attributes_for_structured_bindings.html&#34;&gt;構造化束縛への属性を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;auto [a, b [[maybe_unused]], c] = f();&lt;/code&gt;のように構造化束縛の要素に対して属性を付加できるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;テンプレート&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/pack_indexing.html&#34;&gt;パラメータパックへのインデックスアクセスを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;可変引数テンプレートのパラメータパックに添字アクセスできるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/ordering_of_constraints_involving_fold_expressions.html&#34;&gt;制約式内での畳み込み式の順序付け&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;畳み込み式を含む制約の包摂関係を認識できるようにし、オーバーロード解決の曖昧さを解消する&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/variadic_friends.html&#34;&gt;可変引数テンプレートで&lt;code&gt;friend&lt;/code&gt;宣言をできるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;クラステンプレートの可変引数テンプレートでまとめて&lt;code&gt;friend&lt;/code&gt;宣言できるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/concept_and_variable-template_template-parameters.html&#34;&gt;コンセプトと変数テンプレートをテンプレート引数として渡せるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートテンプレートパラメータとして、クラステンプレートやエイリアステンプレートに加え、コンセプトと変数テンプレートも渡せるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/reconsider_partial_ordering_of_variadic_templates.html&#34;&gt;可変引数テンプレートの半順序を再検討する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;可変引数テンプレートの部分特殊化の半順序ルールを再検討して、より一貫したルールにする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/class_template_argument_deduction_for_type_template_template_parameters.html&#34;&gt;テンプレートテンプレートパラメータに対するクラステンプレートパラメータ引数推論&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートテンプレートパラメータからクラステンプレート引数を推論できるようにクラステンプレートのテンプレート引数推論を拡張する&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/define_immediate_context.html&#34;&gt;SFINAEが適用される「直接文脈」を定義&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートの置換失敗がエラーにならない範囲を「直接文脈」として正式に定義し、デフォルト引数・&lt;code&gt;noexcept&lt;/code&gt;指定・契約指定子の中での置換失敗がコンパイルエラーとなることを明確化する&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;定数式&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/reflection.html&#34;&gt;静的リフレクション&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;リフレクション演算子&lt;code&gt;^^&lt;/code&gt;と&lt;code&gt;std::meta::info&lt;/code&gt;型によりコンパイル時にさまざまな情報を取得できる&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/expansion_statements.html&#34;&gt;コンパイル時のタプルやリストを展開処理する&lt;code&gt;template for&lt;/code&gt;文&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;タプル・構造体・Range・パラメータパックなどの各要素に対してコンパイル時に文を展開する&lt;code&gt;template for&lt;/code&gt;文を追加&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/constexpr_cast_from_voidptr.html&#34;&gt;定数式での&lt;code&gt;void*&lt;/code&gt;からポインタ型へのキャストを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;型消去のために&lt;code&gt;void*&lt;/code&gt;からポインタ型へのキャストを許可する&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/user-generated_static_assert_messages.html&#34;&gt;&lt;code&gt;static_assert&lt;/code&gt;の診断メッセージにユーザーが生成した文字列の指定を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;constexpr&lt;/code&gt;な&lt;code&gt;S.size()&lt;/code&gt;と&lt;code&gt;S.data()&lt;/code&gt;メンバ関数をもつオブジェクトをコンパイル時文字列として指定できるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/constexpr_placement_new.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;配置&lt;code&gt;new&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数式の文脈での配置&lt;code&gt;new&lt;/code&gt;を許可&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/constexpr_structured_bindings_and_references_to_constexpr_variables.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;構造化束縛の許可と、&lt;code&gt;constexpr&lt;/code&gt;参照の制限緩和&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数式に対する構造化束縛を許可し、関連して&lt;code&gt;constexpr&lt;/code&gt;参照の制限を緩和して自動変数も参照できるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/allowing_exception_throwing_in_constant-evaluation.html&#34;&gt;定数評価での例外送出を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数式の文脈での例外の送出と捕捉を許可&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/constexpr_virtual_inheritance.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;仮想継承を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数式の文脈での仮想継承を許可&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/constant_evaluation_when.md.nolink&#34;&gt;定数評価の開始・終了タイミングを明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数評価がどのタイミングで開始・終了するかを明確化し、constexprコンテキストの規則を整える&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;プリプロセッサ&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/embed.html&#34;&gt;ファイルを読み込む&lt;code&gt;#embed&lt;/code&gt;命令を追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;バイナリファイルをインクルードするメカニズム。&lt;code&gt;#include&lt;/code&gt;とちがって読み出しサイズなどの柔軟な指定ができる&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/preprocessing_is_never_undefined.html&#34;&gt;プリプロセッサ仕様での「未定義動作」を不適格 (診断不要) に変更&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;プリプロセッサとレキサーの文脈での「未定義動作」用語を&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt; (診断不要) に変更&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/line_is_not_in_line_with_existing_implementation.html&#34;&gt;&lt;code&gt;#line&lt;/code&gt;ディレクティブの制約を現実の実装に合わせて緩和する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#line 0&lt;/code&gt;や&lt;code&gt;#line 2147483648&lt;/code&gt;のような行番号指定を&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;としていたが、条件付きサポートとして許可する&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;ソースコード&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/add_atsign_dollar_graveaccent_to_the_basic_character_set.html&#34;&gt;基本文字集合に@、$、`を追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;C言語との互換性のためにこれらの文字を基本文字集合に追加&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;モジュール&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/module_declarations_shouldnt_be_macros.html&#34;&gt;モジュール宣言でのモジュール名のマクロ展開を禁止する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;export module MACRO_NAME;&lt;/code&gt;を禁止&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/allow_attaching_main_to_the_global_module.html&#34;&gt;&lt;code&gt;main&lt;/code&gt;関数をグローバルモジュールに含められるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;main&lt;/code&gt;関数に&lt;code&gt;extern &#34;C++&#34;&lt;/code&gt;を指定できるようにすることで名前付きモジュールに含められるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/allow_line_before_module_declarations.html&#34;&gt;モジュール宣言より前での&lt;code&gt;#line&lt;/code&gt;ディレクティブの使用を許可する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;モジュール宣言より前での&lt;code&gt;#line&lt;/code&gt;ディレクティブの使用を禁止していたのは過度な制限だった&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;機能の非推奨化&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/the_oxford_variadic_comma.html&#34;&gt;先行するカンマのない省略記号を非推奨化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;void f(int, ...);&lt;/code&gt;はOK。&lt;code&gt;void f(int...);&lt;/code&gt;は非推奨&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;機能の削除&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/remove_deprecated_array_comparisons.html&#34;&gt;非推奨だった組み込み配列の比較を削除&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;C++20で非推奨となっていた配列比較を削除&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/remove_deprecated_arithmetic_conversion_on_enumerations.html&#34;&gt;非推奨となっていた列挙型の算術変換を削除&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;C++20から非推奨となっていた列挙値への算術演算で算術型に暗黙変換される仕様を削除&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;ライブラリ更新の概要&lt;/h2&gt;
&lt;h3&gt;新ライブラリ&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;文字列エンコーディングを識別するライブラリとして、&lt;code&gt;&lt;a href=&#34;../reference/text_encoding.html&#34;&gt;&amp;lt;text_encoding&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;要素のメモリ位置が安定するシーケンスコンテナのライブラリとして&lt;code&gt;&lt;a href=&#34;../reference/hive.html&#34;&gt;&amp;lt;hive&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;並行処理におけるデータの参照・更新を行うRCU (Read Copy Update) のライブラリとして、&lt;code&gt;&lt;a href=&#34;../reference/rcu.html&#34;&gt;&amp;lt;rcu&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;並行処理において参照中のデータが更新されないよう保護するハザードポインタのライブラリとして、&lt;code&gt;&lt;a href=&#34;../reference/hazard_pointer.html&#34;&gt;&amp;lt;hazard_pointer&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;データ並列ライブラリとして、&lt;code&gt;&lt;a href=&#34;../reference/simd.html&#34;&gt;&amp;lt;simd&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;デバッグサポートのライブラリとして&lt;code&gt;&lt;a href=&#34;../reference/debugging.html&#34;&gt;&amp;lt;debugging&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;線形代数ライブラリとして&lt;code&gt;&lt;a href=&#34;../reference/linalg.html&#34;&gt;&amp;lt;linalg&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;コンパイル時に容量を固定する可変長配列クラスのライブラリとして&lt;code&gt;&lt;a href=&#34;../reference/inplace_vector.html&#34;&gt;&amp;lt;inplace_vector&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;C23の互換ライブラリとして、ビット操作ライブラリ&lt;code&gt;&lt;a href=&#34;../reference/stdbit.h.html&#34;&gt;&amp;lt;stdbit.h&amp;gt;&lt;/a&gt;&lt;/code&gt;と、検査付き整数演算ライブラリ&lt;code&gt;&lt;a href=&#34;../reference/stdckdint.h.html&#34;&gt;&amp;lt;stdckdint.h&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加。&lt;code&gt;&amp;lt;cstd…&amp;gt;&lt;/code&gt;形式のライブラリは追加されない&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;全体&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;標準ライブラリに付加された、戻り値を無視した際に警告を出力する&lt;a href=&#34;cpp17/nodiscard.html&#34;&gt;&lt;code&gt;[[nodiscard]]&lt;/code&gt;属性&lt;/a&gt;を削除&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;コンテナ&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/vector/vector.html&#34;&gt;std::vector&amp;lt;bool&amp;gt;::reference&lt;/a&gt;&lt;/code&gt;のプロキシ操作として、&lt;code&gt;const&lt;/code&gt;修飾付きの代入と&lt;code&gt;swap()&lt;/code&gt;メンバ関数を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/mdspan/mdspan.html&#34;&gt;std::mdspan&lt;/a&gt;&lt;/code&gt;から部分ビューを取り出す&lt;code&gt;&lt;a href=&#34;../reference/mdspan/submdspan.html&#34;&gt;std::submdspan()&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/mdspan/submdspan.html&#34;&gt;std::submdspan()&lt;/a&gt;&lt;/code&gt;のスライス指定子として、取り出す要素数とストライド幅を指定する&lt;code&gt;&lt;a href=&#34;../reference/mdspan/extent_slice.html&#34;&gt;std::extent_slice&lt;/a&gt;&lt;/code&gt;と、取り出し元の半開区間とストライド幅を指定する&lt;code&gt;&lt;a href=&#34;../reference/mdspan/range_slice.html&#34;&gt;std::range_slice&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/mdspan/mdspan.html&#34;&gt;std::mdspan&lt;/a&gt;&lt;/code&gt;に、インデックスを指定して要素を取り出す&lt;code&gt;&lt;a href=&#34;../reference/mdspan/mdspan/at.html&#34;&gt;at()&lt;/a&gt;&lt;/code&gt;メンバ関数を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/mdspan/mdspan.html&#34;&gt;std::mdspan&lt;/a&gt;&lt;/code&gt;に対する&lt;code&gt;&lt;a href=&#34;../reference/mdspan/extents.html&#34;&gt;std::dextents&lt;/a&gt;&lt;/code&gt;指定の冗長さを解決する&lt;code&gt;&lt;a href=&#34;../reference/mdspan/extents.html&#34;&gt;std::dims&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/mdspan/mdspan.html&#34;&gt;std::mdspan&lt;/a&gt;&lt;/code&gt;のレイアウトとして、&lt;code&gt;&lt;a href=&#34;../reference/mdspan/layout_left_padded.html&#34;&gt;std::layout_left_padded&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/mdspan/layout_right_padded.html&#34;&gt;std::layout_right_padded&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/mdspan.html&#34;&gt;&amp;lt;mdspan&amp;gt;&lt;/a&gt;&lt;/code&gt;に、要素アクセスにアライメント保証を与える&lt;code&gt;&lt;a href=&#34;../reference/mdspan/aligned_accessor.html&#34;&gt;std::aligned_accessor&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/span/span.html&#34;&gt;std::span&lt;/a&gt;&lt;/code&gt;に、インデックスアクセスのための&lt;code&gt;&lt;a href=&#34;../reference/span/span/at.html&#34;&gt;at()&lt;/a&gt;&lt;/code&gt;メンバ関数を追加&lt;/li&gt;
&lt;li&gt;連想コンテナの以下のメンバ関数に、一時オブジェクトが生成されるコストを抑える拡張を追加&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/map/map.html&#34;&gt;std::map&lt;/a&gt;&lt;/code&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/map/map/op_at.html&#34;&gt;operator[]&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/map/map/at.html&#34;&gt;at()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/map/map/try_emplace.html&#34;&gt;try_emplace()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/map/map/insert_or_assign.html&#34;&gt;insert_or_assign()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/set/set.html&#34;&gt;std::set&lt;/a&gt;&lt;/code&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/set/set/insert.html&#34;&gt;insert()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_map/unordered_map.html&#34;&gt;std::unordered_map&lt;/a&gt;&lt;/code&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_map/unordered_map/op_at.html&#34;&gt;operator[]&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_map/unordered_map/at.html&#34;&gt;at()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_map/unordered_map/try_emplace.html&#34;&gt;try_emplace()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_map/unordered_map/insert_or_assign.html&#34;&gt;insert_or_assign()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_map/unordered_map/bucket.html&#34;&gt;bucket()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_map/unordered_multimap.html&#34;&gt;std::unordered_multimap&lt;/a&gt;&lt;/code&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_map/unordered_multimap/bucket.html&#34;&gt;bucket()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_set/unordered_set.html&#34;&gt;std::unordered_set&lt;/a&gt;&lt;/code&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_set/unordered_set/insert.html&#34;&gt;insert()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_set/unordered_set/bucket.html&#34;&gt;bucket()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_set/unordered_multiset.html&#34;&gt;std::unordered_multiset&lt;/a&gt;&lt;/code&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_set/unordered_multiset/bucket.html&#34;&gt;bucket()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/span/span.html&#34;&gt;std::span&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/mdspan/mdspan.html&#34;&gt;std::mdspan&lt;/a&gt;&lt;/code&gt;の推論補助を改善&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ranges/concat_view.html&#34;&gt;std::views::concat&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ranges/cache_latest_view.html&#34;&gt;std::views::cache_latest&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ranges/as_input_view.html&#34;&gt;std::views::as_input&lt;/a&gt;&lt;/code&gt;を追加。これはパフォーマンス向上のために、Rangeを入力Rangeかつ非&lt;code&gt;&lt;a href=&#34;../reference/ranges/common_range.html&#34;&gt;common_range&lt;/a&gt;&lt;/code&gt; (イテレータと番兵の型を別する) に変換する&lt;/li&gt;
&lt;li&gt;Range関係の、償却定数時間での要素追加を行う機能を追加&lt;ul&gt;
&lt;li&gt;各viewクラスに&lt;code&gt;reserve_hint()&lt;/code&gt;メンバ関数を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ranges/reserve_hint.html&#34;&gt;std::ranges::reserve_hint()&lt;/a&gt;&lt;/code&gt;関数を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ranges/approximately_sized_range.html&#34;&gt;std::ranges::approximately_sized_range&lt;/a&gt;&lt;/code&gt;コンセプトを追加&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;インデックス列を生成する&lt;code&gt;&lt;a href=&#34;../reference/ranges/indices.html&#34;&gt;std::views::indices&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;連続イテレータのコンセプト&lt;code&gt;&lt;a href=&#34;../reference/iterator/contiguous_iterator.html&#34;&gt;contiguous_iterator&lt;/a&gt;&lt;/code&gt;に、ポインタに変換できることを要件として追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/initializer_list/initializer_list.html&#34;&gt;std::initializer_list&lt;/a&gt;&lt;/code&gt;クラスを以下のように変更&lt;ul&gt;
&lt;li&gt;独自に定義されていた&lt;code&gt;&lt;a href=&#34;../reference/initializer_list/initializer_list/begin_free.html&#34;&gt;std::begin()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/initializer_list/initializer_list/end_free.html&#34;&gt;std::end()&lt;/a&gt;&lt;/code&gt;のオーバーロードを削除 (&lt;code&gt;std::cbegin()&lt;/code&gt;や&lt;code&gt;std::rend()&lt;/code&gt;のようなオーバーロードがなかったため、ほかとの不整合があった)&lt;/li&gt;
&lt;li&gt;メンバ関数&lt;code&gt;&lt;a href=&#34;../reference/initializer_list/initializer_list/data.html&#34;&gt;data()&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;メンバ関数&lt;code&gt;&lt;a href=&#34;../reference/initializer_list/initializer_list/empty.html&#34;&gt;empty()&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/valarray/valarray.html&#34;&gt;std::valarray&lt;/a&gt;&lt;/code&gt;クラスを以下のように変更&lt;ul&gt;
&lt;li&gt;独自に定義されていた&lt;code&gt;&lt;a href=&#34;../reference/valarray/valarray/begin_free.html&#34;&gt;std::begin()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/valarray/valarray/end_free.html&#34;&gt;std::end()&lt;/a&gt;&lt;/code&gt;のオーバーロードを削除 (&lt;code&gt;std::cbegin()&lt;/code&gt;や&lt;code&gt;std::rend()&lt;/code&gt;のようなオーバーロードがなかったため、ほかとの不整合があった)&lt;/li&gt;
&lt;li&gt;メンバ型&lt;code&gt;iterator&lt;/code&gt; / &lt;code&gt;const_iterator&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;メンバ関数&lt;code&gt;&lt;a href=&#34;../reference/valarray/valarray/begin.html&#34;&gt;begin()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/valarray/valarray/end.html&#34;&gt;end()&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;イテレータインタフェースの非メンバ関数&lt;code&gt;&lt;a href=&#34;../reference/iterator/begin.html&#34;&gt;std::begin()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/iterator/end.html&#34;&gt;std::end()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/iterator/cbegin.html&#34;&gt;std::cbegin()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/iterator/cend.html&#34;&gt;std::cend()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/iterator/rbegin.html&#34;&gt;std::rbegin()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/iterator/rend.html&#34;&gt;std::rend()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/iterator/crbegin.html&#34;&gt;std::crbegin()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/iterator/crend.html&#34;&gt;std::crend()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/iterator/size.html&#34;&gt;std::size()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/iterator/ssize.html&#34;&gt;std::ssize()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/iterator/empty.html&#34;&gt;std::empty()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/iterator/data.html&#34;&gt;std::data()&lt;/a&gt;&lt;/code&gt;を以下のように変更&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/initializer_list/initializer_list.html&#34;&gt;std::initializer_list&lt;/a&gt;&lt;/code&gt;型に対するオーバーロードを削除 (専用のオーバーロードを用意しなくても汎用オーバーロードが使用できるようになった)&lt;/li&gt;
&lt;li&gt;条件付き&lt;code&gt;noexcept&lt;/code&gt;指定を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Rangeインタフェースの非メンバ関数&lt;code&gt;&lt;a href=&#34;../reference/ranges/begin.html&#34;&gt;std::ranges::begin()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/ranges/end.html&#34;&gt;std::ranges::end()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/ranges/cbegin.html&#34;&gt;std::ranges::cbegin()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/ranges/cend.html&#34;&gt;std::ranges::cend()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/ranges/rbegin.html&#34;&gt;std::ranges::rbegin()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/ranges/rend.html&#34;&gt;std::ranges::rend()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/ranges/crbegin.html&#34;&gt;std::ranges::crbegin()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/ranges/crend.html&#34;&gt;std::ranges::crend()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/ranges/size.html&#34;&gt;std::ranges::size()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/ranges/ssize.html&#34;&gt;std::ranges::ssize()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/ranges/empty.html&#34;&gt;std::ranges::empty()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/ranges/data.html&#34;&gt;std::ranges::data()&lt;/a&gt;&lt;/code&gt;を以下のように変更&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/initializer_list/initializer_list.html&#34;&gt;std::initializer_list&lt;/a&gt;&lt;/code&gt;型に対するオーバーロードを削除 (専用のオーバーロードを用意しなくても汎用オーバーロードが使用できるようになった)&lt;/li&gt;
&lt;li&gt;条件付き&lt;code&gt;noexcept&lt;/code&gt;指定を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;以下のコンテナを&lt;code&gt;constexpr&lt;/code&gt;に対応&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/deque/deque.html&#34;&gt;std::deque&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/forward_list/forward_list.html&#34;&gt;std::forward_list&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/list/list.html&#34;&gt;std::list&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/map/map.html&#34;&gt;std::map&lt;/a&gt;&lt;/code&gt; (ただし&lt;code&gt;&lt;a href=&#34;../reference/node_handle/node_handle.html&#34;&gt;node_handle&lt;/a&gt;::&lt;a href=&#34;../reference/node_handle/node_handle/key.html&#34;&gt;key()&lt;/a&gt;&lt;/code&gt;を使用すると未定義動作)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/map/multimap.html&#34;&gt;std::multimap&lt;/a&gt;&lt;/code&gt; (ただし&lt;code&gt;&lt;a href=&#34;../reference/node_handle/node_handle.html&#34;&gt;node_handle&lt;/a&gt;::&lt;a href=&#34;../reference/node_handle/node_handle/key.html&#34;&gt;key()&lt;/a&gt;&lt;/code&gt;を使用すると未定義動作)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/set/set.html&#34;&gt;std::set&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/set/multiset.html&#34;&gt;std::multiset&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_map/unordered_map.html&#34;&gt;std::unordered_map&lt;/a&gt;&lt;/code&gt; (ハッシュ関数のカスタム化が必要) (ただし&lt;code&gt;&lt;a href=&#34;../reference/node_handle/node_handle.html&#34;&gt;node_handle&lt;/a&gt;::&lt;a href=&#34;../reference/node_handle/node_handle/key.html&#34;&gt;key()&lt;/a&gt;&lt;/code&gt;を使用すると未定義動作)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_map/unordered_multimap.html&#34;&gt;std::unordered_multimap&lt;/a&gt;&lt;/code&gt; (ハッシュ関数のカスタム化が必要) (ただし&lt;code&gt;&lt;a href=&#34;../reference/node_handle/node_handle.html&#34;&gt;node_handle&lt;/a&gt;::&lt;a href=&#34;../reference/node_handle/node_handle/key.html&#34;&gt;key()&lt;/a&gt;&lt;/code&gt;を使用すると未定義動作)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_set/unordered_set.html&#34;&gt;std::unordered_set&lt;/a&gt;&lt;/code&gt; (ハッシュ関数のカスタム化が必要)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_set/unordered_multiset.html&#34;&gt;std::unordered_multiset&lt;/a&gt;&lt;/code&gt; (ハッシュ関数のカスタム化が必要)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/flat_map/flat_map.html&#34;&gt;std::flat_map&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/flat_map/flat_multimap.html&#34;&gt;std::flat_multimap&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/flat_set/flat_set.html&#34;&gt;std::flat_set&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/flat_set/flat_multiset.html&#34;&gt;std::flat_multiset&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/queue/queue.html&#34;&gt;std::queue&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/queue/priority_queue.html&#34;&gt;std::priority_queue&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/stack/stack.html&#34;&gt;std::stack&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;アルゴリズム&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm.html&#34;&gt;&amp;lt;algorithm&amp;gt;&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;のアルゴリズムを並列実行に対応&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm.html&#34;&gt;&amp;lt;algorithm&amp;gt;&lt;/a&gt;&lt;/code&gt;の以下のアルゴリズムを&lt;code&gt;constexpr&lt;/code&gt;に対応&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/stable_sort.html&#34;&gt;std::stable_sort()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_stable_sort.html&#34;&gt;std::ranges::stable_sort()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/stable_partition.html&#34;&gt;std::stable_partition()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_stable_partition.html&#34;&gt;std::ranges::stable_partition()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/inplace_merge.html&#34;&gt;std::inplace_merge()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_inplace_merge.html&#34;&gt;std::ranges::inplace_merge()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;の以下のアルゴリズムを&lt;code&gt;constexpr&lt;/code&gt;に対応&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/uninitialized_default_construct.html&#34;&gt;std::uninitialized_default_construct()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/memory/ranges_uninitialized_default_construct.html&#34;&gt;std::ranges::uninitialized_default_construct()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/uninitialized_default_construct_n.html&#34;&gt;std::uninitialized_default_construct_n()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/memory/ranges_uninitialized_default_construct_n.html&#34;&gt;std::ranges::uninitialized_default_construct_n()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/uninitialized_value_construct.html&#34;&gt;std::uninitialized_value_construct()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/memory/ranges_uninitialized_value_construct.html&#34;&gt;std::ranges::uninitialized_value_construct()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/uninitialized_value_construct_n.html&#34;&gt;std::uninitialized_value_construct_n()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/memory/ranges_uninitialized_value_construct_n.html&#34;&gt;std::ranges::uninitialized_value_construct_n()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/uninitialized_copy.html&#34;&gt;std::uninitialized_copy()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/memory/ranges_uninitialized_copy.html&#34;&gt;std::ranges::uninitialized_copy()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/uninitialized_copy_n.html&#34;&gt;std::uninitialized_copy_n()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/memory/ranges_uninitialized_copy_n.html&#34;&gt;std::ranges::uninitialized_copy_n()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/uninitialized_move.html&#34;&gt;std::uninitialized_move()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/memory/ranges_uninitialized_move.html&#34;&gt;std::ranges::uninitialized_move()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/uninitialized_move_n.html&#34;&gt;std::uninitialized_move_n()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/memory/ranges_uninitialized_move_n.html&#34;&gt;std::ranges::uninitialized_move_n()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/uninitialized_fill.html&#34;&gt;std::uninitialized_fill()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/memory/ranges_uninitialized_fill.html&#34;&gt;std::ranges::uninitialized_fill()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/uninitialized_fill_n.html&#34;&gt;std::uninitialized_fill_n()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/memory/ranges_uninitialized_fill_n.html&#34;&gt;std::ranges::uninitialized_fill_n()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Rangeアルゴリズムが完全型を要求しないようにするため、&lt;code&gt;&lt;a href=&#34;../reference/iterator/projected.html&#34;&gt;std::projected&lt;/a&gt;&lt;/code&gt;の制約を緩和&lt;/li&gt;
&lt;li&gt;以下のアルゴリズムに、値を波カッコ初期化で渡せるよう制約を追加&lt;ul&gt;
&lt;li&gt;&lt;code&gt;std::erase()&lt;/code&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/string/basic_string.html&#34;&gt;std::basic_string&lt;/a&gt;&lt;/code&gt;版&lt;code&gt;&lt;a href=&#34;../reference/string/basic_string/erase_free.html&#34;&gt;std::erase()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/deque/deque.html&#34;&gt;std::deque&lt;/a&gt;&lt;/code&gt;版&lt;code&gt;&lt;a href=&#34;../reference/deque/deque/erase_free.html&#34;&gt;std::erase()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/forward_list/forward_list.html&#34;&gt;std::forward_list&lt;/a&gt;&lt;/code&gt;版&lt;code&gt;&lt;a href=&#34;../reference/forward_list/forward_list/erase_free.html&#34;&gt;std::erase()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/list/list.html&#34;&gt;std::list&lt;/a&gt;&lt;/code&gt;版&lt;code&gt;&lt;a href=&#34;../reference/list/list/erase_free.html&#34;&gt;std::erase()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/vector/vector.html&#34;&gt;std::vector&lt;/a&gt;&lt;/code&gt;版&lt;code&gt;&lt;a href=&#34;../reference/vector/vector/erase_free.html&#34;&gt;std::erase()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/find.html&#34;&gt;std::find()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_find.html&#34;&gt;std::ranges::find()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_find_last.html&#34;&gt;std::ranges::find_last()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/count.html&#34;&gt;std::count()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_count.html&#34;&gt;std::ranges::count()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/search_n.html&#34;&gt;std::search_n()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_search_n.html&#34;&gt;std::ranges::search_n()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/replace.html&#34;&gt;std::replace()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/algorithm/replace.html&#34;&gt;std::ranges::replace()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/replace_if.html&#34;&gt;std::replace_if()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/algorithm/replace_if.html&#34;&gt;std::ranges::replace_if()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/replace_copy.html&#34;&gt;std::ranges::replace_copy()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/replace_copy_if.html&#34;&gt;std::replace_copy_if()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/algorithm/replace_copy_if.html&#34;&gt;std::ranges::replace_copy_if()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/fill.html&#34;&gt;std::fill()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_fill.html&#34;&gt;std::ranges::fill()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/fill_n.html&#34;&gt;std::fill_n()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_fill_n.html&#34;&gt;std::ranges::fill_n()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/remove.html&#34;&gt;std::remove()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_remove.html&#34;&gt;std::ranges::remove()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/remove_copy.html&#34;&gt;std::remove_copy()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_remove_copy.html&#34;&gt;std::ranges::remove_copy()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/lower_bound.html&#34;&gt;std::lower_bound()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_lower_bound.html&#34;&gt;std::ranges::lower_bound()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/upper_bound.html&#34;&gt;std::upper_bound()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_upper_bound.html&#34;&gt;std::ranges::upper_bound()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/equal_range.html&#34;&gt;std::equal_range()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_equal_range.html&#34;&gt;std::ranges::equal_range()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/binary_search.html&#34;&gt;std::binary_search()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_binary_search.html&#34;&gt;std::ranges::binary_search()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_fold_left.html&#34;&gt;std::ranges::fold_left()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_fold_right.html&#34;&gt;std::ranges::fold_right()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_contains.html&#34;&gt;std::ranges::contains()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/uninitialized_fill.html&#34;&gt;std::uninitialized_fill()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/memory/ranges_uninitialized_fill.html&#34;&gt;std::ranges::uninitialized_fill()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/uninitialized_fill_n.html&#34;&gt;std::uninitialized_fill_n()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/memory/ranges_uninitialized_fill_n.html&#34;&gt;std::ranges::uninitialized_fill_n()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;関数オブジェクト&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;所有権を保持しない&lt;code&gt;&lt;a href=&#34;../reference/functional/function.html&#34;&gt;std::function&lt;/a&gt;&lt;/code&gt;として、&lt;code&gt;&lt;a href=&#34;../reference/functional.html&#34;&gt;&amp;lt;functional&amp;gt;&lt;/a&gt;&lt;/code&gt;に&lt;code&gt;&lt;a href=&#34;../reference/functional/function_ref.html&#34;&gt;std::function_ref&lt;/a&gt;&lt;/code&gt;クラスを追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/functional/move_only_function.html&#34;&gt;std::move_only_function&lt;/a&gt;&lt;/code&gt;のコピー可能版として、&lt;code&gt;&lt;a href=&#34;../reference/functional.html&#34;&gt;&amp;lt;functional&amp;gt;&lt;/a&gt;&lt;/code&gt;に&lt;code&gt;&lt;a href=&#34;../reference/functional/copyable_function.html&#34;&gt;std::copyable_function&lt;/a&gt;&lt;/code&gt;クラスを追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/functional/bind_front.html&#34;&gt;std::bind_front()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/functional/bind_back.html&#34;&gt;std::bind_back()&lt;/a&gt;&lt;/code&gt;に、非型テンプレート引数として関数を指定するオーバーロードを追加&lt;ul&gt;
&lt;li&gt;関連して、非型テンプレート引数の関数オブジェクトを反転させられるよう、&lt;code&gt;&lt;a href=&#34;../reference/functional/not_fn.html&#34;&gt;not_fn()&lt;/a&gt;&lt;/code&gt;に非型テンプレート引数版のオーバーロードを追加&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/functional/reference_wrapper.html&#34;&gt;std::reference_wrapper&lt;/a&gt;&lt;/code&gt;に、比較演算子&lt;code&gt;&lt;a href=&#34;../reference/functional/reference_wrapper/op_equal.html&#34;&gt;==&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/functional/reference_wrapper/op_compare_3way.html&#34;&gt;&amp;lt;=&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;文字列&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/charconv.html&#34;&gt;&amp;lt;charconv&amp;gt;&lt;/a&gt;&lt;/code&gt;の変換結果&lt;code&gt;&lt;a href=&#34;../reference/charconv/to_chars_result.html&#34;&gt;std::to_chars_result&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/charconv/from_chars_result.html&#34;&gt;std::from_chars_result&lt;/a&gt;&lt;/code&gt;に、変換が正しく完了したかを判定する&lt;code&gt;operator bool&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/string/to_string.html&#34;&gt;std::to_string()&lt;/a&gt;&lt;/code&gt;の仕様が&lt;code&gt;std::sprintf()&lt;/code&gt;で説明されていたが、&lt;code&gt;&lt;a href=&#34;../reference/format/format.html&#34;&gt;std::format()&lt;/a&gt;&lt;/code&gt;で定義するよう仕様を変更&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/sstream/basic_istringstream.html&#34;&gt;std::basic_istringstream&lt;/a&gt;&lt;/code&gt;および&lt;code&gt;&lt;a href=&#34;../reference/sstream/basic_ostringstream.html&#34;&gt;std::basic_ostringstream&lt;/a&gt;&lt;/code&gt;のコンストラクタおよび&lt;code&gt;str()&lt;/code&gt;メンバ関数に、&lt;code&gt;&lt;a href=&#34;../reference/string_view/basic_string_view.html&#34;&gt;std::basic_string_view&lt;/a&gt;&lt;/code&gt;を受け取るオーバーロードを追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/format/format.html&#34;&gt;std::format()&lt;/a&gt;&lt;/code&gt;に、以下の改善を導入&lt;ul&gt;
&lt;li&gt;ポインタ出力のサポートを追加&lt;/li&gt;
&lt;li&gt;幅と精度を動的に指定した場合でも型の検証がコンパイル時に行われるよう仕様を見直し&lt;/li&gt;
&lt;li&gt;コンパイル時の書式文字列だけでなく、実行時の書式文字列を渡せるよう仕様修正&lt;/li&gt;
&lt;li&gt;非ロケール版を&lt;code&gt;constexpr&lt;/code&gt;に対応&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/string/to_string.html&#34;&gt;std::to_string()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/string/to_wstring.html&#34;&gt;std::to_wstring()&lt;/a&gt;&lt;/code&gt;の整数オーバーロードが&lt;code&gt;constexpr&lt;/code&gt;に対応&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/string/basic_string.html&#34;&gt;std::basic_string&lt;/a&gt;&lt;/code&gt;クラスと&lt;code&gt;&lt;a href=&#34;../reference/string_view/basic_string_view.html&#34;&gt;std::basic_string_view&lt;/a&gt;&lt;/code&gt;クラスに、部分文字列を&lt;code&gt;&lt;a href=&#34;../reference/string_view/basic_string_view.html&#34;&gt;std::basic_string_view&lt;/a&gt;&lt;/code&gt;として取得するメンバ関数&lt;code&gt;subview()&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/string/basic_string.html&#34;&gt;std::basic_string&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/string_view/basic_string_view.html&#34;&gt;std::basic_string_view&lt;/a&gt;&lt;/code&gt;を&lt;code&gt;&lt;a href=&#34;../reference/string/basic_string.html&#34;&gt;std::basic_string&lt;/a&gt;&lt;/code&gt;として連結させる&lt;code&gt;operator+&lt;/code&gt;を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;ファイル&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;ファイルのネイティブハンドルを取得できるよう、&lt;code&gt;&lt;a href=&#34;../reference/fstream/basic_filebuf.html&#34;&gt;std::basic_filebuf&lt;/a&gt;&lt;/code&gt;、&lt;code&gt;&lt;a href=&#34;../reference/fstream/basic_ifstream.html&#34;&gt;std::basic_ifstream&lt;/a&gt;&lt;/code&gt;、&lt;code&gt;&lt;a href=&#34;../reference/fstream/basic_ofstream.html&#34;&gt;std::basic_ofstream&lt;/a&gt;&lt;/code&gt;、&lt;code&gt;&lt;a href=&#34;../reference/fstream/basic_fstream.html&#34;&gt;std::basic_fstream&lt;/a&gt;&lt;/code&gt;クラスに、以下のメンバを追加&lt;ul&gt;
&lt;li&gt;&lt;code&gt;native_handle_type&lt;/code&gt;型&lt;/li&gt;
&lt;li&gt;&lt;code&gt;native_handle()&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/filesystem/path.html&#34;&gt;std::filesystem::path&lt;/a&gt;&lt;/code&gt;クラスに、文字列フォーマットのサポートを追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/filesystem/path.html&#34;&gt;std::filesystem::path&lt;/a&gt;&lt;/code&gt;クラスに、出力用の文字列を取得するための、以下のメンバ関数を追加&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/filesystem/path/display_string.html&#34;&gt;display_string()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/filesystem/path/native_encoded_string.html&#34;&gt;native_encoded_string()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/filesystem/path/generic_display_string.html&#34;&gt;generic_display_string()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/filesystem/path/generic_native_encoded_string.html&#34;&gt;generic_native_encoded_string()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;入出力&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/print/print.html&#34;&gt;std::print()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/print/println.html&#34;&gt;std::println()&lt;/a&gt;&lt;/code&gt;に、ロックを取得せず高速に書き出す最適化を許可&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/print/println.html&#34;&gt;std::println()&lt;/a&gt;&lt;/code&gt;に、改行のみを出力するオーバーロードを追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/print/print.html&#34;&gt;std::print()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/print/println.html&#34;&gt;std::println()&lt;/a&gt;&lt;/code&gt;をより高速にできる最適化が可能か判定する&lt;code&gt;&lt;a href=&#34;../reference/format/enable_nonlocking_formatter_optimization.html&#34;&gt;std::enable_nonlocking_formatter_optimization&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/istream/basic_istream.html&#34;&gt;std::basic_istream&lt;/a&gt;::&lt;a href=&#34;../reference/istream/basic_istream/ignore.html&#34;&gt;ignore()&lt;/a&gt;&lt;/code&gt;メンバ関数に、区切り文字として&lt;code&gt;char&lt;/code&gt;型をとるオーバーロードを追加&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;並行・並列・非同期処理&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/execution.html&#34;&gt;&amp;lt;execution&amp;gt;&lt;/a&gt;&lt;/code&gt;に汎用的な非同期実行を管理するフレームワークを追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic.html&#34;&gt;std::atomic&lt;/a&gt;&lt;/code&gt;オブジェクトに対する2つの値の最大値・最小値を取得する関数として、以下を追加&lt;ul&gt;
&lt;li&gt;メンバ関数&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/fetch_max.html&#34;&gt;fetch_max()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/fetch_min.html&#34;&gt;fetch_min()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/fetch_fmaximum.html&#34;&gt;fetch_fmaximum()&lt;/a&gt;&lt;/code&gt; (浮動小数点数用)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/fetch_fminimum.html&#34;&gt;fetch_fminimum()&lt;/a&gt;&lt;/code&gt; (浮動小数点数用)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/fetch_fmaximum_num.html&#34;&gt;fetch_fmaximum_num()&lt;/a&gt;&lt;/code&gt; (浮動小数点数用)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/fetch_fminimum_num.html&#34;&gt;fetch_fminimum_num()&lt;/a&gt;&lt;/code&gt; (浮動小数点数用)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;非メンバ関数として&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_fetch_max.html&#34;&gt;std::atomic_fetch_max()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_fetch_max_explicit.html&#34;&gt;std::atomic_fetch_max_explicit()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_fetch_min.html&#34;&gt;std::atomic_fetch_min()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_fetch_min_explicit.html&#34;&gt;std::atomic_fetch_min_explicit()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic.html&#34;&gt;std::atomic&lt;/a&gt;&lt;/code&gt;クラスと&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_ref.html&#34;&gt;std::atomic_ref&lt;/a&gt;&lt;/code&gt;クラスに、現在の値を読み込まず (fetchせず) に加算などをする高速な縮約用の操作として、以下を追加&lt;ul&gt;
&lt;li&gt;メンバ関数&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/store_add.html&#34;&gt;store_add()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/store_sub.html&#34;&gt;store_sub()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/store_and.html&#34;&gt;store_and()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/store_or.html&#34;&gt;store_or()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/store_xor.html&#34;&gt;store_xor()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/store_max.html&#34;&gt;store_max()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/store_min.html&#34;&gt;store_min()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/store_fmaximum.html&#34;&gt;store_fmaximum()&lt;/a&gt;&lt;/code&gt; (浮動小数点数用)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/store_fminimum.html&#34;&gt;store_fminimum()&lt;/a&gt;&lt;/code&gt; (浮動小数点数用)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/store_fmaximum_num.html&#34;&gt;store_fmaximum_num()&lt;/a&gt;&lt;/code&gt; (浮動小数点数用)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/store_fminimum_num.html&#34;&gt;store_fminimum_num()&lt;/a&gt;&lt;/code&gt; (浮動小数点数用)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;非メンバ関数&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_store_add.html&#34;&gt;std::atomic_store_add()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_store_add_explicit.html&#34;&gt;std::atomic_store_add_explicit()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_store_sub.html&#34;&gt;std::atomic_store_sub()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_store_sub_explicit.html&#34;&gt;std::atomic_store_sub_explicit()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_store_and.html&#34;&gt;std::atomic_store_and()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_store_and_explicit.html&#34;&gt;std::atomic_store_and_explicit()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_store_or.html&#34;&gt;std::atomic_store_or()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_store_or_explicit.html&#34;&gt;std::atomic_store_or_explicit()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_store_xor.html&#34;&gt;std::atomic_store_xor()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_store_xor_explicit.html&#34;&gt;std::atomic_store_xor_explicit()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_store_max.html&#34;&gt;std::atomic_store_max()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_store_max_explicit.html&#34;&gt;std::atomic_store_max_explicit()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_store_min.html&#34;&gt;std::atomic_store_min()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_store_min_explicit.html&#34;&gt;std::atomic_store_min_explicit()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_ref.html&#34;&gt;std::atomic_ref&lt;/a&gt;&lt;/code&gt;クラスに、参照するオブジェクトのアドレスを取得する&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_ref/address.html&#34;&gt;address()&lt;/a&gt;&lt;/code&gt;メンバ関数を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic.html&#34;&gt;std::atomic&lt;/a&gt;&lt;/code&gt;クラスのテンプレートパラメータとしてCV修飾された型を禁止&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_ref.html&#34;&gt;std::atomic_ref&lt;/a&gt;&lt;/code&gt;クラスのテンプレートパラメータとして、CV修飾された型を受け取れるようにした (内部でCV修飾が外される)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic.html&#34;&gt;&amp;lt;atomic&amp;gt;&lt;/a&gt;&lt;/code&gt;ライブラリのアトミック操作を&lt;code&gt;constexpr&lt;/code&gt;対応&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;スマートポインタ・メモリ関連&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;動的確保したオブジェクトに値の意味論をもたせてディープコピーさせるユーティリティクラスとして、&lt;code&gt;&lt;a href=&#34;../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;に&lt;code&gt;&lt;a href=&#34;../reference/memory/indirect.html&#34;&gt;std::indirect&lt;/a&gt;&lt;/code&gt;クラスと&lt;code&gt;&lt;a href=&#34;../reference/memory/polymorphic.html&#34;&gt;std::polymorphic&lt;/a&gt;&lt;/code&gt;クラスを追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/weak_ptr.html&#34;&gt;std::weak_ptr&lt;/a&gt;&lt;/code&gt;を非順序連想コンテナのキーとして使用できるよう、&lt;code&gt;&lt;a href=&#34;../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;に所有権ベースのハッシュ値を取得する関数オブジェクト&lt;code&gt;&lt;a href=&#34;../reference/memory/owner_hash.html&#34;&gt;std::owner_hash&lt;/a&gt;&lt;/code&gt;、および所有権ベースの等値比較を行う関数オブジェクト&lt;code&gt;&lt;a href=&#34;../reference/memory/owner_equal.html&#34;&gt;std::owner_equal&lt;/a&gt;&lt;/code&gt;を追加&lt;ul&gt;
&lt;li&gt;関連して、&lt;code&gt;&lt;a href=&#34;../reference/memory/shared_ptr.html&#34;&gt;std::shared_ptr&lt;/a&gt;&lt;/code&gt;クラスと&lt;code&gt;&lt;a href=&#34;../reference/memory/weak_ptr.html&#34;&gt;std::weak_ptr&lt;/a&gt;&lt;/code&gt;クラスのメンバ関数として、&lt;code&gt;owner_hash()&lt;/code&gt;と&lt;code&gt;owner_equal()&lt;/code&gt;を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/shared_ptr.html&#34;&gt;std::shared_ptr&lt;/a&gt;&lt;/code&gt;クラスとその関連機能を&lt;code&gt;constexpr&lt;/code&gt;対応&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;日付・時間&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono.html&#34;&gt;&amp;lt;chrono&amp;gt;&lt;/a&gt;&lt;/code&gt;の以下のクラスに、ハッシュ値サポートとして&lt;code&gt;&lt;a href=&#34;../reference/functional/hash.html&#34;&gt;std::hash&lt;/a&gt;&lt;/code&gt;の特殊化を追加&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/duration.html&#34;&gt;std::chrono::duration&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/time_point.html&#34;&gt;std::chrono::time_point&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/day.html&#34;&gt;std::chrono::day&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/month.html&#34;&gt;std::chrono::month&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/year.html&#34;&gt;std::chrono::year&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/weekday.html&#34;&gt;std::chrono::weekday&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/weekday_indexed.html&#34;&gt;std::chrono::weekday_indexed&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/weekday_last.html&#34;&gt;std::chrono::weekday_last&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/month_day.html&#34;&gt;std::chrono::month_day&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/month_day_last.html&#34;&gt;std::chrono::month_day_last&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/month_weekday.html&#34;&gt;std::chrono::month_weekday&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/month_weekday_last.html&#34;&gt;std::chrono::month_weekday_last&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/year_month.html&#34;&gt;std::chrono::year_month&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/year_month_day.html&#34;&gt;std::chrono::year_month_day&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/year_month_day_last.html&#34;&gt;std::chrono::year_month_day_last&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/year_month_weekday.html&#34;&gt;std::chrono::year_month_weekday&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/year_month_weekday_last.html&#34;&gt;std::chrono::year_month_weekday_last&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/zoned_time.html&#34;&gt;std::chrono::zoned_time&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/leap_second.html&#34;&gt;std::chrono::leap_second&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;数値&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath.html&#34;&gt;&amp;lt;cmath&amp;gt;&lt;/a&gt;&lt;/code&gt;に、浮動小数点数の最大値・最小値を求める以下の関数を追加&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/fmaximum.html&#34;&gt;std::fmaximum()&lt;/a&gt;&lt;/code&gt; (-0.0と+0.0では+0.0を返し、NaNと数値ではNaNを返す)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/fmaximum_num.html&#34;&gt;std::fmaximum_num()&lt;/a&gt;&lt;/code&gt; (-0.0と+0.0では+0.0を返し、NaNと数値では数値を返す)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/fminimum.html&#34;&gt;std::fminimum()&lt;/a&gt;&lt;/code&gt; (-0.0と+0.0では-0.0を返し、NaNと数値ではNaNを返す)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/fminimum_num.html&#34;&gt;std::fminimum_num()&lt;/a&gt;&lt;/code&gt; (-0.0と+0.0では-0.0を返し、NaNと数値では数値を返す)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/numeric.html&#34;&gt;&amp;lt;numeric&amp;gt;&lt;/a&gt;&lt;/code&gt;に、飽和演算 (Saturation Arithmetic) として、型の表現可能な範囲で演算を行う以下の関数を追加&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/numeric/saturating_add.html&#34;&gt;std::saturating_add()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/numeric/saturating_sub.html&#34;&gt;std::saturating_sub()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/numeric/saturating_mul.html&#34;&gt;std::saturating_mul()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/numeric/saturating_div.html&#34;&gt;std::saturating_div()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/numeric/saturating_cast.html&#34;&gt;std::saturating_cast()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex.html&#34;&gt;std::complex&lt;/a&gt;&lt;/code&gt;を構造化束縛や、将来のパターンマッチで使用できるようタプルインタフェースの特殊化を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/random.html&#34;&gt;&amp;lt;random&amp;gt;&lt;/a&gt;&lt;/code&gt;の範囲&lt;code&gt;[0, 1)&lt;/code&gt;の乱数を生成する&lt;code&gt;&lt;a href=&#34;../reference/random/generate_canonical.html&#34;&gt;std::generate_canonical()&lt;/a&gt;&lt;/code&gt;を、望ましい統計的性質を保証するようアルゴリズムと制約を変更&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/random.html&#34;&gt;&amp;lt;random&amp;gt;&lt;/a&gt;&lt;/code&gt;に、乱数列を生成する&lt;code&gt;&lt;a href=&#34;../reference/random/generate_random.html&#34;&gt;std::ranges::generate_random()&lt;/a&gt;&lt;/code&gt;関数を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/random.html&#34;&gt;&amp;lt;random&amp;gt;&lt;/a&gt;&lt;/code&gt;に、乱数生成器は並列シミュレーションに効果的なカウンターベースのPhilox乱数生成器として、&lt;code&gt;&lt;a href=&#34;../reference/random/philox_engine.html&#34;&gt;std::philox_engine&lt;/a&gt;&lt;/code&gt;クラス、およびその別名である&lt;code&gt;&lt;a href=&#34;../reference/random/philox4x32.html&#34;&gt;std::philox4x32&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/random/philox4x64.html&#34;&gt;std::philox4x64&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/random.html&#34;&gt;&amp;lt;random&amp;gt;&lt;/a&gt;&lt;/code&gt;の乱数生成器に&lt;code&gt;signed char&lt;/code&gt;と&lt;code&gt;unsigned char&lt;/code&gt;のサポートを追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath.html&#34;&gt;&amp;lt;cmath&amp;gt;&lt;/a&gt;&lt;/code&gt;の以下の関数を、&lt;code&gt;constexpr&lt;/code&gt;に対応 (特殊関数と、グローバルの丸めモードに依存する丸め関数以外の全て)&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/cos.html&#34;&gt;std::cos()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/sin.html&#34;&gt;std::sin()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/tan.html&#34;&gt;std::tan()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/cosh.html&#34;&gt;std::cosh()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/sinh.html&#34;&gt;std::sinh()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/tanh.html&#34;&gt;std::tanh()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/acos.html&#34;&gt;std::acos()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/asin.html&#34;&gt;std::asin()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/atan.html&#34;&gt;std::atan()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/atan2.html&#34;&gt;std::atan2()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/acosh.html&#34;&gt;std::acosh()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/asinh.html&#34;&gt;std::asinh()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/atanh.html&#34;&gt;std::atanh()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/exp.html&#34;&gt;std::exp()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/exp2.html&#34;&gt;std::exp2()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/expm1.html&#34;&gt;std::expm1()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/log.html&#34;&gt;std::log()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/log10.html&#34;&gt;std::log10()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/log1p.html&#34;&gt;std::log1p()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/log2.html&#34;&gt;std::log2()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/pow.html&#34;&gt;std::pow()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/sqrt.html&#34;&gt;std::sqrt()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/cbrt.html&#34;&gt;std::cbrt()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/hypot.html&#34;&gt;std::hypot()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/erf.html&#34;&gt;std::erf()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/erfc.html&#34;&gt;std::erfc()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/lgamma.html&#34;&gt;std::lgamma()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/tgamma.html&#34;&gt;std::tgamma()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex.html&#34;&gt;&amp;lt;complex&amp;gt;&lt;/a&gt;&lt;/code&gt;の以下の関数を、&lt;code&gt;constexpr&lt;/code&gt;に対応 (すべて)&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/abs.html&#34;&gt;std::abs()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/arg.html&#34;&gt;std::arg()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/proj.html&#34;&gt;std::proj()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/polar.html&#34;&gt;std::polar()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/cos.html&#34;&gt;std::cos()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/sin.html&#34;&gt;std::sin()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/tan.html&#34;&gt;std::tan()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/cosh.html&#34;&gt;std::cosh()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/sinh.html&#34;&gt;std::sinh()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/tanh.html&#34;&gt;std::tanh()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/acos.html&#34;&gt;std::acos()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/asin.html&#34;&gt;std::asin()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/atan.html&#34;&gt;std::atan()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/acosh.html&#34;&gt;std::acosh()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/asinh.html&#34;&gt;std::asinh()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/atanh.html&#34;&gt;std::atanh()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/exp.html&#34;&gt;std::exp()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/log.html&#34;&gt;std::log()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/log10.html&#34;&gt;std::log10()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/pow.html&#34;&gt;std::pow()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/sqrt.html&#34;&gt;std::sqrt()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/norm.html&#34;&gt;std::norm()&lt;/a&gt;&lt;/code&gt; (算術型オーバーロード)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/conj.html&#34;&gt;std::conj()&lt;/a&gt;&lt;/code&gt; (算術型オーバーロード)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/imag_free.html&#34;&gt;std::imag()&lt;/a&gt;&lt;/code&gt; (算術型オーバーロード)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/real_free.html&#34;&gt;std::real()&lt;/a&gt;&lt;/code&gt; (算術型オーバーロード)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;ユーティリティ&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/variant/variant.html&#34;&gt;std::variant&lt;/a&gt;&lt;/code&gt;クラスに、メンバ関数版の&lt;code&gt;&lt;a href=&#34;../reference/variant/variant/visit.html&#34;&gt;visit()&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/variant/monostate.html&#34;&gt;std::monostate&lt;/a&gt;&lt;/code&gt;とその比較演算子、&lt;code&gt;hash&lt;/code&gt;特殊化を、&lt;code&gt;&lt;a href=&#34;../reference/variant.html&#34;&gt;&amp;lt;variant&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダに加えて&lt;code&gt;&lt;a href=&#34;../reference/utility.html&#34;&gt;&amp;lt;utility&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダでも使用できるようにした&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/optional/optional.html&#34;&gt;std::optional&lt;/a&gt;&lt;/code&gt;クラスに、0もしくは1要素のRangeとして扱えるようにするための拡張として、イテレータインタフェースを追加&lt;ul&gt;
&lt;li&gt;&lt;code&gt;iterator&lt;/code&gt;型&lt;/li&gt;
&lt;li&gt;&lt;code&gt;const_iterator&lt;/code&gt;型&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/optional/optional/begin.html&#34;&gt;begin()&lt;/a&gt;&lt;/code&gt;メンバ関数&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/optional/optional/end.html&#34;&gt;end()&lt;/a&gt;&lt;/code&gt;メンバ関数&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/optional/optional.html&#34;&gt;std::optional&lt;/a&gt;&lt;/code&gt;に、参照を保持するための&lt;code&gt;T&amp;amp;&lt;/code&gt;の部分特殊化を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/tuple/apply.html&#34;&gt;std::apply&lt;/a&gt;&lt;/code&gt;の戻り値型推論をやめて、戻り値型用の&lt;code&gt;&lt;a href=&#34;../reference/type_traits/apply_result.html&#34;&gt;std::apply_result&lt;/a&gt;&lt;/code&gt;クラスを追加し、関連する以下の機能を追加&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/type_traits/is_applicable.html&#34;&gt;std::is_applicable&lt;/a&gt;&lt;/code&gt;型特性&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/type_traits/is_nothrow_applicable.html&#34;&gt;std::is_nothrow_applicable&lt;/a&gt;&lt;/code&gt;型特性&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/tuple/ignore.html&#34;&gt;std::ignore&lt;/a&gt;&lt;/code&gt;をファーストクラス・オブジェクトとして型を詳細に定義&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/bitset/bitset.html&#34;&gt;std::bitset&lt;/a&gt;&lt;/code&gt;に、&lt;code&gt;&lt;a href=&#34;../reference/string_view/basic_string_view.html&#34;&gt;std::basic_string_view&lt;/a&gt;&lt;/code&gt;を受け取るコンストラクタを追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ratio.html&#34;&gt;&amp;lt;ratio&amp;gt;&lt;/a&gt;&lt;/code&gt;に、新たなSI接頭辞として、以下を追加&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ratio/si_prefix.html&#34;&gt;ronna&lt;/a&gt;&lt;/code&gt; (10&lt;sup&gt;27&lt;/sup&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ratio/si_prefix.html&#34;&gt;ronto&lt;/a&gt;&lt;/code&gt; (10&lt;sup&gt;−27&lt;/sup&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ratio/si_prefix.html&#34;&gt;quetta&lt;/a&gt;&lt;/code&gt; (10&lt;sup&gt;30&lt;/sup&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ratio/si_prefix.html&#34;&gt;quecto&lt;/a&gt;&lt;/code&gt; (10&lt;sup&gt;−30&lt;/sup&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;定数式での例外送出が許可されることにともない、以下を&lt;code&gt;constexpr&lt;/code&gt;化&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/exception.html&#34;&gt;&amp;lt;exception&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダの以下の機能&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/exception/exception.html&#34;&gt;std::exception&lt;/a&gt;&lt;/code&gt;クラスの全メンバ関数&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/exception/bad_exception.html&#34;&gt;std::bad_exception&lt;/a&gt;&lt;/code&gt;クラスの&lt;code&gt;what()&lt;/code&gt;メンバ関数&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/exception/rethrow_exception.html&#34;&gt;std::rethrow_exception()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/exception/make_exception_ptr.html&#34;&gt;std::make_exception_ptr()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/new.html&#34;&gt;&amp;lt;new&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダの以下の機能&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/new/bad_alloc.html&#34;&gt;std::bad_alloc&lt;/a&gt;&lt;/code&gt;クラスの&lt;code&gt;what()&lt;/code&gt;メンバ関数&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/new/bad_array_new_length.html&#34;&gt;std::bad_array_new_length&lt;/a&gt;&lt;/code&gt;クラスの&lt;code&gt;what()&lt;/code&gt;メンバ関数&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/typeinfo.html&#34;&gt;&amp;lt;typeinfo&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダの以下の機能&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/typeinfo/bad_cast.html&#34;&gt;std::bad_cast&lt;/a&gt;&lt;/code&gt;クラスの&lt;code&gt;what()&lt;/code&gt;メンバ関数&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/typeinfo/bad_typeid.html&#34;&gt;std::bad_typeid&lt;/a&gt;&lt;/code&gt;クラスの&lt;code&gt;what()&lt;/code&gt;メンバ関数&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/stdexcept.html&#34;&gt;&amp;lt;stdexcept&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダの以下の機能&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/stdexcept.html&#34;&gt;std::domain_error&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/stdexcept.html&#34;&gt;std::invalid_argument&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/stdexcept.html&#34;&gt;std::length_error&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/stdexcept.html&#34;&gt;std::logic_error&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/stdexcept.html&#34;&gt;std::out_of_range&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/stdexcept.html&#34;&gt;std::runtime_error&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/stdexcept.html&#34;&gt;std::range_error&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/stdexcept.html&#34;&gt;std::overflow_error&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/stdexcept.html&#34;&gt;std::underflow_error&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/expected.html&#34;&gt;&amp;lt;expected&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダの以下の機能&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/expected/bad_expected_access.html&#34;&gt;std::bad_expected_access&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/optional.html&#34;&gt;&amp;lt;optional&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダの以下の機能&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/optional/bad_optional_access.html&#34;&gt;std::bad_optional_access&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/variant.html&#34;&gt;&amp;lt;variant&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダの以下の機能&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/variant/bad_variant_access.html&#34;&gt;std::bad_variant_access&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/format.html&#34;&gt;&amp;lt;format&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダの以下の機能&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/format/format_error.html&#34;&gt;std::format_error&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;に、ポインタのアライメントを判定する&lt;code&gt;&lt;a href=&#34;../reference/memory/is_sufficiently_aligned.html&#34;&gt;std::is_sufficiently_aligned()&lt;/a&gt;&lt;/code&gt;関数を追加。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/utility.html&#34;&gt;&amp;lt;utility&amp;gt;&lt;/a&gt;&lt;/code&gt;に、タイムトラベル最適化を抑止するための観測可能ポイントとして&lt;code&gt;&lt;a href=&#34;../reference/utility/observable_checkpoint.html&#34;&gt;std::observable_checkpoint()&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/exception/exception_ptr.html&#34;&gt;std::exception_ptr&lt;/a&gt;&lt;/code&gt;を指定した例外型にキャストする&lt;code&gt;&lt;a href=&#34;../reference/exception/exception_ptr_cast.html&#34;&gt;std::exception_ptr_cast()&lt;/a&gt;&lt;/code&gt;関数を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/compare.html&#34;&gt;&amp;lt;compare&amp;gt;&lt;/a&gt;&lt;/code&gt;に、型の順序を取得する&lt;code&gt;&lt;a href=&#34;../reference/compare/type_order.html&#34;&gt;std::type_order&lt;/a&gt;&lt;/code&gt;クラスを追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/utility.html&#34;&gt;&amp;lt;utility&amp;gt;&lt;/a&gt;&lt;/code&gt;に、定数を型として包むことで、関数の引数として渡しても定数式として扱えるようにする定数ラッパー&lt;code&gt;&lt;a href=&#34;../reference/utility/constant_wrapper.html&#34;&gt;std::constant_wrapper&lt;/a&gt;&lt;/code&gt;クラスと、それを簡潔に生成する変数テンプレート&lt;code&gt;&lt;a href=&#34;../reference/utility/constant_wrapper.html&#34;&gt;std::cw&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;デバッグ&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cassert/assert.html&#34;&gt;assert&lt;/a&gt;&lt;/code&gt;マクロの引数としてカンマを含む式を指定できるよう、可変引数化&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;型特性&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/type_traits.html&#34;&gt;&amp;lt;type_traits&amp;gt;&lt;/a&gt;&lt;/code&gt;に、共用体の指定されたメンバがアクティブかを定数式で判定するための関数として&lt;code&gt;&lt;a href=&#34;../reference/type_traits/is_within_lifetime.html&#34;&gt;std::is_within_lifetime()&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/type_traits.html&#34;&gt;&amp;lt;type_traits&amp;gt;&lt;/a&gt;&lt;/code&gt;に、仮想継承の関係を判定する&lt;code&gt;&lt;a href=&#34;../reference/type_traits/is_virtual_base_of.html&#34;&gt;std::is_virtual_base_of&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/utility/integer_sequence.html&#34;&gt;std::integer_sequence&lt;/a&gt;&lt;/code&gt;クラスを&lt;a href=&#34;cpp17/structured_bindings.html&#34;&gt;構造化束縛&lt;/a&gt;と&lt;a href=&#34;cpp26/expansion_statements.html&#34;&gt;template for文&lt;/a&gt;で使用できるようにするため、タプルインタフェースの特殊化を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;制約&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;間接実行に関連する制約から、共通参照の要件を削除&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/iterator/indirectly_unary_invocable.html&#34;&gt;std::indirectly_unary_invocable&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/iterator/indirectly_unary_invocable.html&#34;&gt;std::indirectly_regular_unary_invocable&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/iterator/indirect_unary_predicate.html&#34;&gt;std::indirect_unary_predicate&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/iterator/indirect_binary_predicate.html&#34;&gt;std::indirect_binary_predicate&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/iterator/indirect_equivalence_relation.html&#34;&gt;std::indirect_equivalence_relation&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/iterator/indirect_strict_weak_order.html&#34;&gt;std::indirect_strict_weak_order&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;機能の非推奨化&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/type_traits.html&#34;&gt;&amp;lt;type_traits&amp;gt;&lt;/a&gt;&lt;/code&gt;の&lt;code&gt;&lt;a href=&#34;../reference/type_traits/is_trivial.html&#34;&gt;std::is_trivial&lt;/a&gt;&lt;/code&gt;を非推奨化&lt;ul&gt;
&lt;li&gt;これは&lt;code&gt;&lt;a href=&#34;../reference/type_traits/is_trivially_copyable.html&#34;&gt;std::is_trivially_copyable&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/type_traits/is_trivially_default_constructible.html&#34;&gt;std::is_trivially_default_constructible&lt;/a&gt;&lt;/code&gt;の2つが合わさったものであるが、それらは異なる状況で必要になるものであった&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/memory_order.html&#34;&gt;std::memory_order::consume&lt;/a&gt;&lt;/code&gt;と、それに関連して&lt;code&gt;&lt;a href=&#34;../reference/atomic/kill_dependency.html&#34;&gt;std::kill_dependency()&lt;/a&gt;&lt;/code&gt;を非推奨化し、&lt;code&gt;&lt;a href=&#34;cpp11/attributes.html&#34;&gt;[[carries_dependency]]&lt;/a&gt;&lt;/code&gt;属性を削除&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/filesystem/path.html&#34;&gt;std::filesystem::path&lt;/a&gt;&lt;/code&gt;クラスの、以下の非テンプレート版メンバ関数を非推奨化&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/filesystem/path/string.html&#34;&gt;string()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/filesystem/path/generic_string.html&#34;&gt;generic_string()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;これらはOS依存のパス名エンコーディングへ変換するため、&lt;a href=&#34;../reference/iostream.html&#34;&gt;iostream&lt;/a&gt;・&lt;code&gt;&lt;a href=&#34;../reference/format/format.html&#34;&gt;std::format()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/print/print.html&#34;&gt;std::print()&lt;/a&gt;&lt;/code&gt;を含むほぼすべての標準のテキスト処理・入出力機能と互換性がなく、文字化けやデータ損失の原因になりやすい&lt;/li&gt;
&lt;li&gt;レガシーなシステムAPIにパスを渡す用途では、ネイティブエンコーディングへの変換であることを明確にした&lt;code&gt;&lt;a href=&#34;../reference/filesystem/path/native_encoded_string.html&#34;&gt;native_encoded_string()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/filesystem/path/generic_native_encoded_string.html&#34;&gt;generic_native_encoded_string()&lt;/a&gt;&lt;/code&gt;を使用する&lt;/li&gt;
&lt;li&gt;表示・フォーマットの用途では、&lt;code&gt;&lt;a href=&#34;../reference/filesystem/path/display_string.html&#34;&gt;display_string()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/filesystem/path/generic_display_string.html&#34;&gt;generic_display_string()&lt;/a&gt;&lt;/code&gt;、もしくは&lt;code&gt;&lt;a href=&#34;../reference/format/format.html&#34;&gt;std::format()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/print/print.html&#34;&gt;std::print()&lt;/a&gt;&lt;/code&gt;を使用する&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;非推奨の取り消し&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory_resource/polymorphic_allocator.html&#34;&gt;std::polymorphic_allocator&lt;/a&gt;::&lt;a href=&#34;../reference/memory_resource/polymorphic_allocator/destroy.html&#34;&gt;destroy()&lt;/a&gt;&lt;/code&gt;の非推奨を取り消し&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;機能の削除&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;C++98から非推奨となっていた&lt;code&gt;&amp;lt;strstream&amp;gt;&lt;/code&gt;ライブラリを削除&lt;/li&gt;
&lt;li&gt;C++17から非推奨となっていたUnicode変換ライブラリ&lt;code&gt;&lt;a href=&#34;../reference/codecvt.html&#34;&gt;&amp;lt;codecvt&amp;gt;&lt;/a&gt;&lt;/code&gt;と、&lt;code&gt;&lt;a href=&#34;../reference/locale/wstring_convert.html&#34;&gt;std::wstring_convert&lt;/a&gt;&lt;/code&gt;クラス、&lt;code&gt;&lt;a href=&#34;../reference/locale/wbuffer_convert.html&#34;&gt;std::wbuffer_convert&lt;/a&gt;&lt;/code&gt;クラスを削除&lt;/li&gt;
&lt;li&gt;C++20から非推奨となっていた、&lt;code&gt;&lt;a href=&#34;../reference/string/basic_string.html&#34;&gt;std::basic_string&lt;/a&gt;::&lt;a href=&#34;../reference/string/basic_string/reserve.html&#34;&gt;reserve()&lt;/a&gt;&lt;/code&gt;のパラメータなしのオーバーロードを削除&lt;/li&gt;
&lt;li&gt;C++20から非推奨となっていた&lt;code&gt;&lt;a href=&#34;../reference/memory/shared_ptr.html&#34;&gt;std::shared_ptr&lt;/a&gt;&lt;/code&gt;に対する、以下の古いアトミック操作関数のオーバーロードを削除&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/shared_ptr/atomic_is_lock_free.html&#34;&gt;std::atomic_is_lock_free&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/shared_ptr/atomic_load.html&#34;&gt;std::atomic_load&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/shared_ptr/atomic_load_explicit.html&#34;&gt;std::atomic_load_explicit&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/shared_ptr/atomic_store.html&#34;&gt;std::atomic_store&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/shared_ptr/atomic_store_explicit.html&#34;&gt;std::atomic_store_explicit&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/shared_ptr/atomic_exchange.html&#34;&gt;std::atomic_exchange&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/shared_ptr/atomic_exchange_explicit.html&#34;&gt;std::atomic_exchange_explicit&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/shared_ptr/atomic_compare_exchange_weak.html&#34;&gt;std::atomic_compare_exchange_weak&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/shared_ptr/atomic_compare_exchange_strong.html&#34;&gt;std::atomic_compare_exchange_strong&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/shared_ptr/atomic_compare_exchange_weak_explicit.html&#34;&gt;std::atomic_compare_exchange_weak_explicit&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/shared_ptr/atomic_compare_exchange_strong_explicit.html&#34;&gt;std::atomic_compare_exchange_strong_explicit&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;C++23から非推奨となっていた、&lt;code&gt;&lt;a href=&#34;../reference/memory/allocator.html&#34;&gt;std::allocator&lt;/a&gt;&lt;/code&gt;のメンバ型&lt;code&gt;is_always_equal&lt;/code&gt;を削除&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;取り決め&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;C言語の参照をC17からC23に更新。これにともない、Cライブラリ由来のヘッダに以下の変更が入った&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cstdlib.html&#34;&gt;&amp;lt;cstdlib&amp;gt;&lt;/a&gt;&lt;/code&gt;: &lt;code&gt;&lt;a href=&#34;../reference/cstdlib/free_sized.html&#34;&gt;free_sized()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/cstdlib/free_aligned_sized.html&#34;&gt;free_aligned_sized()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/cstdlib/memalignment.html&#34;&gt;memalignment()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/cstdlib/strfromf.html&#34;&gt;strfromf()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/cstdlib/strfromd.html&#34;&gt;strfromd()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/cstdlib/strfroml.html&#34;&gt;strfroml()&lt;/a&gt;&lt;/code&gt;を追加。&lt;code&gt;&lt;a href=&#34;../reference/cstdlib/bsearch.html&#34;&gt;bsearch()&lt;/a&gt;&lt;/code&gt;に&lt;code&gt;const&lt;/code&gt;版オーバーロードを追加。&lt;code&gt;&lt;a href=&#34;../reference/cstdlib/realloc.html&#34;&gt;realloc()&lt;/a&gt;&lt;/code&gt;にサイズ&lt;code&gt;0&lt;/code&gt;を渡した場合がエラー性動作となった&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ctime.html&#34;&gt;&amp;lt;ctime&amp;gt;&lt;/a&gt;&lt;/code&gt;: &lt;code&gt;&lt;a href=&#34;../reference/ctime/timespec_getres.html&#34;&gt;timespec_getres()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;timegm()&lt;/code&gt;・&lt;code&gt;gmtime_r()&lt;/code&gt;・&lt;code&gt;localtime_r()&lt;/code&gt;と、&lt;code&gt;TIME_MONOTONIC&lt;/code&gt;・&lt;code&gt;TIME_ACTIVE&lt;/code&gt;・&lt;code&gt;TIME_THREAD_ACTIVE&lt;/code&gt;・&lt;code&gt;__STDC_VERSION_TIME_H__&lt;/code&gt;を追加。&lt;code&gt;asctime()&lt;/code&gt;・&lt;code&gt;ctime()&lt;/code&gt;を非推奨化&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath.html&#34;&gt;&amp;lt;cmath&amp;gt;&lt;/a&gt;&lt;/code&gt;: &lt;code&gt;&lt;a href=&#34;../reference/cmath/nextup.html&#34;&gt;nextup()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/cmath/nextdown.html&#34;&gt;nextdown()&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cstdio.html&#34;&gt;&amp;lt;cstdio&amp;gt;&lt;/a&gt;&lt;/code&gt;: &lt;code&gt;_PRINTF_NAN_LEN_MAX&lt;/code&gt;・&lt;code&gt;__STDC_VERSION_STDIO_H__&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cinttypes.html&#34;&gt;&amp;lt;cinttypes&amp;gt;&lt;/a&gt;&lt;/code&gt;: 2進数用の書式指定マクロ (&lt;code&gt;PRIb&lt;/code&gt;&lt;em&gt;N&lt;/em&gt;・&lt;code&gt;SCNb&lt;/code&gt;&lt;em&gt;N&lt;/em&gt;等) と&lt;code&gt;__STDC_VERSION_INTTYPES_H__&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cfloat.html&#34;&gt;&amp;lt;cfloat&amp;gt;&lt;/a&gt;&lt;/code&gt;: &lt;code&gt;&lt;a href=&#34;../reference/cmath/infinity.html&#34;&gt;INFINITY&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/cmath/nan.html&#34;&gt;NAN&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/cfloat/flt_snan.html&#34;&gt;FLT_SNAN&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/cfloat/dbl_snan.html&#34;&gt;DBL_SNAN&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/cfloat/ldbl_snan.html&#34;&gt;LDBL_SNAN&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;__STDC_VERSION_FLOAT_H__&lt;/code&gt;を追加。&lt;code&gt;&lt;a href=&#34;../reference/cfloat/decimal_dig.html&#34;&gt;DECIMAL_DIG&lt;/a&gt;&lt;/code&gt;を非推奨化し、&lt;code&gt;&lt;a href=&#34;../reference/cfloat/flt_has_subnorm.html&#34;&gt;FLT_HAS_SUBNORM&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/cfloat/dbl_has_subnorm.html&#34;&gt;DBL_HAS_SUBNORM&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/cfloat/ldbl_has_subnorm.html&#34;&gt;LDBL_HAS_SUBNORM&lt;/a&gt;&lt;/code&gt;を廃止予定 (obsolescent) とした&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/climits.html&#34;&gt;&amp;lt;climits&amp;gt;&lt;/a&gt;&lt;/code&gt;: 各整数型の幅 (ビット数) を表す&lt;code&gt;&lt;a href=&#34;../reference/climits/bool_width.html&#34;&gt;BOOL_WIDTH&lt;/a&gt;&lt;/code&gt;等のマクロを追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cstdint.html&#34;&gt;&amp;lt;cstdint&amp;gt;&lt;/a&gt;&lt;/code&gt;: 各整数型の幅 (ビット数) を表す&lt;code&gt;&lt;a href=&#34;../reference/cstdint/int8_width.html&#34;&gt;INT8_WIDTH&lt;/a&gt;&lt;/code&gt;等のマクロと、&lt;code&gt;__STDC_VERSION_STDINT_H__&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cstring.html&#34;&gt;&amp;lt;cstring&amp;gt;&lt;/a&gt;&lt;/code&gt;: &lt;code&gt;memccpy()&lt;/code&gt;・&lt;code&gt;strdup()&lt;/code&gt;・&lt;code&gt;strndup()&lt;/code&gt;・&lt;code&gt;memset_explicit()&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cuchar.html&#34;&gt;&amp;lt;cuchar&amp;gt;&lt;/a&gt;&lt;/code&gt;: &lt;code&gt;mbrtoc8()&lt;/code&gt;・&lt;code&gt;c8rtomb()&lt;/code&gt;・&lt;code&gt;__STDC_VERSION_UCHAR_H__&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cstddef.html&#34;&gt;&amp;lt;cstddef&amp;gt;&lt;/a&gt;&lt;/code&gt;: &lt;code&gt;unreachable&lt;/code&gt;マクロおよび&lt;code&gt;__STDC_VERSION_STDDEF_H__&lt;/code&gt;は定義しないことを明記&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>SFINAEが適用される「直接文脈」を定義 [P4149R1] -- C++26 : 「SFINAEが適用される「直接文脈」を定義」を追加 (close #1629)</title>
      <link href="https://cpprefjp.github.io/lang/cpp26/define_immediate_context.html"/>
      <id>49d6dd75fdadd8c2259608159967bbd4d4bce5ae:lang/cpp26/define_immediate_context.md</id>
      <updated>2026-09-07T12:13:35+09:00</updated>
      
        <summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/lang/cpp26/define_immediate_context.md b/lang/cpp26/define_immediate_context.md
new file mode 100644
index 000000000..c00127946
--- /dev/null
+++ b/lang/cpp26/define_immediate_context.md
@@ -0,0 +1,104 @@
+# SFINAEが適用される「直接文脈」を定義 [P4149R1]
+* cpp26[meta cpp]
+
+&amp;lt;!-- start lang caution --&amp;gt;
+
+このページはC++26に採用される見込みの言語機能の変更を解説しています。
+
+のちのC++規格でさらに変更される場合があるため[関連項目](#relative-page)を参照してください。
+
+&amp;lt;!-- last lang caution --&amp;gt;
+
+## 概要
+C++26では、テンプレートにおける「SFINAE（置換失敗はエラーではない）」が適用される範囲を表す用語「直接文脈 (immediate context)」が正式に定義される。
+
+この用語は、[C++11で任意の式によるSFINAE](/lang/cpp11/sfinae_expressions.md)が導入されて以来、定義がないまま規格中で使われ続けており、とくに「デフォルト引数の中での置換失敗はSFINAEになるのか、それともコンパイルエラーなのか」の扱いが処理系ごとに異なっていた。C++26では次のように定義されることになる。
+
+- テンプレート化された関数のデフォルト引数・`noexcept`指定・関数契約指定子を、まとめて「個別にインスタンス化される構成要素 (separately instantiated construct)」と呼ぶ
+- テンプレート引数の置き換えは、関数のシグネチャ（戻り値型・引数型）やテンプレートパラメータの宣言などに対して行われる。直接文脈は、この置き換えが行われる箇所から、ラムダ式の本体と個別にインスタンス化される構成要素を除いたものである
+
+置き換えの結果が無効な型や式になったとき、オーバーロード候補からの除外（SFINAE）となるのは直接文脈の中だけであり、直接文脈の外で無効な型・式が現れた場合はコンパイルエラーとなる。この定義によって、次の動作が明確になる。
+
+```cpp
+// 関数のシグネチャ（戻り値型・引数型）は直接文脈：
+// T::typeが無効でも、この候補が除外されるだけでエラーにはならない
+template &amp;lt;class T&amp;gt;
+typename T::type f(T x);
+
+// デフォルト引数は直接文脈の外：
+// このオーバーロードが選択されてデフォルト引数が必要になったとき、
+// T::valueが無効ならSFINAEにならずコンパイルエラーとなる
+template &amp;lt;class T&amp;gt;
+void g(T x = T::value);
+```
+
+`noexcept`指定と関数契約指定子は、従来から関数の宣言とは個別に「必要になったときのみ」インスタンス化されると規定されており、今回それらとデフォルト引数の扱いが「個別にインスタンス化される構成要素」として統一された。
+
+
+## 仕様
+- 「個別にインスタンス化される構成要素」という用語が定義される。テンプレート化された関数のデフォルト引数、`noexcept`指定、関数契約指定子がこれにあたる
+    - 名前探索とインスタンス化の目的では、個別にインスタンス化される構成要素は、関数本体や互いとは無関係な、それぞれ独立した定義として扱われる
+- 「直接文脈」という用語が定義される。テンプレート引数の置き換えが行われる各箇所（関数型・テンプレートパラメータ宣言・`explicit`指定の条件式。規格ではまとめてdeduction substitution lociと呼ばれる）の直接文脈は、その箇所から、ラムダ式の本体と個別にインスタンス化される構成要素を除いたものである
+    - 置き換えの結果が無効な型・式になったことがテンプレート引数推論の失敗（SFINAE）となるのは、直接文脈の中だけである
+    - 個別にインスタンス化される構成要素は、たとえ関数の宣言と同時にインスタンス化される場合でも直接文脈から除外される
+    - いかなる文 (statement) も直接文脈には含まれない
+- ローカルクラスのメンバ関数、および非ジェネリックラムダのクロージャ型の関数呼び出し演算子については、個別にインスタンス化される構成要素は、その関数の宣言のインスタンス化と同時にインスタンス化される（ただし依然として関数とは個別の定義として扱われ、直接文脈にも含まれない）
+- 例外仕様が「必要 (needed)」となる条件の一覧に、「関数がリフレクションで表現されるとき」が追加される
+
+
+## 例
+```cpp example
+#include &amp;lt;iostream&amp;gt;
+
+// 関数型（戻り値型・引数型）は直接文脈：置換失敗はSFINAEとなる
+template &amp;lt;class T&amp;gt;
+T* fun(T&amp;amp;&amp;amp; v) { std::cout &amp;lt;&amp;lt; &amp;#34;#1&amp;#34; &amp;lt;&amp;lt; std::endl; return nullptr; }
+
+void fun(...) { std::cout &amp;lt;&amp;lt; &amp;#34;#2&amp;#34; &amp;lt;&amp;lt; std::endl; }
+
+int main() {
+  int i = 0;
+  fun(i);  // T = int&amp;amp; での置換は「参照へのポインタ」の形成に失敗するが、
+           // 関数型は直接文脈なのでエラーにならず、#2が選択される
+}
+```
+
+### 出力
+```
+#2
+```
+
+一方、デフォルト引数の中での置換失敗はSFINAEにならない。
+
+```cpp
+template &amp;lt;class T&amp;gt;
+void g(T x = T::not_found) {}
+
+template &amp;lt;class T&amp;gt;
+concept canG = requires { g&amp;lt;T&amp;gt;(0); };
+
+// デフォルト引数は直接文脈の外なので、T::not_foundの置換失敗は
+// canG&amp;lt;int&amp;gt;をfalseにせず、コンパイルエラーとなる
+constexpr bool b = canG&amp;lt;int&amp;gt;;  // コンパイルエラー！
+```
+
+なお、2026年9月時点の処理系の動作は分かれており（このケースをGCC・MSVCはSFINAEとして扱い、Clangはコンパイルエラーとする）、統一された規則を完全に実装した処理系はまだない。
+
+
+## この機能が必要になった背景・経緯
+「immediate context」という語は、C++11の任意の式によるSFINAEの導入時から規格中で使われていたが、その正確な範囲は定義されていなかった（CWG 2296）。実際に、デフォルト引数の中での置換失敗の扱いは処理系間で一致しておらず、C++26の国際投票でこの用語を定義するよう要求するNBコメント（US 54-100）が提出された。
+
+検討の過程では、デフォルト引数を直接文脈に「含める」案と「含めない」案の両方が投票にかけられ、含めない方向で合意された。その上で、デフォルト引数・`noexcept`指定・関数契約指定子（およびアノテーション）の扱いを「個別にインスタンス化される構成要素は直接文脈に含めず、それ以外（ラムダ式の本体を除く）は含める」という一貫した規則へ統一した。アノテーションについては、`noexcept`指定と同じ「必要になったときのみインスタンス化される」規則に従うこととし、直接文脈には含まれない。
+
+
+## &amp;lt;a id=&amp;#34;relative-page&amp;#34; href=&amp;#34;#relative-page&amp;#34;&amp;gt;関連項目&amp;lt;/a&amp;gt;
+- [C++11 任意の式によるSFINAE](/lang/cpp11/sfinae_expressions.md)
+- [C++20 コンセプト](/lang/cpp20/concepts.md)
+- [C++26 契約プログラミング](/lang/cpp26/contracts.md)
+
+
+## 参照
+- [P4149R1 Define &amp;#34;immediate context&amp;#34;](https://open-std.org/jtc1/sc22/wg21/docs/papers/2026/p4149r1.html)
+- [CWG Issue 2296. Are default argument instantiation failures in the &amp;#34;immediate context&amp;#34;?](https://cplusplus.github.io/CWG/issues/2296.html)
+- [P2285R1 Are default function arguments in the immediate context?](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p2285r1.html)
+    - デフォルト引数の直接文脈の扱いについての処理系間の差異を分析した提案
&lt;/code&gt;&lt;/pre&gt;</summary>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>コンパイラの実装状況 -- C++23とC++26の生存期間周りに対応 (close #1409, #1100, #1628)</title>
      <link href="https://cpprefjp.github.io/implementation-status.html"/>
      <id>9fde0d02af12309e32708f1ce6427b2163e7a88e:implementation-status.md</id>
      <updated>2026-09-07T12:00:37+09:00</updated>
      
        <content type="html">&lt;h1 itemprop=&#34;name&#34;&gt;&lt;span class=&#34;token&#34;&gt;コンパイラの実装状況&lt;/span&gt;&lt;/h1&gt;
&lt;div itemprop=&#34;articleBody&#34;&gt;&lt;p&gt;このページでは、C++のバージョンごとの言語機能を、どのコンパイラがどのバージョンからサポートしているかをまとめる。&lt;/p&gt;
&lt;p&gt;ライブラリ機能については、本サイトのリファレンスで各機能を参照してもらいたい。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#cpp11&#34;&gt;C++11&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#cpp14&#34;&gt;C++14&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#cpp17&#34;&gt;C++17&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#cpp20&#34;&gt;C++20&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#cpp23&#34;&gt;C++23&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#cpp26&#34;&gt;C++26&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#cpp29&#34;&gt;C++29&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href=&#34;#cpp11&#34; id=&#34;cpp11&#34;&gt;C++11言語機能の実装状況&lt;/a&gt;&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#gcc&#34;&gt;GCC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#clang&#34;&gt;Clang&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#icc&#34;&gt;ICC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#visual_cpp&#34;&gt;MSVC&lt;/a&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;N2341: &lt;code&gt;&lt;a href=&#34;lang/cpp11/alignas.html&#34;&gt;alignas&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;アライメント指定&lt;/td&gt;
&lt;td&gt;4.8&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;15.0&lt;/td&gt;
&lt;td&gt;2015&lt;br /&gt;2003あるいはそれ以前からある&lt;code&gt;__declspec(align(x))&lt;/code&gt;構文で代替可能。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2341: &lt;code&gt;&lt;a href=&#34;lang/cpp11/alignof.html&#34;&gt;alignof&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;アライメント取得&lt;/td&gt;
&lt;td&gt;4.5&lt;/td&gt;
&lt;td&gt;3.3&lt;/td&gt;
&lt;td&gt;15.0&lt;/td&gt;
&lt;td&gt;2015&lt;br /&gt;2003あるいはそれ以前よりある&lt;code&gt;__alignof&lt;/code&gt;で代替可能。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N1984: &lt;a href=&#34;lang/cpp11/auto.html&#34;&gt;変数の型推論のためのauto&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;型推論&lt;/td&gt;
&lt;td&gt;4.4&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;12.0&lt;/td&gt;
&lt;td&gt;2010&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2343: &lt;code&gt;&lt;a href=&#34;lang/cpp11/decltype.html&#34;&gt;decltype&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;式の型を取得&lt;/td&gt;
&lt;td&gt;4.3&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;13.0&lt;/td&gt;
&lt;td&gt;2010 (partial)&lt;br /&gt; 2012&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N1653: C99互換のプリプロセッサ&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;lang/cpp11/variadic_macros.html&#34;&gt;可変引数マクロ&lt;/a&gt;、&lt;a href=&#34;lang/cpp11/pragma_operator.html&#34;&gt;Pragma演算子&lt;/a&gt;、&lt;code&gt;&lt;a href=&#34;lang/cpp11/func.html&#34;&gt;__func__&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;4.3&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;11.1&lt;/td&gt;
&lt;td&gt;2005 (partial): 可変引数のみ &lt;code&gt;_Pragma&lt;/code&gt;の代わりに&lt;code&gt;__pragma&lt;/code&gt;が存在する。&lt;br /&gt; 2019 Update 6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2235: &lt;code&gt;&lt;a href=&#34;lang/cpp11/constexpr.html&#34;&gt;constexpr&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;定数式&lt;/td&gt;
&lt;td&gt;4.6&lt;/td&gt;
&lt;td&gt;3.1&lt;/td&gt;
&lt;td&gt;13.0 (partial)&lt;br /&gt; 14.0&lt;/td&gt;
&lt;td&gt;2015 (partial)&lt;br /&gt; 2015 Update 1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2346: &lt;a href=&#34;lang/cpp11/defaulted_and_deleted_functions.html&#34;&gt;関数の&lt;code&gt;default/delete&lt;/code&gt;宣言&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;自動定義される特殊関数の制御&lt;/td&gt;
&lt;td&gt;4.4&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;12.0&lt;/td&gt;
&lt;td&gt;2013: ムーブコンストラクタ・ムーブ代入演算子の&lt;code&gt;default&lt;/code&gt;は不可&lt;br /&gt; 2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N1986: &lt;a href=&#34;lang/cpp11/delegating_constructors.html&#34;&gt;委譲コンストラクタ&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コンストラクタから他のコンストラクタに処理を委譲する&lt;/td&gt;
&lt;td&gt;4.7&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;14.0&lt;/td&gt;
&lt;td&gt;2013&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2437: &lt;a href=&#34;lang/cpp11/explicit_conversion_operator.html&#34;&gt;明示的な型変換演算子のオーバーロード&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;明示的な型変換が行われる場合にのみ呼び出される演算子をオーバーロードできるようにする&lt;/td&gt;
&lt;td&gt;4.5&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;14.0&lt;/td&gt;
&lt;td&gt;2013&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N1791: &lt;a href=&#34;lang/cpp11/extend_friend_targets.html&#34;&gt;&lt;code&gt;friend&lt;/code&gt;宣言できる対象を拡張&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートパラメータや型の別名を&lt;code&gt;friend&lt;/code&gt;宣言&lt;/td&gt;
&lt;td&gt;4.7&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;11.1 (partial) &lt;br /&gt; 12.0&lt;/td&gt;
&lt;td&gt;2010&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N1987: &lt;code&gt;&lt;a href=&#34;lang/cpp11/extern_template.html&#34;&gt;extern template&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;テンプレートのインスタンス化抑止&lt;/td&gt;
&lt;td&gt;3.3&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;11.1&lt;/td&gt;
&lt;td&gt;6.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2540: &lt;a href=&#34;lang/cpp11/inheriting_constructors.html&#34;&gt;継承コンストラクタ&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;基底クラスのコンストラクタを継承する&lt;/td&gt;
&lt;td&gt;4.8&lt;/td&gt;
&lt;td&gt;3.3&lt;/td&gt;
&lt;td&gt;15.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2927: &lt;a href=&#34;lang/cpp11/lambda_expressions.html&#34;&gt;ラムダ式&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;関数オブジェクトをその場に書く&lt;/td&gt;
&lt;td&gt;4.5&lt;/td&gt;
&lt;td&gt;3.1&lt;/td&gt;
&lt;td&gt;12.0&lt;/td&gt;
&lt;td&gt;2010 (partial)&lt;br /&gt; 2012&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2657: &lt;a href=&#34;lang/cpp11/local_and_unnamed_type_as_template_arguments.html&#34;&gt;ローカル型と無名型を、テンプレート引数として使用することを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ローカルおよび無名として定義したクラスや列挙型を、テンプレート引数として渡せるようにする&lt;/td&gt;
&lt;td&gt;4.5&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;12.0&lt;/td&gt;
&lt;td&gt;2010&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N1811: &lt;a href=&#34;lang/cpp11/long_long_type.html&#34;&gt;&lt;code&gt;long long&lt;/code&gt;型&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;64ビット以上の大きさを持つ整数型&lt;/td&gt;
&lt;td&gt;4.3&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;11.1&lt;/td&gt;
&lt;td&gt;2003&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2535: &lt;a href=&#34;lang/cpp11/inline_namespaces.html&#34;&gt;インライン名前空間&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ネストした名前空間に、透過的にアクセスする&lt;/td&gt;
&lt;td&gt;4.4&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;14.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2249: &lt;a href=&#34;lang/cpp11/char16_32.html&#34;&gt;&lt;code&gt;char16_t&lt;/code&gt;と&lt;code&gt;char32_t&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;UTF-16とUTF-32の文字型&lt;/td&gt;
&lt;td&gt;4.4&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;12.1 (Windows: partial) &lt;br /&gt; 12.1 (GNU/Linux, macOS)&lt;br /&gt; 14.0&lt;/td&gt;
&lt;td&gt;2015&lt;br /&gt; 2010より組み込み型ではなく型の別名として存在する&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2442: &lt;a href=&#34;lang/cpp11/utf8_string_literals.html&#34;&gt;UTF-8文字列リテラル&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;char&lt;/code&gt;の文字列をUTF-8エンコーディングするプレフィックス&lt;/td&gt;
&lt;td&gt;4.5&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;12.1 (Windows: partial) &lt;br /&gt; 12.1 (GNU/Linux, macOS)&lt;br /&gt; 14.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2442: &lt;a href=&#34;lang/cpp11/raw_string_literals.html&#34;&gt;生文字列リテラル&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;文字列リテラルにRプレフィックスを付けることで、エスケープシーケンスを無視する&lt;/td&gt;
&lt;td&gt;4.5&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;14.0&lt;/td&gt;
&lt;td&gt;2013&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2765: &lt;a href=&#34;lang/cpp11/user_defined_literals.html&#34;&gt;ユーザー定義リテラル&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;リテラルのサフィックスをユーザー定義する&lt;/td&gt;
&lt;td&gt;4.7&lt;/td&gt;
&lt;td&gt;3.1&lt;/td&gt;
&lt;td&gt;15.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2541: &lt;a href=&#34;lang/cpp11/trailing_return_types.html&#34;&gt;戻り値の型を後置する関数宣言構文&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;以下のような形式での関数宣言&lt;br /&gt; &lt;code&gt;auto f(arg_types...) -&amp;gt; return_type&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;4.4&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;12.0&lt;/td&gt;
&lt;td&gt;2010&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2431: &lt;code&gt;&lt;a href=&#34;lang/cpp11/nullptr.html&#34;&gt;nullptr&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ヌルポインタを表すポインタリテラル&lt;/td&gt;
&lt;td&gt;4.6&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;11.1&lt;/td&gt;
&lt;td&gt;2010&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N1757: &lt;a href=&#34;lang/cpp11/right_angle_brackets.html&#34;&gt;テンプレートでの連続した右山カッコを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;vector&amp;lt;basic_string&amp;lt;char&amp;gt;&amp;gt;&lt;/code&gt;のように、&lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt;をスペースを空けずに記述可能にする&lt;/td&gt;
&lt;td&gt;4.3&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;11.1&lt;/td&gt;
&lt;td&gt;2005&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2118: &lt;a href=&#34;lang/cpp11/rvalue_ref_and_move_semantics.html&#34;&gt;右辺値参照・ムーブセマンティクス&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;右辺値によるオーバーロード、およびそれによるリソースの所有権移動&lt;/td&gt;
&lt;td&gt;4.3 (partial)&lt;br /&gt; 4.6&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;12.0&lt;/td&gt;
&lt;td&gt;2010 (partial) ムーブコンストラクタと代入演算子の暗黙定義に対応していない。&lt;br /&gt; 2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N1720: &lt;a href=&#34;lang/cpp11/static_assert.html&#34;&gt;コンパイル時アサート&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コンパイル時に条件式が真であることを表明する&lt;/td&gt;
&lt;td&gt;4.3&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;11.1&lt;/td&gt;
&lt;td&gt;2010&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2347: &lt;a href=&#34;lang/cpp11/scoped_enum.html#extended-unscoped-enum&#34;&gt;&lt;code&gt;enum&lt;/code&gt;の先行宣言&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;4.6&lt;/td&gt;
&lt;td&gt;3.1&lt;/td&gt;
&lt;td&gt;11.1 (partial)&lt;br /&gt; 14.0&lt;/td&gt;
&lt;td&gt;2012&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2347: &lt;a href=&#34;lang/cpp11/scoped_enum.html&#34;&gt;スコープを持つ列挙型&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;強い型付けとスコープを持つ列挙型&lt;/td&gt;
&lt;td&gt;4.4&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;11.1 (partial)&lt;br /&gt; 14.0&lt;/td&gt;
&lt;td&gt;2012&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2258: &lt;a href=&#34;lang/cpp11/alias_templates.html&#34;&gt;エイリアステンプレート&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートによって型の別名を定義する&lt;/td&gt;
&lt;td&gt;4.7&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;12.1&lt;/td&gt;
&lt;td&gt;2013&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2544: &lt;a href=&#34;lang/cpp11/unrestricted_unions.html&#34;&gt;共用体でクラスオブジェクトをもつことを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;共用体のメンバ変数として、クラスオブジェクトを持つ&lt;/td&gt;
&lt;td&gt;4.6&lt;/td&gt;
&lt;td&gt;3.1&lt;/td&gt;
&lt;td&gt;14.0(Linux系OSおよびMacのみ。Windowsは非対応)&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2242: &lt;a href=&#34;lang/cpp11/variadic_templates.html&#34;&gt;可変引数テンプレート&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;任意の数のテンプレートパラメータを受け取れるようにする&lt;/td&gt;
&lt;td&gt;4.3 (partial)&lt;br /&gt; 4.4&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;12.1&lt;/td&gt;
&lt;td&gt;2013&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2930: &lt;a href=&#34;lang/cpp11/range_based_for.html&#34;&gt;範囲for文&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;配列やコンテナといった範囲を表すオブジェクトを、簡潔に走査する&lt;/td&gt;
&lt;td&gt;4.6&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;13.0&lt;/td&gt;
&lt;td&gt;2012&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2928: &lt;a href=&#34;lang/cpp11/override_final.html&#34;&gt;&lt;code&gt;override&lt;/code&gt;と&lt;code&gt;final&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;メンバ関数のオーバーライド指定、および派生クラスでのオーバーロードを禁止する指定&lt;/td&gt;
&lt;td&gt;4.7&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;14.0&lt;/td&gt;
&lt;td&gt;2005 (partial): &lt;code&gt;override&lt;/code&gt;のみ。&lt;code&gt;final&lt;/code&gt;の代わりにsealedが存在する。ただし両者ともデストラクタには指定できない。&lt;br /&gt; 2012&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2761: &lt;a href=&#34;lang/cpp11/attributes.html&#34;&gt;属性構文&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;[[attr]]&lt;/code&gt;構文による、クラス、関数、変数の属性指定&lt;/td&gt;
&lt;td&gt;4.8&lt;/td&gt;
&lt;td&gt;3.3&lt;/td&gt;
&lt;td&gt;12.1&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2439: &lt;a href=&#34;lang/cpp11/ref_qualifier_for_this.html&#34;&gt;メンバ関数の左辺値／右辺値修飾&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;オブジェクトが左辺値／右辺値の場合のみ呼び出し可能であることの指定&lt;/td&gt;
&lt;td&gt;4.8.1&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;14.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2756: &lt;a href=&#34;lang/cpp11/non_static_data_member_initializers.html&#34;&gt;非静的メンバ変数の初期化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;メンバ変数を、宣言と同時に初期値指定する&lt;/td&gt;
&lt;td&gt;4.7&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;14.0&lt;/td&gt;
&lt;td&gt;2013&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2672: &lt;a href=&#34;lang/cpp11/initializer_lists.html&#34;&gt;初期化子リスト&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;波カッコによる初期化をユーザー定義する。&lt;code&gt;vector&amp;lt;int&amp;gt; v = {1, 2, 3};&lt;/code&gt;など。&lt;/td&gt;
&lt;td&gt;4.4&lt;/td&gt;
&lt;td&gt;3.1&lt;/td&gt;
&lt;td&gt;14.0&lt;/td&gt;
&lt;td&gt;2013&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2672: &lt;a href=&#34;lang/cpp11/uniform_initialization.html&#34;&gt;一様初期化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コンストラクタ呼び出しを波カッコで行う。 &lt;code&gt;T x { a, b, c };&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;4.4&lt;/td&gt;
&lt;td&gt;3.1&lt;/td&gt;
&lt;td&gt;13.0(partial)&lt;br /&gt; 14.0&lt;/td&gt;
&lt;td&gt;2013&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3050: &lt;code&gt;&lt;a href=&#34;lang/cpp11/noexcept.html&#34;&gt;noexcept&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;関数の例外指定、例外を投げる可能性のある式かbool値を返す演算子&lt;/td&gt;
&lt;td&gt;4.6&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;13.0(partial)&lt;br /&gt;14.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2634: &lt;a href=&#34;lang/cpp11/sfinae_expressions.html&#34;&gt;任意の式によるSFINAE&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;特定の式が有効かどうかで、その関数をオーバーロード解決に含めるかどうかを決定する&lt;/td&gt;
&lt;td&gt;4.4&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;12.0&lt;/td&gt;
&lt;td&gt;2015 Update 1 (partial)&lt;br /&gt; 2017 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2659: &lt;a href=&#34;lang/cpp11/thread_local_storage.html&#34;&gt;スレッドローカルストレージ&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;スレッドごとに異なる静的記憶域に保持される変数&lt;/td&gt;
&lt;td&gt;4.8&lt;/td&gt;
&lt;td&gt;3.3&lt;/td&gt;
&lt;td&gt;11.1 (partial)&lt;/td&gt;
&lt;td&gt;2010&lt;br /&gt; &lt;code&gt;__declspec(thread)&lt;/code&gt;属性での部分サポート&lt;br /&gt; 2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2660: &lt;a href=&#34;lang/cpp11/static_initialization_thread_safely.html&#34;&gt;ブロックスコープを持つ&lt;code&gt;static&lt;/code&gt;変数初期化のスレッドセーフ化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;関数ローカルで定義した&lt;code&gt;static&lt;/code&gt;変数の初期化を、スレッドセーフにする&lt;/td&gt;
&lt;td&gt;4.3&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;11.0 (Linux/macOS)&lt;br /&gt; 14.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;各処理系のC++11実装状況ページ：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;全体的な対応状況： &lt;a href=&#34;http://web.archive.org/web/20160327011707/https://wiki.apache.org/stdcxx/C++0xCompilerSupport&#34; target=&#34;_blank&#34;&gt;C++0xCompilerSupport&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GCC： &lt;a href=&#34;https://gcc.gnu.org/projects/cxx-status.html#cxx11&#34; target=&#34;_blank&#34;&gt;C++11 Support in GCC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;libstdc++ : &lt;a href=&#34;https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2011&#34; target=&#34;_blank&#34;&gt;C++ 2011&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Clang： &lt;a href=&#34;http://clang.llvm.org/cxx_status.html&#34; target=&#34;_blank&#34;&gt;C++98 and C++11 Support in Clang&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://clang.llvm.org/cxx_dr_status.html&#34; target=&#34;_blank&#34;&gt;C++ Defect Report Support in Clang&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ICC : &lt;a href=&#34;https://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler&#34; target=&#34;_blank&#34;&gt;C++11 Features Supported by Intel® C++ Compiler&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Visual C++ (MSVC):&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.microsoft.com/ja-jp/cpp/visual-cpp-language-conformance&#34; target=&#34;_blank&#34;&gt;Visual C++ 言語への準拠&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blogs.msdn.microsoft.com/vcblog/2018/05/07/announcing-msvc-conforms-to-the-c-standard/&#34; target=&#34;_blank&#34;&gt;Announcing: MSVC Conforms to the C++ Standard&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href=&#34;#cpp14&#34; id=&#34;cpp14&#34;&gt;C++14言語機能の実装状況&lt;/a&gt;&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#gcc&#34;&gt;GCC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#clang&#34;&gt;Clang&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#icc&#34;&gt;ICC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#visual_cpp&#34;&gt;MSVC&lt;/a&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;N3472: &lt;a href=&#34;lang/cpp14/binary_literals.html&#34;&gt;2進数リテラル&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;2進数を表す&lt;code&gt;0b&lt;/code&gt; or &lt;code&gt;0B&lt;/code&gt;プレフィックスを付けた数値リテラルの記述を可能とする&lt;/td&gt;
&lt;td&gt;4.3(GNU)&lt;br /&gt; 4.9&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;11.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3638: &lt;a href=&#34;lang/cpp14/return_type_deduction_for_normal_functions.html&#34;&gt;通常関数の戻り値型推論&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;関数の戻り値型を&lt;code&gt;auto&lt;/code&gt;にすることで、&lt;code&gt;return&lt;/code&gt;文から戻り値の型を推論させる&lt;/td&gt;
&lt;td&gt;4.8(partial)&lt;br /&gt;4.9&lt;/td&gt;
&lt;td&gt;3.3(partial)&lt;br /&gt; 3.4&lt;/td&gt;
&lt;td&gt;15.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3648: &lt;a href=&#34;lang/cpp14/initialize_capture.html&#34;&gt;ラムダ式の初期化キャプチャ&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;キャプチャに代入構文を導入し、一つの変数に複数のキャプチャ方法を指定可能にする&lt;/td&gt;
&lt;td&gt;4.9&lt;/td&gt;
&lt;td&gt;3.4&lt;/td&gt;
&lt;td&gt;15.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3649: &lt;a href=&#34;lang/cpp14/generic_lambdas.html&#34;&gt;ジェネリックラムダ&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ラムダ式のパラメータを&lt;code&gt;auto&lt;/code&gt;にすることで、ジェネリックな関数呼び出し演算子を持つ関数オブジェクトを生成する&lt;/td&gt;
&lt;td&gt;4.9&lt;/td&gt;
&lt;td&gt;3.4&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3651: &lt;a href=&#34;lang/cpp14/variable_templates.html&#34;&gt;変数テンプレート&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;変数定義時のテンプレート指定を可能にする。&lt;/td&gt;
&lt;td&gt;5.1&lt;/td&gt;
&lt;td&gt;3.4&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;2015 Update 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3652: &lt;a href=&#34;lang/cpp14/relaxing_constraints_on_constexpr.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;関数内での条件分岐とループの文を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;if&lt;/code&gt;文、&lt;code&gt;switch&lt;/code&gt;文による条件分岐の許可。&lt;br /&gt;&lt;code&gt;for&lt;/code&gt;文、&lt;code&gt;while&lt;/code&gt;文、&lt;code&gt;do-while&lt;/code&gt;文によるループの許可。&lt;br /&gt;&lt;code&gt;void&lt;/code&gt;戻り値型の許可&lt;br /&gt;初期化を伴う変数宣言の許可。&lt;br /&gt;変数書き換えの許可。&lt;/td&gt;
&lt;td&gt;5.1&lt;/td&gt;
&lt;td&gt;3.3(partial) &lt;br /&gt; 3.4&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;2017&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3653: &lt;a href=&#34;lang/cpp14/brace_elision_in_array_temporary_initialization.html&#34;&gt;宣言時のメンバ初期化を持つ型の集成体初期化を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;一様初期化と初期化子リストを組み合わせた際、二重に波カッコが必要となっていた仕様を緩和し、波カッコを省略できるようにする&lt;/td&gt;
&lt;td&gt;5.1&lt;/td&gt;
&lt;td&gt;3.3&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;2017&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3760: &lt;a href=&#34;lang/cpp14/deprecated_attr.html&#34;&gt;&lt;code&gt;[[deprecated]]&lt;/code&gt;属性&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;非推奨の機能であることを示す属性。&lt;/td&gt;
&lt;td&gt;4.9&lt;/td&gt;
&lt;td&gt;3.4&lt;/td&gt;
&lt;td&gt;15.0&lt;br /&gt; (Linux/Mac OS)&lt;/td&gt;
&lt;td&gt;2015&lt;br /&gt;それ以前は&lt;code&gt;__declspec(deprecated)&lt;/code&gt;で代替可能&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3781: &lt;a href=&#34;lang/cpp14/digit_separators.html&#34;&gt;数値リテラルの桁区切り文字&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;シングルクォーテーションで数値リテラルを桁区切りする。&lt;/td&gt;
&lt;td&gt;4.9&lt;/td&gt;
&lt;td&gt;3.4&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3778: &lt;a href=&#34;lang/cpp14/sized_deallocation.html&#34;&gt;サイズ付きデアロケーション&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;サイズをとる&lt;code&gt;delete&lt;/code&gt;演算子のオーバーロードを許可する。&lt;/td&gt;
&lt;td&gt;5.1&lt;/td&gt;
&lt;td&gt;3.4&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;各処理系のC++14実装状況ページ：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GCC: &lt;a href=&#34;https://gcc.gnu.org/projects/cxx-status.html#cxx14&#34; target=&#34;_blank&#34;&gt;C++14 Support in GCC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;libstdc++: &lt;a href=&#34;https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2014&#34; target=&#34;_blank&#34;&gt;C++ 2014&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Clang: &lt;a href=&#34;http://clang.llvm.org/cxx_status.html&#34; target=&#34;_blank&#34;&gt;C++98, C++11, and C++14 Support in Clang&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Visual C++ (MSVC):&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.microsoft.com/ja-jp/cpp/visual-cpp-language-conformance&#34; target=&#34;_blank&#34;&gt;Visual C++ 言語への準拠&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blogs.msdn.microsoft.com/vcblog/2018/05/07/announcing-msvc-conforms-to-the-c-standard/&#34; target=&#34;_blank&#34;&gt;Announcing: MSVC Conforms to the C++ Standard&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ICC: &lt;a href=&#34;https://software.intel.com/en-us/articles/c14-features-supported-by-intel-c-compiler&#34; target=&#34;_blank&#34;&gt;C++14 Features Supported by Intel C++ Compiler&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://software.intel.com/en-us/forums/topic/549502&#34; target=&#34;_blank&#34;&gt;Intel (R) Parallel Studio XE 2016 Beta program has begun&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href=&#34;#cpp17&#34; id=&#34;cpp17&#34;&gt;C++17言語機能の実装状況&lt;/a&gt;&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#gcc&#34;&gt;GCC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#clang&#34;&gt;Clang&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#icc&#34;&gt;ICC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#visual_cpp&#34;&gt;MSVC&lt;/a&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;N3928: &lt;a href=&#34;lang/cpp17/extending_static_assert.html&#34;&gt;メッセージなしの&lt;code&gt;static_assert&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;デフォルトの表明メッセージを使用する&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;3.5&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N4086: &lt;a href=&#34;lang/cpp17/removing_trigraphs.html&#34;&gt;トライグラフを削除&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;5.1&lt;/td&gt;
&lt;td&gt;3.5&lt;/td&gt;
&lt;td&gt;19.1&lt;/td&gt;
&lt;td&gt;2010&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N4051: &lt;a href=&#34;lang/cpp17/allow_typename_in_a_template_template_parameter.html&#34;&gt;テンプレートテンプレートパラメータに&lt;code&gt;typename&lt;/code&gt;を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;class&lt;/code&gt;キーワードしか使用できなかった部分に、&lt;code&gt;typename&lt;/code&gt;を許可&lt;/td&gt;
&lt;td&gt;5.0&lt;/td&gt;
&lt;td&gt;3.5&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3922: &lt;a href=&#34;lang/cpp17/new_rules_for_auto_deduction_from_braced-init-list.html&#34;&gt;単一要素の波カッコ初期化を非配列とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;initializer_list&amp;lt;T&amp;gt;&lt;/code&gt;だったのを&lt;code&gt;T&lt;/code&gt;に変更&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;3.8&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N4295: &lt;a href=&#34;lang/cpp17/folding_expressions.html&#34;&gt;畳み込み式&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;パラメータパックに対する2項演算の集積処理&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;3.6&lt;/td&gt;
&lt;td&gt;19.0&lt;/td&gt;
&lt;td&gt;2017 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N4267: &lt;a href=&#34;lang/cpp17/utf8_character_literals.html&#34;&gt;UTF-8文字リテラル&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;文字列リテラルだけでなく、文字リテラルにもUTF-8指定できるようにする&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;3.6&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N4230: &lt;a href=&#34;lang/cpp17/nested_namespace.html&#34;&gt;入れ子名前空間の定義&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;namespace A::B {}&lt;/code&gt;のように、入れ子の名前空間を簡単に定義できるようにする&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;3.6&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;2015 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N4266: &lt;a href=&#34;lang/cpp17/attributes_for_namespaces_and_enumerators.html&#34;&gt;名前空間と列挙子に属性の付加を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;名前空間の定義と、列挙型の各要素の定義に、属性を付けられるようにする&lt;/td&gt;
&lt;td&gt;名前空間は4.0&lt;br /&gt;列挙子は6&lt;/td&gt;
&lt;td&gt;3.6&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N4268: &lt;a href=&#34;lang/cpp17/allow_constant_evaluation_for_all_non-type_template_arguments.html&#34;&gt;全ての非型テンプレート引数の定数式評価を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ポインタの定数式評価として、配列からポインタへの変換や、関数から関数ポインタへの変換などを許可&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;3.6&lt;/td&gt;
&lt;td&gt;19.1&lt;/td&gt;
&lt;td&gt;2017 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0001R1: &lt;a href=&#34;lang/cpp17/remove_deprecated_use_of_the_register_keyword.html&#34;&gt;非推奨だった&lt;code&gt;register&lt;/code&gt;キーワードを削除&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.8&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0002R1: &lt;a href=&#34;lang/cpp17/remove_deprecated_increment_of_bool.html&#34;&gt;非推奨だった&lt;code&gt;bool&lt;/code&gt;型オブジェクトに対するインクリメントの仕様を削除&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.8&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0012R1: &lt;a href=&#34;lang/cpp17/exception_spec_be_part_of_the_type_system.html&#34;&gt;例外仕様を型システムの一部にする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0061R1: &lt;a href=&#34;lang/cpp17/has_include.html&#34;&gt;プリプロセッサでの条件式&lt;code&gt;__has_include&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;対象のインクルードファイルが存在するかをプリプロセス時に判定する&lt;/td&gt;
&lt;td&gt;5.0&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0136R1: &lt;a href=&#34;http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0136r1.html&#34; target=&#34;_blank&#34;&gt;継承コンストラクタの新仕様&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;デフォルト引数を引き継ぐようにした&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;2017 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0188R1: &lt;a href=&#34;lang/cpp17/fallthrough.html&#34;&gt;&lt;code&gt;[[fallthrough]]&lt;/code&gt;属性&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;case&lt;/code&gt;節で&lt;code&gt;break&lt;/code&gt;や&lt;code&gt;return&lt;/code&gt;を書かなかった場合に、それが意図したフォールスルーであることをコンパイラに伝える属性&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0189R1: &lt;a href=&#34;lang/cpp17/nodiscard.html&#34;&gt;&lt;code&gt;[[nodiscard]]&lt;/code&gt;属性&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;関数の戻り値を無視してはならないことをユーザーに伝える属性&lt;/td&gt;
&lt;td&gt;4.8からは&lt;code&gt;[[gnu::warn_unused_result]]&lt;/code&gt;を使用すること&lt;br /&gt; 7からサポート&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0212R1: &lt;a href=&#34;lang/cpp17/maybe_unused.html&#34;&gt;&lt;code&gt;[[maybe_unused]]&lt;/code&gt;属性&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;使用しない可能性がある変数であることをコンパイラに伝える属性&lt;/td&gt;
&lt;td&gt;4.8からは&lt;code&gt;[[gnu::unused]]&lt;/code&gt;を使用すること&lt;br /&gt; 7からサポート&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0017R1: &lt;a href=&#34;lang/cpp17/extension_to_aggregate_initialization.html&#34;&gt;基底クラスのメンバ変数を集成体初期化するための波カッコを省略できるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;基底クラスのメンバを集成体初期化するために、&lt;code&gt;derived d {{42}};&lt;/code&gt;の代わりに&lt;code&gt;derived d {42};&lt;/code&gt;と書けるようにする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;19.1&lt;/td&gt;
&lt;td&gt;2017 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0170R1: &lt;a href=&#34;lang/cpp17/constexpr_lambda.html&#34;&gt;ラムダ式を&lt;code&gt;constexpr&lt;/code&gt;として使用できるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ラムダ式の関数オブジェクトが定数式の文脈で使用された場合に、それがコンパイル時に評価されるようにする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;19.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0184R0: &lt;a href=&#34;lang/cpp17/generalizing_the_range-based_for_loop.html&#34;&gt;範囲for文のイテレータ型が一致しないことを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;begin()&lt;/code&gt;と&lt;code&gt;end()&lt;/code&gt;が異なるイテレータ型を返せるようにすることで、終端イテレータを定義しやすくする&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0018R3: &lt;a href=&#34;lang/cpp17/lambda_capture_of_this_by_value.html&#34;&gt;ラムダ式での&lt;code&gt;*this&lt;/code&gt;のコピーキャプチャ&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;キャプチャリストに&lt;code&gt;*this&lt;/code&gt;を指定することで、&lt;code&gt;*this&lt;/code&gt;をコピーキャプチャする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;19.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0138R2: &lt;a href=&#34;lang/cpp17/construction_enum_class_values.html&#34;&gt;&lt;code&gt;enum class&lt;/code&gt;変数の初期値として整数を指定する際の規則を調整&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;キャストを使用することなく整数を初期値として使用し、&lt;code&gt;E e{0};&lt;/code&gt;のような初期化を許可&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;19.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0245R1: &lt;a href=&#34;lang/cpp17/hexadecimal_floating_literals.html&#34;&gt;16進浮動小数点数リテラル&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;hexfloat&lt;/code&gt;マニピュレータや&lt;code&gt;printf()&lt;/code&gt;の16進数出力に合わせて、浮動小数点数のリテラルも16進数表記できるようにする&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0028R4: &lt;a href=&#34;lang/cpp17/using_attribute_namespaces.html&#34;&gt;属性の名前空間指定に繰り返しをなくす&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;[[using CC: opt(1), debug]]&lt;/code&gt;のように属性の名前空間宣言をまとめて行う&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0035R4: &lt;a href=&#34;lang/cpp17/dynamic_memory_allocation_for_over-aligned_data.html&#34;&gt;アライメント指定されたデータの動的メモリ確保&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;operator new&lt;/code&gt;と&lt;code&gt;operator delete&lt;/code&gt;でアライメント値を取得できるようにする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;19.0&lt;/td&gt;
&lt;td&gt;2017 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0091R3: &lt;a href=&#34;lang/cpp17/type_deduction_for_class_templates.html&#34;&gt;クラステンプレートのテンプレート引数推論&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コンストラクタの引数からクラスのテンプレート引数を推論できるようにする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;19.1&lt;/td&gt;
&lt;td&gt;2017 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0127R2: &lt;a href=&#34;lang/cpp17/declaring_non-type_template_arguments_with_auto.html&#34;&gt;非型テンプレート引数の&lt;code&gt;auto&lt;/code&gt;宣言&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;template &amp;lt;typename T, T x&amp;gt;&lt;/code&gt;という冗長なコードを&lt;code&gt;template &amp;lt;auto x&amp;gt;&lt;/code&gt;のようにして受けられるようにし、&lt;br /&gt; &lt;code&gt;X&amp;lt;3&amp;gt;; X&amp;lt;true&amp;gt;; X&amp;lt;&#39;a&#39;&amp;gt;&lt;/code&gt;のように定数を簡潔に渡せるようにする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;19.1&lt;/td&gt;
&lt;td&gt;2017 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0135R1: &lt;a href=&#34;lang/cpp17/guaranteed_copy_elision.html&#34;&gt;値のコピー省略を保証&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;一時オブジェクトをコピーする際に、単純な値を持つクラスであればコピーが省略されることを保証する&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;19.1&lt;/td&gt;
&lt;td&gt;2017 Update 6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0145R3: &lt;a href=&#34;lang/cpp17/expression_evaluation_order.html&#34;&gt;厳密な式の評価順&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;式の項が評価される順序を厳密に規定する。&lt;br /&gt; &lt;code&gt;b = a;&lt;/code&gt;の式が右から順番(a, bの順)に評価される&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;19.1&lt;/td&gt;
&lt;td&gt;2017 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0283R2: &lt;a href=&#34;lang/cpp17/non_standard_attributes.html&#34;&gt;不明な属性を無視する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;実装が知らない名前空間の属性は無視する&lt;/td&gt;
&lt;td&gt;4.8&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0292R2: &lt;a href=&#34;lang/cpp17/if_constexpr.html&#34;&gt;constexpr if文&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;if constexpr(cond)&lt;/code&gt;とすることで、そのif文はコンパイル時に処理される&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;19.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0386R2: &lt;a href=&#34;lang/cpp17/inline_variables.html&#34;&gt;インライン変数&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;インライン指定を関数だけでなく変数にも指定できるようにする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;19.0&lt;/td&gt;
&lt;td&gt;2017 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0217R3: &lt;a href=&#34;lang/cpp17/structured_bindings.html&#34;&gt;構造化束縛&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;タプルやユーザー定義型を分解して受け取れるようにする&lt;br /&gt; &lt;code&gt;tuple&amp;lt;int, string&amp;gt; f();&lt;/code&gt; &lt;br /&gt; &lt;code&gt;const auto [a, b] = f(); // aはintの値、bはstringの値&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0305R1: &lt;a href=&#34;lang/cpp17/selection_statements_with_initializer.html&#34;&gt;if文とswitch文の条件式と初期化を分離&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;if (init; condition)&lt;/code&gt;のように初期化と条件式を分けて記述できるようにする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0137R1: &lt;a href=&#34;lang/cpp17/replacement_of_class_objects_containing_reference_members.html&#34;&gt;参照メンバをもつクラスの置き換え&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;参照型メンバや&lt;code&gt;const&lt;/code&gt;メンバ変数を含むクラスについてこれまで未定義動作とされていた配置&lt;code&gt;new&lt;/code&gt;によるオブジェクトの置き換えを条件付きで可能とする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;6.0&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;2017 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0003R5: &lt;a href=&#34;lang/cpp17/remove_deprecated_exception_specifications.html&#34;&gt;非推奨だった例外仕様を削除&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;noexcept&lt;/code&gt;が入ったことによって非推奨になった&lt;code&gt;throw&lt;/code&gt;キーワードによる例外仕様を削除&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;19.0&lt;/td&gt;
&lt;td&gt;2017 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0195R2: &lt;a href=&#34;lang/cpp17/pack_expansions_in_using.html&#34;&gt;using宣言でのパック展開&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;パラメータパックの型を基底クラスとして指定した場合に、&lt;code&gt;using&lt;/code&gt;宣言に基底クラスのパラメータパックを指定できるようにする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;19.0&lt;/td&gt;
&lt;td&gt;2017 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0512R0: &lt;a href=&#34;http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0512r0.pdf&#34; target=&#34;_blank&#34;&gt;クラステンプレート引数の推論仕様を調整&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;5.0&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;2017 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0490R0: &lt;a href=&#34;http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0490r0.html&#34; target=&#34;_blank&#34;&gt;Committee Draftに対するNational Body Commentへの対応&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0522R0: &lt;a href=&#34;http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0522r0.html&#34; target=&#34;_blank&#34;&gt;テンプレートテンプレート引数のマッチングにおいて、互換性のあるテンプレートを除外&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;4 (partial)&lt;br /&gt;19&lt;/td&gt;
&lt;td&gt;19.1&lt;/td&gt;
&lt;td&gt;2017 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;各処理系のC++17実装状況ページ：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GCC: &lt;a href=&#34;https://gcc.gnu.org/projects/cxx-status.html#cxx17&#34; target=&#34;_blank&#34;&gt;C++17 Support in GCC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Clang: &lt;a href=&#34;http://clang.llvm.org/cxx_status.html&#34; target=&#34;_blank&#34;&gt;C++ Support in Clang&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;libc++ : &lt;a href=&#34;https://libcxx.llvm.org/Status/Cxx17.html&#34; target=&#34;_blank&#34;&gt;libc++ C++17 Status&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Visual C++ (MSVC):&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.microsoft.com/ja-jp/cpp/visual-cpp-language-conformance&#34; target=&#34;_blank&#34;&gt;Visual C++ 言語への準拠&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blogs.msdn.microsoft.com/vcblog/2018/05/07/announcing-msvc-conforms-to-the-c-standard/&#34; target=&#34;_blank&#34;&gt;Announcing: MSVC Conforms to the C++ Standard&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ICC: &lt;a href=&#34;https://software.intel.com/en-us/articles/c17-features-supported-by-intel-c-compiler&#34; target=&#34;_blank&#34;&gt;C++17 Features Supported by Intel C++ Compiler&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href=&#34;#cpp20&#34; id=&#34;cpp20&#34;&gt;C++20言語機能の実装状況&lt;/a&gt;&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#gcc&#34;&gt;GCC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#clang&#34;&gt;Clang&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#icc&#34;&gt;ICC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#visual_cpp&#34;&gt;MSVC&lt;/a&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;P0683R1: &lt;a href=&#34;lang/cpp20/default_member_initializers_for_bit_fields.html&#34;&gt;ビットフィールドのメンバ変数初期化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ビットフィールドメンバ変数のデフォルト値を設定する構文を追加する&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;6.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0409R2: &lt;a href=&#34;lang/cpp20/allow_lambda_capture_equal_this.html&#34;&gt;ラムダ式のキャプチャとして&lt;code&gt;[=, this]&lt;/code&gt;を許可する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;デフォルトコピーキャプチャと&lt;code&gt;this&lt;/code&gt;ポインタのコピーキャプチャを両方指定できるようにする&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;6.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0806R2: &lt;a href=&#34;lang/cpp20/deprecate_implicit_capture_of_this_via_defcopy.html&#34;&gt;&lt;code&gt;[=]&lt;/code&gt;による&lt;code&gt;this&lt;/code&gt;の暗黙のキャプチャを非推奨化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コピーのデフォルトキャプチャでは、&lt;code&gt;this&lt;/code&gt;ポインタをキャプチャされなくする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;2019 Update 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0428R2: &lt;a href=&#34;lang/cpp20/familiar_template_syntax_for_generic_lambdas.html&#34;&gt;ジェネリックラムダのテンプレート構文&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ジェネリックラムダでテンプレートパラメータを定義できるようにする&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0704R1: &lt;a href=&#34;lang/cpp20/fixing_const_qualified_pointers_to_members.html&#34;&gt;&lt;code&gt;const&lt;/code&gt;修飾されたメンバポインタの制限を修正&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.*&lt;/code&gt;演算子での左辺値の&lt;code&gt;const&lt;/code&gt;メンバ関数呼び出しを許可する&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;6.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0306R4: &lt;a href=&#34;lang/cpp20/va_opt.html&#34;&gt;可変引数が空でない場合のトークン置換&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;プリプロセッサの置換で可変引数が空の場合に余計なカンマが付いてしまう問題に対処&lt;/td&gt;
&lt;td&gt;8 (partial, &lt;code&gt;#__VA_OPT__&lt;/code&gt;による文字列化が未サポート)&lt;br /&gt;10 (partial, placemarker token のハンドリング変更なし)&lt;br /&gt;12&lt;/td&gt;
&lt;td&gt;6.0&lt;br /&gt; 9.0 (&lt;a href=&#34;http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1042r1.html&#34; target=&#34;_blank&#34;&gt;p1042&lt;/a&gt;)&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0329R4: &lt;a href=&#34;lang/cpp20/designated_initialization.html&#34;&gt;指示付き初期化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;波カッコによる集成体初期化でメンバ名を指定して初期化できるようにする&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;6.0 (partial)&lt;br /&gt;10&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0734R0: &lt;a href=&#34;lang/cpp20/concepts.html&#34;&gt;コンセプト&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートパラメータに対する制約を行う&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;2021.6&lt;/td&gt;
&lt;td&gt;2019 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0614R1: &lt;a href=&#34;lang/cpp20/range-based_for_statements_with_initializer.html&#34;&gt;初期化式をともなう範囲for文&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;範囲for文スコープで使用する変数の初期化のための構文を追加&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;td&gt;2021.7&lt;/td&gt;
&lt;td&gt;2019 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0588R1: &lt;a href=&#34;lang/cpp20/simplifying_implicit_lambda_capture.html&#34;&gt;暗黙のラムダキャプチャを簡略化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ラムダ式のキャプチャに関する仕様整理&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0846R0: &lt;a href=&#34;lang/cpp20/adl_and_function_templates_that_are_not_visible.html&#34;&gt;関数テンプレートに明示的に型指定した場合にADLで見つからない問題を修正&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;名前空間内の関数テンプレートをテンプレート引数指定かつ非修飾・ADLで正しく呼び出せるよう修正&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0641R2: &lt;a href=&#34;lang/cpp20/resolving_const_mismatch_with_defaulted_copy_constructor.html&#34;&gt;デフォルトのコピーコンストラクタと非&lt;code&gt;const&lt;/code&gt;なコンストラクタが衝突する問題を修正&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;非&lt;code&gt;const&lt;/code&gt;なオブジェクトをとるコンストラクタを定義すると、そのクラスをラップしたクラスのコピーコンストラクタが&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;になってしまう問題を修正&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0859R0: &lt;a href=&#34;lang/cpp20/less_eager_instantiation_of_constexpr_functions.html&#34;&gt;評価されない文脈での定数式評価によって特殊メンバ関数がインスタンス化されることを規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sizeof&lt;/code&gt;や&lt;code&gt;decltype&lt;/code&gt;などの評価されない文脈において定数式評価を行った場合に、ムーブコンストラクタのような特殊メンバ関数が定義されることを規定&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;2019 Update 7 (partial)&lt;br /&gt;2022 Update 1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0515R3: &lt;a href=&#34;lang/cpp20/consistent_comparison.html&#34;&gt;&lt;code&gt;&amp;lt;=&amp;gt;&lt;/code&gt;/&lt;code&gt;==&lt;/code&gt;による比較演算子の自動定義&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;三方比較演算子によって比較演算子の自動生成を行うようにする&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;8.0 (partial)&lt;br /&gt;10&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0692R1: &lt;a href=&#34;lang/cpp20/access_checking_on_specializations.html&#34;&gt;特殊化のアクセスチェック&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0624R2: &lt;a href=&#34;lang/cpp20/default_constructible_and_assignable_stateless_lambdas.html&#34;&gt;状態を持たないラムダ式を、デフォルト構築可能、代入可能とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;キャプチャしていないラムダ式をデフォルト構築・代入可能にする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0767R1: &lt;a href=&#34;lang/cpp20/deprecate_pod.html&#34;&gt;PODを非推奨化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;PODという用語を非推奨化する&lt;/td&gt;
&lt;td&gt;10.1&lt;/td&gt;
&lt;td&gt;21&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0315R4: &lt;a href=&#34;lang/cpp20/wording_for_lambdas_in_unevaluated_contexts.html&#34;&gt;評価されない文脈でのラムダ式&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;評価されない文脈でもラムダ式を書くことができるようにする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;2024.0&lt;/td&gt;
&lt;td&gt;2019 Update 8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0840R2: &lt;a href=&#34;lang/cpp20/language_support_for_empty_objects.html&#34;&gt;空オブジェクトを言語サポート&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;[[no_unique_address]]&lt;/code&gt;属性を導入し、空の型のオブジェクトをほかのオブジェクトと共有する最適化を許可する&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 9 &lt;sup&gt;&lt;a href=&#34;#note-t1-1&#34; id=&#34;note_ref-t1-1&#34;&gt;†1&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0962R1: &lt;a href=&#34;lang/cpp20/relaxing_the_range_for_loop_customization_point_finding_rules.html&#34;&gt;範囲for文がカスタマイゼーションポイントを見つけるルールを緩和&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;begin()&lt;/code&gt;/&lt;code&gt;end()&lt;/code&gt;メンバ関数のどちらかが見つからなかった場合に非メンバ関数の&lt;code&gt;begin()&lt;/code&gt;/&lt;code&gt;end()&lt;/code&gt;を探しにいく&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0969R0: &lt;a href=&#34;lang/cpp20/allow_structured_bindings_to_accessible_members.html&#34;&gt;friend指定された関数内から構造化束縛を使用して非公開メンバ変数にアクセスすることを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;構造化束縛の仕様として公開メンバ変数のみを取り出せるようになっていたが、friend指定された関数からは非公開メンバ変数にもアクセスできるようにする&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0961R1: &lt;a href=&#34;lang/cpp20/relaxing_the_structured_bindings_customization_point_finding_rules.html&#34;&gt;構造化束縛がカスタマイゼーションポイントを見つけるルールを緩和&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;非テンプレートの&lt;code&gt;get()&lt;/code&gt;メンバ関数が見つかった場合は、非メンバ関数の&lt;code&gt;get()&lt;/code&gt;を探しにいく&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0634R3: &lt;a href=&#34;lang/cpp20/down_with_typename.html&#34;&gt;型の文脈で&lt;code&gt;typename&lt;/code&gt;の省略を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;型しか現れない文脈では、依存名を解決するための&lt;code&gt;typename&lt;/code&gt;キーワードを省略できるようにする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;2023.1&lt;/td&gt;
&lt;td&gt;2019 Update 9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0780R2: &lt;a href=&#34;lang/cpp20/allow_pack_expansion_in_lambda_init_capture.html&#34;&gt;ラムダ式の初期化キャプチャでのパック展開を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;[...args = std::move(args)]&lt;/code&gt;のようなキャプチャを許可&lt;/td&gt;
&lt;td&gt;9&lt;br /&gt;10&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.7&lt;/td&gt;
&lt;td&gt;2019 Update 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0479R5: &lt;a href=&#34;lang/cpp20/likely_and_unlikely_attributes.html&#34;&gt;確率が高い分岐と低い分岐を伝える属性 &lt;code&gt;[[likely]]&lt;/code&gt;, &lt;code&gt;[[unlikely]]&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;条件分岐の最適化ヒントを与える属性&lt;/td&gt;
&lt;td&gt;9 (partial, &lt;code&gt;switch&lt;/code&gt; 文のみ可能)&lt;br /&gt; 10&lt;/td&gt;
&lt;td&gt;12.0&lt;/td&gt;
&lt;td&gt;2021.7&lt;/td&gt;
&lt;td&gt;2019 Update 6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0929R2: &lt;a href=&#34;lang/cpp20/checking_for_abstract_class_types.html&#34;&gt;抽象型のチェック&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;関数の宣言段階では、パラメータおよび戻り値型が抽象型かどうかをチェックしないようにする&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;2019 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0732R2: &lt;a href=&#34;lang/cpp20/class_types_in_non-type_template_parameters.html&#34;&gt;非型テンプレートパラメータとしてクラス型を許可する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数式として使用できる型を広く非型テンプレートパラメータとして使用できるようにする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;2022.2 Partial&lt;/td&gt;
&lt;td&gt;2019 Update 6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0722R3: &lt;a href=&#34;lang/cpp20/efficient_sized_delete_for_variable_sized_classes.html&#34;&gt;可変長データを扱うクラスの効率的な&lt;code&gt;delete&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;クラスの&lt;code&gt;delete&lt;/code&gt;演算子が呼び出される前にデストラクタが呼ばれないようにするオプションを追加&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;6.0&lt;/td&gt;
&lt;td&gt;2023.0&lt;/td&gt;
&lt;td&gt;2019 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1064R0: &lt;a href=&#34;lang/cpp20/allow_virtual_function_calls_in_constant_expressions.html&#34;&gt;定数式からの仮想関数の呼び出しを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;仮想関数に&lt;code&gt;constexpr&lt;/code&gt;を付けられない制限を解除&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1327R1: &lt;a href=&#34;lang/cpp20/allowing_dynamic_cast_polymorphic_typeid_in_constant_expressions.html&#34;&gt;定数式での&lt;code&gt;dynamic_cast&lt;/code&gt;、多態的な&lt;code&gt;typeid&lt;/code&gt;を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数式での動的多態を許可&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1002R1: &lt;a href=&#34;lang/cpp20/try-catch_blocks_in_constexpr_functions.html&#34;&gt;constexpr関数内でのtry-catchブロックを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;constexpr関数内でtry-catchブロックを書けるようにする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;td&gt;2023.1&lt;/td&gt;
&lt;td&gt;2019 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1073R3: &lt;a href=&#34;lang/cpp20/immediate_functions.html&#34;&gt;常に定数式評価する&lt;code&gt;consteval&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;consteval&lt;/code&gt;キーワードを追加し、常に定数式評価されるよう指定できるようにする&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1330R0: &lt;a href=&#34;lang/cpp20/changing_the_active_member_of_a_union_inside_constexpr.html&#34;&gt;定数式内での共用体のアクティブメンバの変更を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;共用体メンバの書き換えを定数式内で行えるようにする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2017&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1008R1: &lt;a href=&#34;lang/cpp20/prohibit_aggregates_with_user-declared_constructors.html&#34;&gt;ユーザー宣言したコンストラクタを持つクラスの集成体初期化を禁止&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コンストラクタが&lt;code&gt;delete&lt;/code&gt;／&lt;code&gt;default&lt;/code&gt;宣言されているクラスを、集成体初期化によってコンストラクタ呼び出しを回避して構築できてしまっていた技法を禁止&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0892R2: &lt;a href=&#34;lang/cpp20/explicit_bool.html&#34;&gt;関数を条件付きで&lt;code&gt;explicit&lt;/code&gt;にする構文を追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;explicit(true)&lt;/code&gt;のように&lt;code&gt;explicit&lt;/code&gt;に真理値パラメータを指定できるようにする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1236R1: &lt;a href=&#34;lang/cpp20/signed_integers_are_twos_complement.html&#34;&gt;符号付き整数型が2の補数表現であることを規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;符号付き整数型のビット表現を2の補数に規定する&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2023.0&lt;/td&gt;
&lt;td&gt;2022 Update 14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0482R6: &lt;a href=&#34;lang/cpp20/char8_t.html&#34;&gt;UTF-8エンコーディングされた文字の型として&lt;code&gt;char8_t&lt;/code&gt;を追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;UTF-8エンコードされた文字かどうかでオーバーロード・特殊化をできるようにする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;7 (&lt;code&gt;-fchar8_t&lt;/code&gt;オプションが必要)&lt;br /&gt;8 (&lt;code&gt;-std=c++20&lt;/code&gt;で有効化)&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1094R2: &lt;a href=&#34;lang/cpp20/nested_inline_mamespaces.html&#34;&gt;入れ子名前空間定義でのインライン名前空間&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;namespace ns1::inline ns2::ns3 {}&lt;/code&gt;のように、入れ子名前空間を定義する式にインライン名前空間の指定を含められるようにする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1091R3: &lt;a href=&#34;lang/cpp20/extending_structured_bindings_to_be_more_like_variable_declarations.html&#34;&gt;構造化束縛を拡張して通常の変数宣言のように使用できるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;記憶域指定子として&lt;code&gt;static&lt;/code&gt;と&lt;code&gt;thread_local&lt;/code&gt;の指定を許可&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;8.0 (partial)&lt;br /&gt;16&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1381R1: &lt;a href=&#34;lang/cpp20/reference_capture_of_structured_bindings.html&#34;&gt;構造化束縛した変数の参照キャプチャを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;構造化束縛をした変数は特殊な扱いのためラムダ式で参照キャプチャできない規定となっていたがこれを許可する&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;8.0 (partial)&lt;br /&gt;16&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0960R3: &lt;a href=&#34;lang/cpp20/allow_initializing_aggregates_from_a_parenthesized_list_of_values.html&#34;&gt;丸カッコの値リストからの集成体初期化を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;T x{1, 2, 3};&lt;/code&gt;と同様に&lt;code&gt;T x(1, 2, 3);&lt;/code&gt;でも集成体初期化できるようにする&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1009R2: &lt;a href=&#34;lang/cpp20/array_size_deduction_in_new-expressions.html&#34;&gt;&lt;code&gt;new&lt;/code&gt;式での配列要素数の推論&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;double* p = new double[]{1,2,3};&lt;/code&gt;を許可&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1041R4: &lt;a href=&#34;lang/cpp20/make_char16t_char32t_string_literals_be_utf16_32.html&#34;&gt;&lt;code&gt;char16_t&lt;/code&gt;と&lt;code&gt;char32_t&lt;/code&gt;の文字・文字列リテラルを、文字コードUTF-16/32に規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;__STDC_UTF_16__&lt;/code&gt;、&lt;code&gt;__STDC_UTF_32__&lt;/code&gt;の定義に関係なく、&lt;code&gt;char16_t&lt;/code&gt;、&lt;code&gt;char32_t&lt;/code&gt;のリテラルをUTF-16/32文字コードに規定する&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;2023.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1103R3: &lt;a href=&#34;lang/cpp20/modules.html&#34;&gt;モジュール&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ヘッダファイル・ソースファイル、インクルードに変わる仕組みとしてモジュールを導入する&lt;/td&gt;
&lt;td&gt;11 (&lt;code&gt;-fmodules-ts&lt;/code&gt;が必要)&lt;/td&gt;
&lt;td&gt;8.0 partial (&lt;code&gt;-fmodules&lt;/code&gt;, &lt;code&gt;-fmodules-ts&lt;/code&gt;が必要)&lt;br /&gt;15&lt;/td&gt;
&lt;td&gt;2023.1 (partial)&lt;/td&gt;
&lt;td&gt;2019 Update 8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0912R5: &lt;a href=&#34;lang/cpp20/coroutines.html&#34;&gt;コルーチン&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;関数実行を中断・再開する仕組みとしてコルーチンを導入する&lt;/td&gt;
&lt;td&gt;10 (&lt;code&gt;-fcoroutines&lt;/code&gt;が必要)&lt;br /&gt;11 (&lt;code&gt;-std=c++20&lt;/code&gt;で有効化)&lt;/td&gt;
&lt;td&gt;8.0 (partial)&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1161R3: &lt;a href=&#34;lang/cpp20/deprecate_uses_of_the_comma_operator_in_subscripting_expressions.html&#34;&gt;添字演算子内でのカンマ演算子の使用を非推奨化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ar[i, j]&lt;/code&gt;を非推奨化。&lt;code&gt;ar[(i, j)]&lt;/code&gt;はOK&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.6&lt;/td&gt;
&lt;td&gt;2019 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1331R2: &lt;a href=&#34;lang/cpp20/permitting_trivial_default_initialization_in_constexpr_contexts.html&#34;&gt;constexpr関数内でのトリビアルなデフォルト初期化を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;constexpr関数内でのデフォルト初期化を許可し、未初期化値を読むことのみ禁止する&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;10.0&lt;/td&gt;
&lt;td&gt;2022.3&lt;/td&gt;
&lt;td&gt;2019 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0848R3: &lt;a href=&#34;lang/cpp20/conditionally_trivial_special_member_functions.html&#34;&gt;条件付きで特殊メンバ関数をトリビアルに定義するように&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;制約によってトリビアルな特殊メンバ関数と非トリビアルな特殊メンバ関数をオーバーロードできるようにする&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;16 (partial)&lt;br /&gt;19&lt;/td&gt;
&lt;td&gt;2022.3&lt;/td&gt;
&lt;td&gt;2019 Update 8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1301R4: &lt;a href=&#34;lang/cpp20/nodiscard_should_have_a_reason.html&#34;&gt;&lt;code&gt;[[nodiscard]]&lt;/code&gt;属性に理由となる文字列を付加できるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;関数の戻り値を無視してはならない理由を関数宣言に持たせ、警告メッセージに役立てる&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.6&lt;/td&gt;
&lt;td&gt;2019 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1099R5: &lt;a href=&#34;lang/cpp20/using_enum.html&#34;&gt;スコープ付き列挙型のusing宣言&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;using enum EnumType;&lt;/code&gt;もしくは&lt;code&gt;using EnumType::enumerator&lt;/code&gt;とすることで、列挙値のスコープ指定を省略できるようにする&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;2023.0&lt;/td&gt;
&lt;td&gt;2019 Update 4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1816R0: &lt;a href=&#34;lang/cpp20/class_template_argument_deduction_for_aggregates.html&#34;&gt;集成体クラステンプレートのテンプレート引数推論&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;クラステンプレートのテンプレート引数推論はコンストラクタ引数から推論されるが、集成体初期化からも推論できるようにする&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;2024.0&lt;/td&gt;
&lt;td&gt;2019 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1668R1: &lt;a href=&#34;lang/cpp20/enabling_constexpr_intrinsics_by_permitting_unevaluated_inline-assembly_in_constexpr_functions.html&#34;&gt;constexpr関数内で未評価のインラインアセンブリを許可することによる組み込み関数のconstexpr有効化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コンパイル時に評価されない場合にconstexpr関数にasm定義を含めることを許可&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;10.0&lt;/td&gt;
&lt;td&gt;2022.3&lt;/td&gt;
&lt;td&gt;2019 Update 9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0388R4: &lt;a href=&#34;lang/cpp20/permit_conversions_to_arrays_of_unknown_bound.html&#34;&gt;要素数不明の配列への変換を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;要素数が判明している配列から、要素数が不明の配列への変換を許可&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;2021.6&lt;/td&gt;
&lt;td&gt;2019 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1143R2: &lt;a href=&#34;lang/cpp20/constinit.html&#34;&gt;コンパイル時初期化を強制する&lt;code&gt;constinit&lt;/code&gt;キーワードを追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;初期化のみコンパイル時におわらせたい場合に使用する&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;10.0&lt;/td&gt;
&lt;td&gt;2022.3&lt;/td&gt;
&lt;td&gt;2019 Update 10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1152R4: &lt;a href=&#34;lang/cpp20/deprecating_volatile.html&#34;&gt;ほとんどの&lt;code&gt;volatile&lt;/code&gt;を非推奨化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;volatile&lt;/code&gt;の有用な機能のみを残し、効果が疑わしい、または壊れている機能を非推奨化する&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;10.0&lt;/td&gt;
&lt;td&gt;2021.6&lt;/td&gt;
&lt;td&gt;2019 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1814R0: &lt;a href=&#34;lang/cpp20/class_template_argument_deduction_for_alias_templates.html&#34;&gt;エイリアステンプレート経由でのクラステンプレートのテンプレート引数推論&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;エイリアステンプレートからクラステンプレートのテンプレート引数を推論できるようにする&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;19 (partial)&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;2019 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0784R7: &lt;a href=&#34;lang/cpp20/more_constexpr_containers.html&#34;&gt;可変サイズをもつコンテナの&lt;code&gt;constexpr&lt;/code&gt;化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;constexpr&lt;/code&gt;記憶域をもつメモリアロケータの存在を考慮することで、可変サイズをもつコンテナをコンパイル時に使用できるようにする&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;10.0&lt;/td&gt;
&lt;td&gt;2021.6&lt;/td&gt;
&lt;td&gt;2019 Update 9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1957R2: &lt;a href=&#34;lang/cpp20/converting_from_pointer_to_bool_should_be_considered_narrowing.html&#34;&gt;ポインタから&lt;code&gt;bool&lt;/code&gt;への変換を縮小変換とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ポインタから&lt;code&gt;bool&lt;/code&gt;値への変換を縮小変換と規定することで、意図しない変換を防止する&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;11.0&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;2019 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#note_ref-t1-1&#34; id=&#34;note-t1-1&#34;&gt;&lt;strong&gt;^&lt;/strong&gt;&lt;/a&gt; 不明な属性として無視されなくなっただけで期待する効果は得られない。完全に実装されるまでは、代わりに&lt;code&gt;&lt;a href=&#34;https://devblogs.microsoft.com/cppblog/msvc-cpp20-and-the-std-cpp20-switch/#msvc-extensions-and-abi&#34; target=&#34;_blank&#34;&gt;[[msvc::no_unique_address]]&lt;/a&gt;&lt;/code&gt;を使用できる。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;各処理系のC++20実装状況ページ：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GCC: &lt;a href=&#34;https://gcc.gnu.org/projects/cxx-status.html#cxx20&#34; target=&#34;_blank&#34;&gt;C++20 Support in GCC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Clang: &lt;a href=&#34;http://clang.llvm.org/cxx_status.html&#34; target=&#34;_blank&#34;&gt;C++ Support in Clang&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;libstdc++: &lt;a href=&#34;https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2020&#34; target=&#34;_blank&#34;&gt;C++ 2020 Implementation Status&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;libc++: &lt;a href=&#34;https://libcxx.llvm.org/Status/Cxx20.html&#34; target=&#34;_blank&#34;&gt;libc++ C++20 Status&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Visual C++ (MSVC):&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://learn.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance?view=msvc-170&#34; target=&#34;_blank&#34;&gt;Microsoft C/C++ language conformance by Visual Studio version&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.microsoft.com/ja-jp/cpp/visual-cpp-language-conformance&#34; target=&#34;_blank&#34;&gt;Visual C++ 言語への準拠&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/microsoft/STL/wiki/Changelog&#34; target=&#34;_blank&#34;&gt;次リリース情報(VS2019,2022) - Change log&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ICC: &lt;a href=&#34;https://www.intel.com/content/www/us/en/developer/articles/technical/c20-features-supported-by-intel-cpp-compiler.html&#34; target=&#34;_blank&#34;&gt;C++20 Features Supported by Intel® C++ Compiler&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href=&#34;#cpp23&#34; id=&#34;cpp23&#34;&gt;C++23言語機能の実装状況&lt;/a&gt;&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#gcc&#34;&gt;GCC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#clang&#34;&gt;Clang&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#icc&#34;&gt;ICX&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#visual_cpp&#34;&gt;MSVC&lt;/a&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;P0330R8: &lt;a href=&#34;lang/cpp23/literal_suffix_for_signed_size_t.html&#34;&gt;(符号付き)&lt;code&gt;size_t&lt;/code&gt;リテラルのためのサフィックス&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;42z&lt;/code&gt;/&lt;code&gt;42Z&lt;/code&gt;とすることで&lt;code&gt;size_t&lt;/code&gt;に対応する符号付き整数型のリテラルとする&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2022 Update 13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2290R3: &lt;a href=&#34;lang/cpp23/delimited_escape_sequences.html&#34;&gt;エスケープシーケンスの区切り&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;エスケープシーケンスの範囲を明確にする構文を追加する&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;2023.2&lt;/td&gt;
&lt;td&gt;2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2266R3: &lt;a href=&#34;lang/cpp23/simpler_implicit_move.html&#34;&gt;暗黙的なムーブを簡略化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;参照を返す関数の&lt;code&gt;return&lt;/code&gt;文で暗黙的にムーブされない問題を修正&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0849R8: &lt;a href=&#34;lang/cpp23/auto_cast.html&#34;&gt;&lt;code&gt;auto(x)&lt;/code&gt;による一時オブジェクトへの変換&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;auto(x)&lt;/code&gt;/&lt;code&gt;auto{x}&lt;/code&gt;で、式の値をコピーした一時オブジェクトを得る&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1787R6: &lt;a href=&#34;lang/cpp23/declarations_and_where_to_find_them.html&#34;&gt;スコープと名前探索の仕様整理&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;複雑で不完全になっているスコープと名前探索の仕様を整理し、一部の問題を解決する&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2615R1: &lt;a href=&#34;lang/cpp23/meaningful_exports.html&#34;&gt;無意味なexport宣言を禁止する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;いくつかの不必要な宣言に対するモジュールexportを禁止する&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2360R0: &lt;a href=&#34;lang/cpp23/extend_init_statement_to_allow_alias_declaration.html&#34;&gt;初期化文での型の別名宣言を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;for (using T = int; T e : v) {}&lt;/code&gt;を許可&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2718R0: &lt;a href=&#34;lang/cpp23/lifetime_extension_in_range_based_for_loop.html&#34;&gt;範囲for文が範囲初期化子内で生じた一時オブジェクトを延命することを規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;範囲初期化子内で生じた一時オブジェクトは範囲for文の終わりまで延命される&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2324R2: &lt;a href=&#34;lang/cpp23/labels_at_the_end_of_compound_statements.html&#34;&gt;複合文の末尾へのラベルを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;C互換のため、複合文の末尾でのgoto文のラベルを許可する&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;2023.2&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0847R7: &lt;a href=&#34;lang/cpp23/deducing_this.md.nolink&#34;&gt;自身のオブジェクトを明示的にパラメータとして指定する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;メンバ関数が&lt;code&gt;*this&lt;/code&gt;の型・オブジェクトをパラメータとしてとり、&lt;code&gt;*this&lt;/code&gt;オブジェクトがconst/非const、左辺値/右辺値であるかをメンバ関数内で識別できるようにする&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;2022 Update 2 (partial)&lt;br /&gt;2022 Update 13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1847R4: &lt;a href=&#34;lang/cpp23/make_declaration_order_layout_mandated.html&#34;&gt;アクセス制御の異なるメンバ変数のレイアウトを宣言順に規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;アクセス制御の異なるメンバ変数のレイアウトは並び替えを許可されていたが宣言順に規定する&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;2022&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2128R6: &lt;a href=&#34;lang/cpp23/multidimensional_subscript_operator.html&#34;&gt;添字演算子の多次元サポート&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;operator[](int x, int y, int z)&lt;/code&gt;のように添字演算子のオーバーロードで複数のパラメータをとることを許可&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2022 Update 12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1169R4: &lt;a href=&#34;lang/cpp23/static_operator.html&#34;&gt;&lt;code&gt;this&lt;/code&gt;ポインタをもつ必要のない演算子を&lt;code&gt;static&lt;/code&gt;として宣言できるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;状態をもたないいくつかの演算子を&lt;code&gt;static&lt;/code&gt;として宣言できるようにする&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;2023.2&lt;/td&gt;
&lt;td&gt;2022 Update 14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2201R1: &lt;a href=&#34;lang/cpp23/mixed_string_literal_concatenation.html&#34;&gt;異なる文字エンコーディングをもつ文字列リテラルの連結を不適格とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;auto a = u8&#34;&#34; L&#34;&#34;;&lt;/code&gt;のような異なる文字エンコーディング同士での文字列リテラルの連結を禁止する&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2029R4: &lt;a href=&#34;lang/cpp23/numeric_and_universal_character_escapes_in_character_and_string_literals.html&#34;&gt;文字・文字列リテラル中の数値・ユニバーサルキャラクタのエスケープに関する問題解決&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2362R3: &lt;a href=&#34;lang/cpp23/remove_non_encodable_wide_character_literals_and_multicharacter_wide_character_literals.html&#34;&gt;1ワイド文字に収まらないワイド文字リテラルを禁止する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;エンコード結果として&lt;code&gt;wchar_t&lt;/code&gt;の大きさに収まらないワイド文字リテラルを禁止する&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;2023.2&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2071R2: &lt;a href=&#34;lang/cpp23/named_universal_character_escapes.html&#34;&gt;名前付きユニバーサルキャラクタ名&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;16進数のユニバーサルキャラクタだけでなく、その文字の名前を入力できるようにする&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;2023.2&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2096R2: &lt;a href=&#34;lang/cpp23/generalized_wording_for_partial_specializations.html&#34;&gt;変数テンプレートの部分特殊化を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;変数テンプレートの部分特殊化を許可するために部分特殊化の仕様を汎用化&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2582R1: &lt;a href=&#34;lang/cpp23/class_template_argument_deduction_from_inherited.html&#34;&gt;継承コンストラクタからのクラステンプレート引数の推論&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;継承コンストラクタからもクラステンプレート引数を推論できるようにする&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1938R3: &lt;code&gt;&lt;a href=&#34;lang/cpp23/if_consteval.html&#34;&gt;if consteval&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;コンパイル時の文脈かどうかで分岐させる&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;2022 Update 14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1401R5: &lt;a href=&#34;lang/cpp23/narrowing_contextual_conversions_to_bool.html&#34;&gt;定数式の文脈での&lt;code&gt;bool&lt;/code&gt;への縮小変換を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;if constexpr(flags &amp;amp; Flags::Exec)&lt;/code&gt;や&lt;code&gt;static_assert(N);&lt;/code&gt;を許可&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2022 Update 14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2242R3: &lt;a href=&#34;lang/cpp23/non_literal_variables_in_constexpr_functions.html&#34;&gt;定数式内での非リテラル変数、静的変数・スレッドローカル変数およびgotoとラベルの存在を許可する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コンパイル時に評価されない限り、定数式内に静的変数・スレッドローカル変数およびgoto文とラベルを含むことを許可する&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2022 Update 13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2246R1: &lt;a href=&#34;lang/cpp23/character_encoding_of_diagnostic_text.html&#34;&gt;静的な診断メッセージの文字エンコーディング&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;static_assert&lt;/code&gt;や&lt;code&gt;[[deprecated]]&lt;/code&gt;などの診断メッセージの文字集合に関する要件をなくす&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2022&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2448R2: &lt;a href=&#34;lang/cpp23/relaxing_some_constexpr_restrictions.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;関数が定数実行できない場合でも適格とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;17 (partial)&lt;br /&gt;19&lt;/td&gt;
&lt;td&gt;2024.0 (partial)&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2647R1: &lt;a href=&#34;lang/cpp23/permitting_static_constexpr_variables_in_constexpr_functions.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;関数内での&lt;code&gt;static constexpr&lt;/code&gt;変数を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;constexpr&lt;/code&gt;関数のローカルで定数を定義できるようにする&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;2023.2&lt;/td&gt;
&lt;td&gt;2026 Update 6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2564R3: &lt;a href=&#34;lang/cpp23/consteval_needs_to_propagate_up.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;関数内で&lt;code&gt;consteval&lt;/code&gt;関数を呼び出せない問題を緩和&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;consteval&lt;/code&gt;呼び出しを含む&lt;code&gt;constexpr&lt;/code&gt;関数を条件付きで&lt;code&gt;consteval&lt;/code&gt;関数とみなすようにする&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;2024.0&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1102R2: &lt;a href=&#34;lang/cpp23/down_with_lambda_parens.html&#34;&gt;ラムダ式で&lt;code&gt;()&lt;/code&gt;を省略できる条件を緩和&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;修飾や戻り値型をともなってもパラメータリストが空であれば&lt;code&gt;()&lt;/code&gt;を省略できる&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2022 Update 14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2173R1: &lt;a href=&#34;lang/cpp23/attributes_on_lambda_expressions.html&#34;&gt;ラムダ式に対する属性&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ラムダ式のいくつかの箇所に属性を記述できるようにする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2022 Update 14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1774R8: &lt;a href=&#34;lang/cpp23/portable_assumptions.html&#34;&gt;コード内容の仮定をコンパイラに伝えるassume属性&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;最適化のために、コードの仮定をコンパイラに伝える属性を標準化する&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2316R2: &lt;a href=&#34;lang/cpp23/consistent_character_literal_encoding.html&#34;&gt;文字リテラルエンコーディングを一貫させる&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;プリプロセッサの条件式での文字リテラルの扱いをC++式と同様にする&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2022&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2334R1: &lt;a href=&#34;lang/cpp23/add_support_for_preprocessing_directives_elifdef_and_elifndef.html&#34;&gt;&lt;code&gt;elif&lt;/code&gt;/&lt;code&gt;elifdef&lt;/code&gt;/&lt;code&gt;elifndef&lt;/code&gt;のサポートを追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#if&lt;/code&gt;/&lt;code&gt;#ifdef&lt;/code&gt;/&lt;code&gt;#ifndef&lt;/code&gt;に対応する複数条件命令のサポートを追加する&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2022 Update 10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2437R1: &lt;a href=&#34;lang/cpp23/warning.html&#34;&gt;&lt;code&gt;#warning&lt;/code&gt;のサポートを追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;多くのC++コンパイラが実装していたプリプロセス時の警告&lt;code&gt;#warning message&lt;/code&gt;を正式サポート&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;2023.2&lt;/td&gt;
&lt;td&gt;2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2295R6: &lt;a href=&#34;lang/cpp23/support_for_utf8_as_a_portable_source_file_encoding.html&#34;&gt;汎用的なソースコードのエンコーディングとしてUTF-8をサポート&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;すべてのコンパイラはUTF-8文字コードのソースコードをサポートしなければならない&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;2023.2&lt;/td&gt;
&lt;td&gt;2019 Update 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2223R2: &lt;a href=&#34;lang/cpp23/trimming_whitespaces_before_line_splicing.html&#34;&gt;行末スペースを無視するよう規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;行末が「&lt;code&gt;\ &lt;/code&gt;」でおわっていた場合にMSVCは行の継続をしない実装になっていたため動作を共通化するため仕様を規定&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2026&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;各処理系のC++23実装状況ページ：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GCC: &lt;a href=&#34;https://gcc.gnu.org/projects/cxx-status.html#cxx23&#34; target=&#34;_blank&#34;&gt;C++23 Support in GCC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Clang: &lt;a href=&#34;https://clang.llvm.org/cxx_status.html#cxx23&#34; target=&#34;_blank&#34;&gt;C++23 implementation status&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Visual C++ (MSVC):&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://learn.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance?view=msvc-170&#34; target=&#34;_blank&#34;&gt;Microsoft C/C++ language conformance by Visual Studio version&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://learn.microsoft.com/en-us/cpp/overview/cpp-conformance-improvements?view=msvc-170&#34; target=&#34;_blank&#34;&gt;C++ Conformance improvements, behavior changes, and bug fixes in Visual Studio 2022&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://devblogs.microsoft.com/cppblog/msvc-compiler-updates-in-visual-studio-2022-version-17-13/&#34; target=&#34;_blank&#34;&gt;C++ Language Updates in MSVC in Visual Studio 2022 17.13&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://devblogs.microsoft.com/cppblog/msvc-compiler-language-updates-in-visual-studio-2022-version-17-12/&#34; target=&#34;_blank&#34;&gt;MSVC Compiler Language Updates in Visual Studio 2022 version 17.12&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://devblogs.microsoft.com/cppblog/c-language-updates-in-msvc-in-visual-studio-2022-17-14/&#34; target=&#34;_blank&#34;&gt;C++ Language Updates in MSVC in Visual Studio 2022 17.14&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://learn.microsoft.com/en-us/cpp/overview/msvc-conformance-improvements&#34; target=&#34;_blank&#34;&gt;C/C++ Conformance improvements, behavior changes, and bug fixes in Microsoft C++ (MSVC) Build Tools&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ICX: &lt;a href=&#34;https://www.intel.com/content/www/us/en/developer/articles/technical/c23-features-supported-by-intel-c-compiler.html&#34; target=&#34;_blank&#34;&gt;C++23 Features Supported by Intel® C++ Compiler&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href=&#34;#cpp26&#34; id=&#34;cpp26&#34;&gt;C++26言語機能の実装状況&lt;/a&gt;&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#gcc&#34;&gt;GCC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#clang&#34;&gt;Clang&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#icc&#34;&gt;ICX&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#visual_cpp&#34;&gt;MSVC&lt;/a&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;P2752R3: &lt;a href=&#34;lang/cpp26/static_storage_for_braced_initializers.html&#34;&gt;&lt;code&gt;std::initializer_list&lt;/code&gt;の配列を静的記憶域に配置する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;std::vector v = {1, 2, 3};&lt;/code&gt;のような初期化で初期化子リストを静的記憶域に配置することで無駄なコピーをなくす&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2169R4: &lt;a href=&#34;lang/cpp26/nice_placeholder_with_no_name.html&#34;&gt;宣言のみで使用しない変数の名前として&lt;code&gt;_&lt;/code&gt;をサポート&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;変数名&lt;code&gt;_&lt;/code&gt;は暗黙で&lt;code&gt;[[maybe_unused]]&lt;/code&gt;が指定される&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1854R4: &lt;a href=&#34;lang/cpp26/making_non-encodable_string_literals_ill-formed.html&#34;&gt;文字列リテラルの文字エンコーディング失敗を不適格とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;文字列リテラルのエンコーディング時に文字表現が失われる場合にコンパイルエラーにする&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2361R6: &lt;a href=&#34;lang/cpp26/unevaluated_strings.html&#34;&gt;コンパイル時にのみ使用される文字列の扱いを明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;static_assert&lt;/code&gt;や&lt;code&gt;[[deprecated]]&lt;/code&gt;などで使用されるコンパイル時の文字列について、文字コードの指定を禁止し、実行時エンコーディングが行われないことを規定&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2552R3: &lt;a href=&#34;lang/cpp26/on_the_ignorability_of_standard_attributes.html&#34;&gt;属性の無視性を見直し&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;構文として適格な属性のみを無視できるようにし、そうでない属性の使用を&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;とする&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2738R1: &lt;a href=&#34;lang/cpp26/constexpr_cast_from_voidptr.html&#34;&gt;定数式での&lt;code&gt;void*&lt;/code&gt;からポインタ型へのキャストを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;型消去のために&lt;code&gt;void*&lt;/code&gt;からポインタ型へのキャストを許可する&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2741R3: &lt;a href=&#34;lang/cpp26/user-generated_static_assert_messages.html&#34;&gt;&lt;code&gt;static_assert&lt;/code&gt;の診断メッセージにユーザーが生成した文字列の指定を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;constexpr&lt;/code&gt;な&lt;code&gt;S.size()&lt;/code&gt;と&lt;code&gt;S.data()&lt;/code&gt;メンバ関数をもつオブジェクトをコンパイル時文字列として指定できるようにする&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2558R2: &lt;a href=&#34;lang/cpp26/add_atsign_dollar_graveaccent_to_the_basic_character_set.html&#34;&gt;基本文字集合に@、$、`を追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;C言語との互換性のためにこれらの文字を基本文字集合に追加&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2662R3: &lt;a href=&#34;lang/cpp26/pack_indexing.html&#34;&gt;パラメータパックへのインデックスアクセスを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;可変引数テンプレートのパラメータパックに添字アクセスできるようにする&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2864R2: &lt;a href=&#34;lang/cpp26/remove_deprecated_arithmetic_conversion_on_enumerations.html&#34;&gt;非推奨となっていた列挙値から算術型への暗黙変換を削除&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;C++20から非推奨となっていた列挙値への算術演算で算術型に暗黙変換される仕様を削除&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2748R5: &lt;a href=&#34;lang/cpp26/disallow_binding_a_returned_glvalue_to_a_temporary.html&#34;&gt;返却された左辺値から暗黙変換された一時オブジェクトが参照に束縛されることを禁止する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;寿命切れの変数によって引き起こされるバグを防止する&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3106R1: &lt;a href=&#34;lang/cpp26/clarifying_rules_for_brace_elision_in_aggregate_initialization.html&#34;&gt;要素数不明の配列を集成体初期化する規則を明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;配列要素の集成体初期化で&lt;code&gt;{}&lt;/code&gt;が省略された場合の矛盾していた規定を修正&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0609R3: &lt;a href=&#34;lang/cpp26/attributes_for_structured_bindings.html&#34;&gt;構造化束縛への属性を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;auto [a, b [[maybe_unused]], c] = f();&lt;/code&gt;のように構造化束縛の要素に対して属性を付加できるようにする&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3034R1: &lt;a href=&#34;lang/cpp26/module_declarations_shouldnt_be_macros.html&#34;&gt;モジュール宣言でのモジュール名のマクロ展開を禁止する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;export module MACRO_NAME;&lt;/code&gt;を禁止&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2809R3: &lt;a href=&#34;lang/cpp26/trivial_infinite_loops_are_not_undefined_behavior.html&#34;&gt;空の無限ループは未定義動作ではないと規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;並行プログラムの進行保証などを考慮して空の無限ループを未定義動作ではないものとする&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2795R5: &lt;a href=&#34;lang/cpp26/erroneous_behavior_for_uninitialized_reads.html&#34;&gt;未初期化変数の読み取りをエラー性動作とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;初期化されていない自動変数の読み取りの安全性を規定する&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2573R2: &lt;a href=&#34;lang/cpp26/delete_reason.html&#34;&gt;関数宣言を削除する理由を指定できるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;f() = delete(&#34;reason&#34;);&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2893R3: &lt;a href=&#34;lang/cpp26/variadic_friends.html&#34;&gt;可変引数テンプレートで&lt;code&gt;friend&lt;/code&gt;宣言をできるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;クラステンプレートの可変引数テンプレートでまとめて&lt;code&gt;friend&lt;/code&gt;宣言できるようにする&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2747R2: &lt;a href=&#34;lang/cpp26/constexpr_placement_new.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;配置&lt;code&gt;new&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数式の文脈での配置&lt;code&gt;new&lt;/code&gt;を許可&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3144R2: &lt;a href=&#34;lang/cpp26/deleting_a_pointer_to_an_incomplete_type_should_be_ill-formed.html&#34;&gt;不完全型へのポインタに対する&lt;code&gt;delete&lt;/code&gt;を不適格とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;未定義動作を引き起こす操作をコンパイルエラーとする&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2963R3: &lt;a href=&#34;lang/cpp26/ordering_of_constraints_involving_fold_expressions.html&#34;&gt;制約式内での畳み込み式の順序付け&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;畳み込み式を含む制約の包摂関係を認識できるようにし、オーバーロード解決の曖昧さを解消する&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0963R3: &lt;a href=&#34;lang/cpp26/structured_binding_declaration_as_a_condition.html&#34;&gt;条件式での構造化束縛の使用を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;式全体を&lt;code&gt;bool&lt;/code&gt;値に変換できる場合に条件式で構造化束縛を使用できることとする&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;21&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2686R5: &lt;a href=&#34;lang/cpp26/constexpr_structured_bindings_and_references_to_constexpr_variables.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;構造化束縛の許可と、&lt;code&gt;constexpr&lt;/code&gt;参照の制限緩和&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数式に対する構造化束縛を許可し、関連して&lt;code&gt;constexpr&lt;/code&gt;参照の制限を緩和して自動変数も参照できるようにする&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3068R6: &lt;a href=&#34;lang/cpp26/allowing_exception_throwing_in_constant-evaluation.html&#34;&gt;定数評価での例外送出を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数式の文脈での例外の送出と捕捉を許可&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2865R6: &lt;a href=&#34;lang/cpp26/remove_deprecated_array_comparisons.html&#34;&gt;非推奨だった組み込み配列の比較を削除&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;C++20で非推奨となっていた配列比較を削除&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1061R10: &lt;a href=&#34;lang/cpp26/structured_bindings_can_introduce_a_pack.html&#34;&gt;構造化束縛でパックを導入できるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;タプルを分解する際に複数の変数をパックとして宣言できるようにする。&lt;code&gt;auto [a, ...xs] = f();&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3176R0: &lt;a href=&#34;lang/cpp26/the_oxford_variadic_comma.html&#34;&gt;先行するカンマのない省略記号を非推奨化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;void f(int, ...);&lt;/code&gt;はOK。&lt;code&gt;void f(int...);&lt;/code&gt;は非推奨&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3074R7: &lt;a href=&#34;lang/cpp26/trivial_unions.html&#34;&gt;共用体の特殊メンバ関数のトリビアル化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;非トリビアルな型をメンバにもつ共用体のデフォルトコンストラクタとデストラクタをトリビアルにし、未初期化ストレージとして使用可能にする&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2900R14: &lt;a href=&#34;lang/cpp26/contracts.html&#34;&gt;契約プログラミングをサポートする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;関数の事前条件、事後条件、不変条件を記述できるようにする&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2841R7: &lt;a href=&#34;lang/cpp26/concept_and_variable-template_template-parameters.html&#34;&gt;コンセプトと変数テンプレートをテンプレート引数として渡せるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートテンプレートパラメータとして、クラステンプレートやエイリアステンプレートに加え、コンセプトと変数テンプレートも渡せるようにする&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1967R14: &lt;a href=&#34;lang/cpp26/embed.html&#34;&gt;ファイルを読み込む&lt;code&gt;#embed&lt;/code&gt;命令を追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;バイナリファイルをインクルードするメカニズム。&lt;code&gt;#include&lt;/code&gt;とちがって読み出しサイズなどの柔軟な指定ができる&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3618R0: &lt;a href=&#34;lang/cpp26/allow_attaching_main_to_the_global_module.html&#34;&gt;&lt;code&gt;main&lt;/code&gt;関数をグローバルモジュールに含められるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;main&lt;/code&gt;関数に&lt;code&gt;extern &#34;C++&#34;&lt;/code&gt;を指定できるようにすることで名前付きモジュールに含められるようにする&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;21&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2996R13: &lt;a href=&#34;lang/cpp26/reflection.html&#34;&gt;静的リフレクション&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;リフレクション演算子&lt;code&gt;^^&lt;/code&gt;と&lt;code&gt;std::meta::info&lt;/code&gt;型によりコンパイル時にさまざまな情報を取得できる&lt;/td&gt;
&lt;td&gt;16 (&lt;code&gt;-freflection&lt;/code&gt; オプション指定)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1306R5: &lt;a href=&#34;lang/cpp26/expansion_statements.html&#34;&gt;コンパイル時のタプルやリストを展開処理する&lt;code&gt;template for&lt;/code&gt;文&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;タプル・構造体・Range・パラメータパックなどの各要素に対してコンパイル時に文を展開する&lt;code&gt;template for&lt;/code&gt;文を追加&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3533R2: &lt;a href=&#34;lang/cpp26/constexpr_virtual_inheritance.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;仮想継承を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数式の文脈での仮想継承を許可&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2843R3: &lt;a href=&#34;lang/cpp26/preprocessing_is_never_undefined.html&#34;&gt;プリプロセッサ仕様での「未定義動作」を不適格 (診断不要) に変更&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;プリプロセッサとレキサーの文脈での「未定義動作」用語を&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt; (診断不要) に変更&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3868R1: &lt;a href=&#34;lang/cpp26/allow_line_before_module_declarations.html&#34;&gt;モジュール宣言より前での&lt;code&gt;#line&lt;/code&gt;ディレクティブの使用を許可する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;モジュール宣言より前での&lt;code&gt;#line&lt;/code&gt;ディレクティブの使用を禁止していたのは過度な制限だった&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P4136R2: &lt;a href=&#34;lang/cpp26/line_is_not_in_line_with_existing_implementation.html&#34;&gt;&lt;code&gt;#line&lt;/code&gt;ディレクティブの制約を現実の実装に合わせて緩和する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#line 0&lt;/code&gt;や&lt;code&gt;#line 2147483648&lt;/code&gt;のような行番号指定を&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;としていたが、条件付きサポートとして許可する&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P4004R1: &lt;a href=&#34;lang/cpp26/reconsider_partial_ordering_of_variadic_templates.html&#34;&gt;可変引数テンプレートの半順序を再検討する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;可変引数テンプレートの部分特殊化の半順序ルールを再検討して、より一貫したルールにする&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3865R3: &lt;a href=&#34;lang/cpp26/class_template_argument_deduction_for_type_template_template_parameters.html&#34;&gt;テンプレートテンプレートパラメータに対するクラステンプレートパラメータ引数推論&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートテンプレートパラメータからクラステンプレート引数を推論できるようにクラステンプレートのテンプレート引数推論を拡張する&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3726R2: &lt;a href=&#34;lang/cpp26/adjustments_to_union_lifetime_rules.html&#34;&gt;共用体メンバの生存期間規則の調整&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;共用体の先頭メンバの生存期間を暗黙に開始する規則を撤回して&lt;code&gt;std::start_lifetime()&lt;/code&gt;による明示的な開始へ変更し、生存期間外の要素を含む配列メンバを定数式で許可する&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P4143R0: &lt;a href=&#34;lang/cpp26/constant_evaluation_when.md.nolink&#34;&gt;定数評価の開始・終了タイミングを明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数評価がどのタイミングで開始・終了するかを明確化し、constexprコンテキストの規則を整える&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P4149R1: &lt;a href=&#34;lang/cpp26/define_immediate_context.md.nolink&#34;&gt;「immediate context」の定義を明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;SFINAEにおける「immediate context」の用語を厳密に定義し、置換失敗の範囲を明確にする&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3769R1: &lt;a href=&#34;lang/cpp26/clarifying_placement_new_deallocation.html&#34;&gt;配置newの解放処理を明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;配置&lt;code&gt;new&lt;/code&gt;で確保したメモリの解放処理の取り扱いに関するルールを明確化する&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;各処理系のC++26実装状況ページ：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GCC: &lt;a href=&#34;https://gcc.gnu.org/projects/cxx-status.html#cxx26&#34; target=&#34;_blank&#34;&gt;C++26 Support in GCC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Clang:&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://clang.llvm.org/cxx_status.html#cxx26&#34; target=&#34;_blank&#34;&gt;C++2c implementation status&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://libcxx.llvm.org/Status/Cxx26.html&#34; target=&#34;_blank&#34;&gt;libc++ C++26 Status&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Visual C++ (MSVC):&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://learn.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance?view=msvc-170&#34; target=&#34;_blank&#34;&gt;Microsoft C/C++ language conformance by Visual Studio version&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://learn.microsoft.com/en-us/cpp/overview/cpp-conformance-improvements?view=msvc-170&#34; target=&#34;_blank&#34;&gt;C++ Conformance improvements, behavior changes, and bug fixes in Visual Studio 2022&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href=&#34;#cpp29&#34; id=&#34;cpp29&#34;&gt;C++29言語機能の実装状況&lt;/a&gt;&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#gcc&#34;&gt;GCC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#clang&#34;&gt;Clang&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#icc&#34;&gt;ICX&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#visual_cpp&#34;&gt;MSVC&lt;/a&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;P3596R3: &lt;a href=&#34;lang/cpp29/undefined_behavior_and_ifndr_annexes.html&#34;&gt;未定義動作とIFNDRの一覧を規格の付録に追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コア言語で明示的に規定されているすべての未定義動作と、診断不要で&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt; (IFNDR) となるすべての規則を、安定した名前・説明・コード例付きで列挙する参考情報の付録を追加する&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2287R6: &lt;a href=&#34;lang/cpp29/designated-initializers_for_base_classes.html&#34;&gt;基底クラスのメンバ変数に対する指示付き初期化を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;B{.a=1, .b=2}&lt;/code&gt;のように、集成体の指示付き初期化で基底クラスのメンバ変数を直接指定できるようにする。基底クラス部分を初期化する指示なし初期化子との混在も許可する&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2953R5: &lt;a href=&#34;lang/cpp29/adding_restrictions_to_defaulted_assignment_operator_functions.html&#34;&gt;default定義できる代入演算子のシグネチャを制限&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;A&amp;amp; operator=(const A&amp;amp;) &amp;amp;&amp;amp; = default&lt;/code&gt;のような右辺値修飾やCV修飾された代入演算子のdefault定義を&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;とする。これらの代入演算子を自分で定義することは引き続きできる&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3899R3: &lt;a href=&#34;lang/cpp29/clarify_the_behavior_of_floating-point_overflow.html&#34;&gt;浮動小数点演算のオーバーフローと無限大・NaNの扱いを明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;無限大を表現できる浮動小数点型では、オーバーフローは未定義動作ではなく無限大を生成すると規定する。オーバーフローやNaNを新たに生成する演算は定数式にならず、無限大・NaNの伝播は定数式として扱える&lt;/td&gt;
&lt;td&gt;15 (partial)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3668R4: &lt;a href=&#34;lang/cpp29/defaulting_postfix_increment_and_decrement_operations.html&#34;&gt;後置インクリメント・デクリメント演算のdefault定義&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;後置&lt;code&gt;++&lt;/code&gt;／&lt;code&gt;--&lt;/code&gt;を&lt;code&gt;= default&lt;/code&gt;で定義（前置版から自動生成）できるようにする&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2434R5: &lt;a href=&#34;lang/cpp29/nondeterministic_pointer_provenance.html&#34;&gt;整数からポインタへの変換とポインタの由来の扱いを規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;整数からポインタへの変換では、その整数へ変換できるポインタ値のうち、プログラムの動作が定義される値が選択されると規定する&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3347R6: &lt;a href=&#34;lang/cpp29/invalid_pointer_operations.html&#34;&gt;無効なポインタ値の読み書き・コピーを定義された動作とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;無効なポインタ値の使用のうち、間接参照は未定義動作、比較などは処理系定義のままとし、読み込み・書き込み・コピーなどそれ以外の操作を定義された動作とする&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3658R1: &lt;a href=&#34;lang/cpp29/adjust_identifier_following_new_Unicode_recommendations.html&#34;&gt;数学互換記法の文字を識別子として許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Unicodeの新しい勧告に従い、&lt;code&gt;∇f&lt;/code&gt;や&lt;code&gt;x²&lt;/code&gt;のような数学記法の文字（ID_Compat_Math_Start／Continueプロパティを持つ文字）を識別子に使用できるようにする&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3950R1: &lt;a href=&#34;lang/cpp29/return_value_and_return_void_are_not_mutually_exclusive.html&#34;&gt;コルーチンのpromise型で&lt;code&gt;return_value&lt;/code&gt;と&lt;code&gt;return_void&lt;/code&gt;の両方の宣言を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;1つのコルーチン内に、値をともなう&lt;code&gt;co_return&lt;/code&gt;文とともなわない&lt;code&gt;co_return&lt;/code&gt;文を混在させられるようにする&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3733R1: &lt;a href=&#34;lang/cpp29/more_named_universal_character_escapes.html&#34;&gt;名前付きユニバーサルキャラクタ名で使用できる別名を拡張&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;\N{…}&lt;/code&gt;に指定できる文字名の別名の分類制限を撤廃し、&lt;code&gt;\N{NBSP}&lt;/code&gt;のような略称 (abbreviation) なども使用できるようにする&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;23&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3847R1: &lt;a href=&#34;lang/cpp29/lexical_order_for_lambdas.html&#34;&gt;ラムダ式のキャプチャが書かれた順に初期化されることを保証&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;明示的なキャプチャに対応するクロージャ型のメンバ変数が、キャプチャを書いた順に宣言・初期化され、逆順に破棄されることを保証する&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2243R0: &lt;a href=&#34;lang/cpp29/language_linkage_for_templates.html&#34;&gt;extern &#34;C&#34;の中でのテンプレートの宣言を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートがC言語リンケージを持つことを禁止する規定を削除し、&lt;code&gt;extern &#34;C&#34;&lt;/code&gt;の中でテンプレートを宣言できるようにする。C言語リンケージの関数ポインタ型を、テンプレートパラメータに依存する形で書けるようになる&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3424R2: &lt;a href=&#34;lang/cpp29/deallocation_functions_with_throwing_exception_specification_are_ill_formed.html&#34;&gt;例外を送出しうる例外指定をもつ解放関数を不適格とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;operator delete&lt;/code&gt;などの解放関数に、&lt;code&gt;noexcept(false)&lt;/code&gt;のような例外を送出しうる例外指定を付けることを&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;とする。解放関数からの例外送出による未定義動作へ到達する経路を、宣言の時点で排除する&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3822R2: &lt;a href=&#34;lang/cpp29/conditional_noexcept_specifiers_in_compound_requirements.html&#34;&gt;requires式の複合要件で条件付き&lt;code&gt;noexcept&lt;/code&gt;指定を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;requires式の複合要件で、&lt;code&gt;{ 式 } noexcept(定数式)&lt;/code&gt;形式の条件付き&lt;code&gt;noexcept&lt;/code&gt;指定を書けるようにする&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3097R3: &lt;a href=&#34;lang/cpp29/contracts_for_virtual_functions.html&#34;&gt;仮想関数への事前条件・事後条件の指定を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;C++26で&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;とされていた、仮想関数への事前条件&lt;code&gt;pre&lt;/code&gt;・事後条件&lt;code&gt;post&lt;/code&gt;の指定を許可する。仮想関数呼び出しでは、静的に選択された関数と実際に呼び出される関数の両方のアサーションが評価される&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P4101R1: &lt;a href=&#34;lang/cpp29/consteval-only_values.html&#34;&gt;consteval-only型の規則をconsteval-only値の規則へ置き換え&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;リフレクションが実行時へ漏れることを防ぐ規則を、型ベースから値ベースへ変更する&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2414R12: &lt;a href=&#34;lang/cpp29/pointer_lifetime-end_zap_proposed_solutions.html&#34;&gt;アトミック操作とvolatileアクセスでの無効なポインタ値の扱いを規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;アトミックポインタの操作やvolatileアクセスの結果が無効なポインタ値となる場合、整数への往復変換を経た有効なポインタ値になると規定する。解放と並行してポインタを扱うロックフリーアルゴリズムを定義された動作にする&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3670R4: &lt;a href=&#34;lang/cpp29/pack_indexing_for_template_names.html&#34;&gt;テンプレートテンプレートパラメータのパックへのインデックスアクセスを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートテンプレートパラメータのパックに&lt;code&gt;TT...[N]&lt;/code&gt;形式でインデックスアクセスできるようにする&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;24&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3540R3: &lt;a href=&#34;lang/cpp29/embed_offset_parameter.html&#34;&gt;&lt;code&gt;#embed&lt;/code&gt;に&lt;code&gt;offset&lt;/code&gt;パラメータを追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#embed&lt;/code&gt;のパラメータとして、リソースの先頭から指定した要素数を読み飛ばす&lt;code&gt;offset&lt;/code&gt;を追加する&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;</content>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>C++26 -- C++23とC++26の生存期間周りに対応 (close #1409, #1100, #1628)</title>
      <link href="https://cpprefjp.github.io/lang/cpp26.html"/>
      <id>9fde0d02af12309e32708f1ce6427b2163e7a88e:lang/cpp26.md</id>
      <updated>2026-09-07T12:00:37+09:00</updated>
      
        <content type="html">&lt;h1 itemprop=&#34;name&#34;&gt;&lt;span class=&#34;token&#34;&gt;C++26&lt;/span&gt;&lt;/h1&gt;
&lt;div itemprop=&#34;articleBody&#34;&gt;&lt;h2&gt;概要&lt;/h2&gt;
&lt;p&gt;C++26とは、2026年中に改訂される予定の、C++バージョンの通称である。&lt;/p&gt;
&lt;p&gt;このバージョンは、策定中のためC++2cと呼ばれることがある。「(2020年代の3つ目のバージョンが) 202c年にリリースされる」という伏せ字として「c」が使われているが、3年周期に次のバージョンが策定されることが決まっているため、伏せ字になっている年数がずれることはない。&lt;/p&gt;
&lt;h2&gt;言語機能&lt;/h2&gt;
&lt;h3&gt;変数&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/static_storage_for_braced_initializers.html&#34;&gt;&lt;code&gt;std::initializer_list&lt;/code&gt;の配列を静的記憶域に配置する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;std::vector v = {1, 2, 3};&lt;/code&gt;のような初期化で初期化子リストを静的記憶域に配置することで無駄なコピーをなくす&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/nice_placeholder_with_no_name.html&#34;&gt;宣言のみで使用しない変数の名前として&lt;code&gt;_&lt;/code&gt;をサポート&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;変数名&lt;code&gt;_&lt;/code&gt;は暗黙で&lt;code&gt;[[maybe_unused]]&lt;/code&gt;が指定される&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/deleting_a_pointer_to_an_incomplete_type_should_be_ill-formed.html&#34;&gt;不完全型へのポインタに対する&lt;code&gt;delete&lt;/code&gt;を不適格とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;未定義動作を引き起こす操作をコンパイルエラーとする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/disallow_binding_a_returned_glvalue_to_a_temporary.html&#34;&gt;返却された左辺値から暗黙変換された一時オブジェクトが参照に束縛されることを禁止する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;寿命切れの変数によって引き起こされるバグを防止する&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/clarifying_rules_for_brace_elision_in_aggregate_initialization.html&#34;&gt;要素数不明の配列を集成体初期化する規則を明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;配列要素の集成体初期化で&lt;code&gt;{}&lt;/code&gt;が省略された場合の矛盾していた規定を修正&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/erroneous_behavior_for_uninitialized_reads.html&#34;&gt;未初期化変数の読み取りをエラー性動作とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;初期化されていない自動変数の読み取りの安全性を規定する&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/structured_bindings_can_introduce_a_pack.html&#34;&gt;構造化束縛でパックを導入できるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;タプルを分解する際に複数の変数をパックとして宣言できるようにする。&lt;code&gt;auto [a, ...xs] = f();&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;文字列&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/making_non-encodable_string_literals_ill-formed.html&#34;&gt;文字列リテラルの文字エンコーディング失敗を不適格とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;文字列リテラルのエンコーディング時に文字表現が失われる場合にコンパイルエラーにする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/unevaluated_strings.html&#34;&gt;コンパイル時にのみ使用される文字列の扱いを明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;static_assert&lt;/code&gt;や&lt;code&gt;[[deprecated]]&lt;/code&gt;などで使用されるコンパイル時の文字列について、文字コードの指定を禁止し、実行時エンコーディングが行われないことを規定&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;分岐・ループ&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/structured_binding_declaration_as_a_condition.html&#34;&gt;条件式での構造化束縛の使用を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;式全体を&lt;code&gt;bool&lt;/code&gt;値に変換できる場合に条件式で構造化束縛を使用できることとする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/trivial_infinite_loops_are_not_undefined_behavior.html&#34;&gt;空の無限ループは未定義動作ではないと規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;並行プログラムの進行保証などを考慮して空の無限ループを未定義動作ではないものとする&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;関数&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/delete_reason.html&#34;&gt;関数宣言を削除する理由を指定できるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;f() = delete(&#34;reason&#34;);&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/contracts.html&#34;&gt;契約プログラミングをサポートする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;関数の事前条件、事後条件、不変条件を記述できるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;クラス&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/trivial_unions.html&#34;&gt;共用体の特殊メンバ関数のトリビアル化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;非トリビアルな型をメンバにもつ共用体のデフォルトコンストラクタとデストラクタをトリビアルにし、未初期化ストレージとして使用可能にする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/adjustments_to_union_lifetime_rules.html&#34;&gt;共用体メンバの生存期間規則の調整&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;共用体の先頭メンバの生存期間を暗黙に開始する規則を撤回して&lt;code&gt;std::start_lifetime()&lt;/code&gt;による明示的な開始へ変更し、生存期間外の要素を含む配列メンバを定数式で許可する&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/clarifying_placement_new_deallocation.html&#34;&gt;配置newの解放処理を明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;配置&lt;code&gt;new&lt;/code&gt;で確保したメモリの解放処理の取り扱いに関するルールを明確化する&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;属性&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/on_the_ignorability_of_standard_attributes.html&#34;&gt;属性の無視性を見直し&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;構文として適格な属性のみを無視できるようにし、そうでない属性の使用を&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;とする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/attributes_for_structured_bindings.html&#34;&gt;構造化束縛への属性を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;auto [a, b [[maybe_unused]], c] = f();&lt;/code&gt;のように構造化束縛の要素に対して属性を付加できるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;テンプレート&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/pack_indexing.html&#34;&gt;パラメータパックへのインデックスアクセスを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;可変引数テンプレートのパラメータパックに添字アクセスできるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/ordering_of_constraints_involving_fold_expressions.html&#34;&gt;制約式内での畳み込み式の順序付け&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;畳み込み式を含む制約の包摂関係を認識できるようにし、オーバーロード解決の曖昧さを解消する&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/variadic_friends.html&#34;&gt;可変引数テンプレートで&lt;code&gt;friend&lt;/code&gt;宣言をできるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;クラステンプレートの可変引数テンプレートでまとめて&lt;code&gt;friend&lt;/code&gt;宣言できるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/concept_and_variable-template_template-parameters.html&#34;&gt;コンセプトと変数テンプレートをテンプレート引数として渡せるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートテンプレートパラメータとして、クラステンプレートやエイリアステンプレートに加え、コンセプトと変数テンプレートも渡せるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/reconsider_partial_ordering_of_variadic_templates.html&#34;&gt;可変引数テンプレートの半順序を再検討する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;可変引数テンプレートの部分特殊化の半順序ルールを再検討して、より一貫したルールにする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/class_template_argument_deduction_for_type_template_template_parameters.html&#34;&gt;テンプレートテンプレートパラメータに対するクラステンプレートパラメータ引数推論&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートテンプレートパラメータからクラステンプレート引数を推論できるようにクラステンプレートのテンプレート引数推論を拡張する&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/define_immediate_context.md.nolink&#34;&gt;「immediate context」の定義を明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;SFINAEにおける「immediate context」の用語を厳密に定義し、置換失敗の範囲を明確にする&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;定数式&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/reflection.html&#34;&gt;静的リフレクション&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;リフレクション演算子&lt;code&gt;^^&lt;/code&gt;と&lt;code&gt;std::meta::info&lt;/code&gt;型によりコンパイル時にさまざまな情報を取得できる&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/expansion_statements.html&#34;&gt;コンパイル時のタプルやリストを展開処理する&lt;code&gt;template for&lt;/code&gt;文&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;タプル・構造体・Range・パラメータパックなどの各要素に対してコンパイル時に文を展開する&lt;code&gt;template for&lt;/code&gt;文を追加&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/constexpr_cast_from_voidptr.html&#34;&gt;定数式での&lt;code&gt;void*&lt;/code&gt;からポインタ型へのキャストを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;型消去のために&lt;code&gt;void*&lt;/code&gt;からポインタ型へのキャストを許可する&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/user-generated_static_assert_messages.html&#34;&gt;&lt;code&gt;static_assert&lt;/code&gt;の診断メッセージにユーザーが生成した文字列の指定を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;constexpr&lt;/code&gt;な&lt;code&gt;S.size()&lt;/code&gt;と&lt;code&gt;S.data()&lt;/code&gt;メンバ関数をもつオブジェクトをコンパイル時文字列として指定できるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/constexpr_placement_new.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;配置&lt;code&gt;new&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数式の文脈での配置&lt;code&gt;new&lt;/code&gt;を許可&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/constexpr_structured_bindings_and_references_to_constexpr_variables.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;構造化束縛の許可と、&lt;code&gt;constexpr&lt;/code&gt;参照の制限緩和&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数式に対する構造化束縛を許可し、関連して&lt;code&gt;constexpr&lt;/code&gt;参照の制限を緩和して自動変数も参照できるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/allowing_exception_throwing_in_constant-evaluation.html&#34;&gt;定数評価での例外送出を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数式の文脈での例外の送出と捕捉を許可&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/constexpr_virtual_inheritance.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;仮想継承を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数式の文脈での仮想継承を許可&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/constant_evaluation_when.md.nolink&#34;&gt;定数評価の開始・終了タイミングを明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数評価がどのタイミングで開始・終了するかを明確化し、constexprコンテキストの規則を整える&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;プリプロセッサ&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/embed.html&#34;&gt;ファイルを読み込む&lt;code&gt;#embed&lt;/code&gt;命令を追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;バイナリファイルをインクルードするメカニズム。&lt;code&gt;#include&lt;/code&gt;とちがって読み出しサイズなどの柔軟な指定ができる&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/preprocessing_is_never_undefined.html&#34;&gt;プリプロセッサ仕様での「未定義動作」を不適格 (診断不要) に変更&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;プリプロセッサとレキサーの文脈での「未定義動作」用語を&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt; (診断不要) に変更&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/line_is_not_in_line_with_existing_implementation.html&#34;&gt;&lt;code&gt;#line&lt;/code&gt;ディレクティブの制約を現実の実装に合わせて緩和する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#line 0&lt;/code&gt;や&lt;code&gt;#line 2147483648&lt;/code&gt;のような行番号指定を&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;としていたが、条件付きサポートとして許可する&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;ソースコード&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/add_atsign_dollar_graveaccent_to_the_basic_character_set.html&#34;&gt;基本文字集合に@、$、`を追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;C言語との互換性のためにこれらの文字を基本文字集合に追加&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;モジュール&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/module_declarations_shouldnt_be_macros.html&#34;&gt;モジュール宣言でのモジュール名のマクロ展開を禁止する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;export module MACRO_NAME;&lt;/code&gt;を禁止&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/allow_attaching_main_to_the_global_module.html&#34;&gt;&lt;code&gt;main&lt;/code&gt;関数をグローバルモジュールに含められるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;main&lt;/code&gt;関数に&lt;code&gt;extern &#34;C++&#34;&lt;/code&gt;を指定できるようにすることで名前付きモジュールに含められるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/allow_line_before_module_declarations.html&#34;&gt;モジュール宣言より前での&lt;code&gt;#line&lt;/code&gt;ディレクティブの使用を許可する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;モジュール宣言より前での&lt;code&gt;#line&lt;/code&gt;ディレクティブの使用を禁止していたのは過度な制限だった&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;機能の非推奨化&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/the_oxford_variadic_comma.html&#34;&gt;先行するカンマのない省略記号を非推奨化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;void f(int, ...);&lt;/code&gt;はOK。&lt;code&gt;void f(int...);&lt;/code&gt;は非推奨&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;機能の削除&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/remove_deprecated_array_comparisons.html&#34;&gt;非推奨だった組み込み配列の比較を削除&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;C++20で非推奨となっていた配列比較を削除&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/remove_deprecated_arithmetic_conversion_on_enumerations.html&#34;&gt;非推奨となっていた列挙型の算術変換を削除&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;C++20から非推奨となっていた列挙値への算術演算で算術型に暗黙変換される仕様を削除&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;ライブラリ更新の概要&lt;/h2&gt;
&lt;h3&gt;新ライブラリ&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;文字列エンコーディングを識別するライブラリとして、&lt;code&gt;&lt;a href=&#34;../reference/text_encoding.html&#34;&gt;&amp;lt;text_encoding&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;要素のメモリ位置が安定するシーケンスコンテナのライブラリとして&lt;code&gt;&lt;a href=&#34;../reference/hive.html&#34;&gt;&amp;lt;hive&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;並行処理におけるデータの参照・更新を行うRCU (Read Copy Update) のライブラリとして、&lt;code&gt;&lt;a href=&#34;../reference/rcu.html&#34;&gt;&amp;lt;rcu&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;並行処理において参照中のデータが更新されないよう保護するハザードポインタのライブラリとして、&lt;code&gt;&lt;a href=&#34;../reference/hazard_pointer.html&#34;&gt;&amp;lt;hazard_pointer&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;データ並列ライブラリとして、&lt;code&gt;&lt;a href=&#34;../reference/simd.html&#34;&gt;&amp;lt;simd&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;デバッグサポートのライブラリとして&lt;code&gt;&lt;a href=&#34;../reference/debugging.html&#34;&gt;&amp;lt;debugging&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;線形代数ライブラリとして&lt;code&gt;&lt;a href=&#34;../reference/linalg.html&#34;&gt;&amp;lt;linalg&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;コンパイル時に容量を固定する可変長配列クラスのライブラリとして&lt;code&gt;&lt;a href=&#34;../reference/inplace_vector.html&#34;&gt;&amp;lt;inplace_vector&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;C23の互換ライブラリとして、ビット操作ライブラリ&lt;code&gt;&lt;a href=&#34;../reference/stdbit.h.html&#34;&gt;&amp;lt;stdbit.h&amp;gt;&lt;/a&gt;&lt;/code&gt;と、検査付き整数演算ライブラリ&lt;code&gt;&lt;a href=&#34;../reference/stdckdint.h.html&#34;&gt;&amp;lt;stdckdint.h&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加。&lt;code&gt;&amp;lt;cstd…&amp;gt;&lt;/code&gt;形式のライブラリは追加されない&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;全体&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;標準ライブラリに付加された、戻り値を無視した際に警告を出力する&lt;a href=&#34;cpp17/nodiscard.html&#34;&gt;&lt;code&gt;[[nodiscard]]&lt;/code&gt;属性&lt;/a&gt;を削除&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;コンテナ&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/vector/vector.html&#34;&gt;std::vector&amp;lt;bool&amp;gt;::reference&lt;/a&gt;&lt;/code&gt;のプロキシ操作として、&lt;code&gt;const&lt;/code&gt;修飾付きの代入と&lt;code&gt;swap()&lt;/code&gt;メンバ関数を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/mdspan/mdspan.html&#34;&gt;std::mdspan&lt;/a&gt;&lt;/code&gt;から部分ビューを取り出す&lt;code&gt;&lt;a href=&#34;../reference/mdspan/submdspan.html&#34;&gt;std::submdspan()&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/mdspan/submdspan.html&#34;&gt;std::submdspan()&lt;/a&gt;&lt;/code&gt;のスライス指定子として、取り出す要素数とストライド幅を指定する&lt;code&gt;&lt;a href=&#34;../reference/mdspan/extent_slice.html&#34;&gt;std::extent_slice&lt;/a&gt;&lt;/code&gt;と、取り出し元の半開区間とストライド幅を指定する&lt;code&gt;&lt;a href=&#34;../reference/mdspan/range_slice.html&#34;&gt;std::range_slice&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/mdspan/mdspan.html&#34;&gt;std::mdspan&lt;/a&gt;&lt;/code&gt;に、インデックスを指定して要素を取り出す&lt;code&gt;&lt;a href=&#34;../reference/mdspan/mdspan/at.html&#34;&gt;at()&lt;/a&gt;&lt;/code&gt;メンバ関数を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/mdspan/mdspan.html&#34;&gt;std::mdspan&lt;/a&gt;&lt;/code&gt;に対する&lt;code&gt;&lt;a href=&#34;../reference/mdspan/extents.html&#34;&gt;std::dextents&lt;/a&gt;&lt;/code&gt;指定の冗長さを解決する&lt;code&gt;&lt;a href=&#34;../reference/mdspan/extents.html&#34;&gt;std::dims&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/mdspan/mdspan.html&#34;&gt;std::mdspan&lt;/a&gt;&lt;/code&gt;のレイアウトとして、&lt;code&gt;&lt;a href=&#34;../reference/mdspan/layout_left_padded.html&#34;&gt;std::layout_left_padded&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/mdspan/layout_right_padded.html&#34;&gt;std::layout_right_padded&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/mdspan.html&#34;&gt;&amp;lt;mdspan&amp;gt;&lt;/a&gt;&lt;/code&gt;に、要素アクセスにアライメント保証を与える&lt;code&gt;&lt;a href=&#34;../reference/mdspan/aligned_accessor.html&#34;&gt;std::aligned_accessor&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/span/span.html&#34;&gt;std::span&lt;/a&gt;&lt;/code&gt;に、インデックスアクセスのための&lt;code&gt;&lt;a href=&#34;../reference/span/span/at.html&#34;&gt;at()&lt;/a&gt;&lt;/code&gt;メンバ関数を追加&lt;/li&gt;
&lt;li&gt;連想コンテナの以下のメンバ関数に、一時オブジェクトが生成されるコストを抑える拡張を追加&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/map/map.html&#34;&gt;std::map&lt;/a&gt;&lt;/code&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/map/map/op_at.html&#34;&gt;operator[]&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/map/map/at.html&#34;&gt;at()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/map/map/try_emplace.html&#34;&gt;try_emplace()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/map/map/insert_or_assign.html&#34;&gt;insert_or_assign()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/set/set.html&#34;&gt;std::set&lt;/a&gt;&lt;/code&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/set/set/insert.html&#34;&gt;insert()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_map/unordered_map.html&#34;&gt;std::unordered_map&lt;/a&gt;&lt;/code&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_map/unordered_map/op_at.html&#34;&gt;operator[]&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_map/unordered_map/at.html&#34;&gt;at()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_map/unordered_map/try_emplace.html&#34;&gt;try_emplace()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_map/unordered_map/insert_or_assign.html&#34;&gt;insert_or_assign()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_map/unordered_map/bucket.html&#34;&gt;bucket()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_map/unordered_multimap.html&#34;&gt;std::unordered_multimap&lt;/a&gt;&lt;/code&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_map/unordered_multimap/bucket.html&#34;&gt;bucket()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_set/unordered_set.html&#34;&gt;std::unordered_set&lt;/a&gt;&lt;/code&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_set/unordered_set/insert.html&#34;&gt;insert()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_set/unordered_set/bucket.html&#34;&gt;bucket()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_set/unordered_multiset.html&#34;&gt;std::unordered_multiset&lt;/a&gt;&lt;/code&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_set/unordered_multiset/bucket.html&#34;&gt;bucket()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/span/span.html&#34;&gt;std::span&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/mdspan/mdspan.html&#34;&gt;std::mdspan&lt;/a&gt;&lt;/code&gt;の推論補助を改善&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ranges/concat_view.html&#34;&gt;std::views::concat&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ranges/cache_latest_view.html&#34;&gt;std::views::cache_latest&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ranges/as_input_view.html&#34;&gt;std::views::as_input&lt;/a&gt;&lt;/code&gt;を追加。これはパフォーマンス向上のために、Rangeを入力Rangeかつ非&lt;code&gt;&lt;a href=&#34;../reference/ranges/common_range.html&#34;&gt;common_range&lt;/a&gt;&lt;/code&gt; (イテレータと番兵の型を別する) に変換する&lt;/li&gt;
&lt;li&gt;Range関係の、償却定数時間での要素追加を行う機能を追加&lt;ul&gt;
&lt;li&gt;各viewクラスに&lt;code&gt;reserve_hint()&lt;/code&gt;メンバ関数を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ranges/reserve_hint.html&#34;&gt;std::ranges::reserve_hint()&lt;/a&gt;&lt;/code&gt;関数を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ranges/approximately_sized_range.html&#34;&gt;std::ranges::approximately_sized_range&lt;/a&gt;&lt;/code&gt;コンセプトを追加&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;インデックス列を生成する&lt;code&gt;&lt;a href=&#34;../reference/ranges/indices.html&#34;&gt;std::views::indices&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;連続イテレータのコンセプト&lt;code&gt;&lt;a href=&#34;../reference/iterator/contiguous_iterator.html&#34;&gt;contiguous_iterator&lt;/a&gt;&lt;/code&gt;に、ポインタに変換できることを要件として追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/initializer_list/initializer_list.html&#34;&gt;std::initializer_list&lt;/a&gt;&lt;/code&gt;クラスを以下のように変更&lt;ul&gt;
&lt;li&gt;独自に定義されていた&lt;code&gt;&lt;a href=&#34;../reference/initializer_list/initializer_list/begin_free.html&#34;&gt;std::begin()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/initializer_list/initializer_list/end_free.html&#34;&gt;std::end()&lt;/a&gt;&lt;/code&gt;のオーバーロードを削除 (&lt;code&gt;std::cbegin()&lt;/code&gt;や&lt;code&gt;std::rend()&lt;/code&gt;のようなオーバーロードがなかったため、ほかとの不整合があった)&lt;/li&gt;
&lt;li&gt;メンバ関数&lt;code&gt;&lt;a href=&#34;../reference/initializer_list/initializer_list/data.html&#34;&gt;data()&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;メンバ関数&lt;code&gt;&lt;a href=&#34;../reference/initializer_list/initializer_list/empty.html&#34;&gt;empty()&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/valarray/valarray.html&#34;&gt;std::valarray&lt;/a&gt;&lt;/code&gt;クラスを以下のように変更&lt;ul&gt;
&lt;li&gt;独自に定義されていた&lt;code&gt;&lt;a href=&#34;../reference/valarray/valarray/begin_free.html&#34;&gt;std::begin()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/valarray/valarray/end_free.html&#34;&gt;std::end()&lt;/a&gt;&lt;/code&gt;のオーバーロードを削除 (&lt;code&gt;std::cbegin()&lt;/code&gt;や&lt;code&gt;std::rend()&lt;/code&gt;のようなオーバーロードがなかったため、ほかとの不整合があった)&lt;/li&gt;
&lt;li&gt;メンバ型&lt;code&gt;iterator&lt;/code&gt; / &lt;code&gt;const_iterator&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;メンバ関数&lt;code&gt;&lt;a href=&#34;../reference/valarray/valarray/begin.html&#34;&gt;begin()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/valarray/valarray/end.html&#34;&gt;end()&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;イテレータインタフェースの非メンバ関数&lt;code&gt;&lt;a href=&#34;../reference/iterator/begin.html&#34;&gt;std::begin()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/iterator/end.html&#34;&gt;std::end()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/iterator/cbegin.html&#34;&gt;std::cbegin()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/iterator/cend.html&#34;&gt;std::cend()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/iterator/rbegin.html&#34;&gt;std::rbegin()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/iterator/rend.html&#34;&gt;std::rend()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/iterator/crbegin.html&#34;&gt;std::crbegin()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/iterator/crend.html&#34;&gt;std::crend()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/iterator/size.html&#34;&gt;std::size()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/iterator/ssize.html&#34;&gt;std::ssize()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/iterator/empty.html&#34;&gt;std::empty()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/iterator/data.html&#34;&gt;std::data()&lt;/a&gt;&lt;/code&gt;を以下のように変更&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/initializer_list/initializer_list.html&#34;&gt;std::initializer_list&lt;/a&gt;&lt;/code&gt;型に対するオーバーロードを削除 (専用のオーバーロードを用意しなくても汎用オーバーロードが使用できるようになった)&lt;/li&gt;
&lt;li&gt;条件付き&lt;code&gt;noexcept&lt;/code&gt;指定を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Rangeインタフェースの非メンバ関数&lt;code&gt;&lt;a href=&#34;../reference/ranges/begin.html&#34;&gt;std::ranges::begin()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/ranges/end.html&#34;&gt;std::ranges::end()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/ranges/cbegin.html&#34;&gt;std::ranges::cbegin()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/ranges/cend.html&#34;&gt;std::ranges::cend()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/ranges/rbegin.html&#34;&gt;std::ranges::rbegin()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/ranges/rend.html&#34;&gt;std::ranges::rend()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/ranges/crbegin.html&#34;&gt;std::ranges::crbegin()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/ranges/crend.html&#34;&gt;std::ranges::crend()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/ranges/size.html&#34;&gt;std::ranges::size()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/ranges/ssize.html&#34;&gt;std::ranges::ssize()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/ranges/empty.html&#34;&gt;std::ranges::empty()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/ranges/data.html&#34;&gt;std::ranges::data()&lt;/a&gt;&lt;/code&gt;を以下のように変更&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/initializer_list/initializer_list.html&#34;&gt;std::initializer_list&lt;/a&gt;&lt;/code&gt;型に対するオーバーロードを削除 (専用のオーバーロードを用意しなくても汎用オーバーロードが使用できるようになった)&lt;/li&gt;
&lt;li&gt;条件付き&lt;code&gt;noexcept&lt;/code&gt;指定を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;以下のコンテナを&lt;code&gt;constexpr&lt;/code&gt;に対応&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/deque/deque.html&#34;&gt;std::deque&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/forward_list/forward_list.html&#34;&gt;std::forward_list&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/list/list.html&#34;&gt;std::list&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/map/map.html&#34;&gt;std::map&lt;/a&gt;&lt;/code&gt; (ただし&lt;code&gt;&lt;a href=&#34;../reference/node_handle/node_handle.html&#34;&gt;node_handle&lt;/a&gt;::&lt;a href=&#34;../reference/node_handle/node_handle/key.html&#34;&gt;key()&lt;/a&gt;&lt;/code&gt;を使用すると未定義動作)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/map/multimap.html&#34;&gt;std::multimap&lt;/a&gt;&lt;/code&gt; (ただし&lt;code&gt;&lt;a href=&#34;../reference/node_handle/node_handle.html&#34;&gt;node_handle&lt;/a&gt;::&lt;a href=&#34;../reference/node_handle/node_handle/key.html&#34;&gt;key()&lt;/a&gt;&lt;/code&gt;を使用すると未定義動作)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/set/set.html&#34;&gt;std::set&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/set/multiset.html&#34;&gt;std::multiset&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_map/unordered_map.html&#34;&gt;std::unordered_map&lt;/a&gt;&lt;/code&gt; (ハッシュ関数のカスタム化が必要) (ただし&lt;code&gt;&lt;a href=&#34;../reference/node_handle/node_handle.html&#34;&gt;node_handle&lt;/a&gt;::&lt;a href=&#34;../reference/node_handle/node_handle/key.html&#34;&gt;key()&lt;/a&gt;&lt;/code&gt;を使用すると未定義動作)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_map/unordered_multimap.html&#34;&gt;std::unordered_multimap&lt;/a&gt;&lt;/code&gt; (ハッシュ関数のカスタム化が必要) (ただし&lt;code&gt;&lt;a href=&#34;../reference/node_handle/node_handle.html&#34;&gt;node_handle&lt;/a&gt;::&lt;a href=&#34;../reference/node_handle/node_handle/key.html&#34;&gt;key()&lt;/a&gt;&lt;/code&gt;を使用すると未定義動作)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_set/unordered_set.html&#34;&gt;std::unordered_set&lt;/a&gt;&lt;/code&gt; (ハッシュ関数のカスタム化が必要)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/unordered_set/unordered_multiset.html&#34;&gt;std::unordered_multiset&lt;/a&gt;&lt;/code&gt; (ハッシュ関数のカスタム化が必要)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/flat_map/flat_map.html&#34;&gt;std::flat_map&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/flat_map/flat_multimap.html&#34;&gt;std::flat_multimap&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/flat_set/flat_set.html&#34;&gt;std::flat_set&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/flat_set/flat_multiset.html&#34;&gt;std::flat_multiset&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/queue/queue.html&#34;&gt;std::queue&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/queue/priority_queue.html&#34;&gt;std::priority_queue&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/stack/stack.html&#34;&gt;std::stack&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;アルゴリズム&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm.html&#34;&gt;&amp;lt;algorithm&amp;gt;&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;のアルゴリズムを並列実行に対応&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm.html&#34;&gt;&amp;lt;algorithm&amp;gt;&lt;/a&gt;&lt;/code&gt;の以下のアルゴリズムを&lt;code&gt;constexpr&lt;/code&gt;に対応&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/stable_sort.html&#34;&gt;std::stable_sort()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_stable_sort.html&#34;&gt;std::ranges::stable_sort()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/stable_partition.html&#34;&gt;std::stable_partition()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_stable_partition.html&#34;&gt;std::ranges::stable_partition()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/inplace_merge.html&#34;&gt;std::inplace_merge()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_inplace_merge.html&#34;&gt;std::ranges::inplace_merge()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;の以下のアルゴリズムを&lt;code&gt;constexpr&lt;/code&gt;に対応&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/uninitialized_default_construct.html&#34;&gt;std::uninitialized_default_construct()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/memory/ranges_uninitialized_default_construct.html&#34;&gt;std::ranges::uninitialized_default_construct()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/uninitialized_default_construct_n.html&#34;&gt;std::uninitialized_default_construct_n()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/memory/ranges_uninitialized_default_construct_n.html&#34;&gt;std::ranges::uninitialized_default_construct_n()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/uninitialized_value_construct.html&#34;&gt;std::uninitialized_value_construct()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/memory/ranges_uninitialized_value_construct.html&#34;&gt;std::ranges::uninitialized_value_construct()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/uninitialized_value_construct_n.html&#34;&gt;std::uninitialized_value_construct_n()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/memory/ranges_uninitialized_value_construct_n.html&#34;&gt;std::ranges::uninitialized_value_construct_n()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/uninitialized_copy.html&#34;&gt;std::uninitialized_copy()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/memory/ranges_uninitialized_copy.html&#34;&gt;std::ranges::uninitialized_copy()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/uninitialized_copy_n.html&#34;&gt;std::uninitialized_copy_n()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/memory/ranges_uninitialized_copy_n.html&#34;&gt;std::ranges::uninitialized_copy_n()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/uninitialized_move.html&#34;&gt;std::uninitialized_move()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/memory/ranges_uninitialized_move.html&#34;&gt;std::ranges::uninitialized_move()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/uninitialized_move_n.html&#34;&gt;std::uninitialized_move_n()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/memory/ranges_uninitialized_move_n.html&#34;&gt;std::ranges::uninitialized_move_n()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/uninitialized_fill.html&#34;&gt;std::uninitialized_fill()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/memory/ranges_uninitialized_fill.html&#34;&gt;std::ranges::uninitialized_fill()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/uninitialized_fill_n.html&#34;&gt;std::uninitialized_fill_n()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/memory/ranges_uninitialized_fill_n.html&#34;&gt;std::ranges::uninitialized_fill_n()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Rangeアルゴリズムが完全型を要求しないようにするため、&lt;code&gt;&lt;a href=&#34;../reference/iterator/projected.html&#34;&gt;std::projected&lt;/a&gt;&lt;/code&gt;の制約を緩和&lt;/li&gt;
&lt;li&gt;以下のアルゴリズムに、値を波カッコ初期化で渡せるよう制約を追加&lt;ul&gt;
&lt;li&gt;&lt;code&gt;std::erase()&lt;/code&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/string/basic_string.html&#34;&gt;std::basic_string&lt;/a&gt;&lt;/code&gt;版&lt;code&gt;&lt;a href=&#34;../reference/string/basic_string/erase_free.html&#34;&gt;std::erase()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/deque/deque.html&#34;&gt;std::deque&lt;/a&gt;&lt;/code&gt;版&lt;code&gt;&lt;a href=&#34;../reference/deque/deque/erase_free.html&#34;&gt;std::erase()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/forward_list/forward_list.html&#34;&gt;std::forward_list&lt;/a&gt;&lt;/code&gt;版&lt;code&gt;&lt;a href=&#34;../reference/forward_list/forward_list/erase_free.html&#34;&gt;std::erase()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/list/list.html&#34;&gt;std::list&lt;/a&gt;&lt;/code&gt;版&lt;code&gt;&lt;a href=&#34;../reference/list/list/erase_free.html&#34;&gt;std::erase()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/vector/vector.html&#34;&gt;std::vector&lt;/a&gt;&lt;/code&gt;版&lt;code&gt;&lt;a href=&#34;../reference/vector/vector/erase_free.html&#34;&gt;std::erase()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/find.html&#34;&gt;std::find()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_find.html&#34;&gt;std::ranges::find()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_find_last.html&#34;&gt;std::ranges::find_last()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/count.html&#34;&gt;std::count()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_count.html&#34;&gt;std::ranges::count()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/search_n.html&#34;&gt;std::search_n()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_search_n.html&#34;&gt;std::ranges::search_n()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/replace.html&#34;&gt;std::replace()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/algorithm/replace.html&#34;&gt;std::ranges::replace()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/replace_if.html&#34;&gt;std::replace_if()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/algorithm/replace_if.html&#34;&gt;std::ranges::replace_if()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/replace_copy.html&#34;&gt;std::ranges::replace_copy()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/replace_copy_if.html&#34;&gt;std::replace_copy_if()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/algorithm/replace_copy_if.html&#34;&gt;std::ranges::replace_copy_if()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/fill.html&#34;&gt;std::fill()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_fill.html&#34;&gt;std::ranges::fill()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/fill_n.html&#34;&gt;std::fill_n()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_fill_n.html&#34;&gt;std::ranges::fill_n()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/remove.html&#34;&gt;std::remove()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_remove.html&#34;&gt;std::ranges::remove()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/remove_copy.html&#34;&gt;std::remove_copy()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_remove_copy.html&#34;&gt;std::ranges::remove_copy()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/lower_bound.html&#34;&gt;std::lower_bound()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_lower_bound.html&#34;&gt;std::ranges::lower_bound()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/upper_bound.html&#34;&gt;std::upper_bound()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_upper_bound.html&#34;&gt;std::ranges::upper_bound()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/equal_range.html&#34;&gt;std::equal_range()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_equal_range.html&#34;&gt;std::ranges::equal_range()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/binary_search.html&#34;&gt;std::binary_search()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_binary_search.html&#34;&gt;std::ranges::binary_search()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_fold_left.html&#34;&gt;std::ranges::fold_left()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_fold_right.html&#34;&gt;std::ranges::fold_right()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_contains.html&#34;&gt;std::ranges::contains()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/uninitialized_fill.html&#34;&gt;std::uninitialized_fill()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/memory/ranges_uninitialized_fill.html&#34;&gt;std::ranges::uninitialized_fill()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/uninitialized_fill_n.html&#34;&gt;std::uninitialized_fill_n()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/memory/ranges_uninitialized_fill_n.html&#34;&gt;std::ranges::uninitialized_fill_n()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;関数オブジェクト&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;所有権を保持しない&lt;code&gt;&lt;a href=&#34;../reference/functional/function.html&#34;&gt;std::function&lt;/a&gt;&lt;/code&gt;として、&lt;code&gt;&lt;a href=&#34;../reference/functional.html&#34;&gt;&amp;lt;functional&amp;gt;&lt;/a&gt;&lt;/code&gt;に&lt;code&gt;&lt;a href=&#34;../reference/functional/function_ref.html&#34;&gt;std::function_ref&lt;/a&gt;&lt;/code&gt;クラスを追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/functional/move_only_function.html&#34;&gt;std::move_only_function&lt;/a&gt;&lt;/code&gt;のコピー可能版として、&lt;code&gt;&lt;a href=&#34;../reference/functional.html&#34;&gt;&amp;lt;functional&amp;gt;&lt;/a&gt;&lt;/code&gt;に&lt;code&gt;&lt;a href=&#34;../reference/functional/copyable_function.html&#34;&gt;std::copyable_function&lt;/a&gt;&lt;/code&gt;クラスを追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/functional/bind_front.html&#34;&gt;std::bind_front()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/functional/bind_back.html&#34;&gt;std::bind_back()&lt;/a&gt;&lt;/code&gt;に、非型テンプレート引数として関数を指定するオーバーロードを追加&lt;ul&gt;
&lt;li&gt;関連して、非型テンプレート引数の関数オブジェクトを反転させられるよう、&lt;code&gt;&lt;a href=&#34;../reference/functional/not_fn.html&#34;&gt;not_fn()&lt;/a&gt;&lt;/code&gt;に非型テンプレート引数版のオーバーロードを追加&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/functional/reference_wrapper.html&#34;&gt;std::reference_wrapper&lt;/a&gt;&lt;/code&gt;に、比較演算子&lt;code&gt;&lt;a href=&#34;../reference/functional/reference_wrapper/op_equal.html&#34;&gt;==&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/functional/reference_wrapper/op_compare_3way.html&#34;&gt;&amp;lt;=&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;文字列&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/charconv.html&#34;&gt;&amp;lt;charconv&amp;gt;&lt;/a&gt;&lt;/code&gt;の変換結果&lt;code&gt;&lt;a href=&#34;../reference/charconv/to_chars_result.html&#34;&gt;std::to_chars_result&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/charconv/from_chars_result.html&#34;&gt;std::from_chars_result&lt;/a&gt;&lt;/code&gt;に、変換が正しく完了したかを判定する&lt;code&gt;operator bool&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/string/to_string.html&#34;&gt;std::to_string()&lt;/a&gt;&lt;/code&gt;の仕様が&lt;code&gt;std::sprintf()&lt;/code&gt;で説明されていたが、&lt;code&gt;&lt;a href=&#34;../reference/format/format.html&#34;&gt;std::format()&lt;/a&gt;&lt;/code&gt;で定義するよう仕様を変更&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/sstream/basic_istringstream.html&#34;&gt;std::basic_istringstream&lt;/a&gt;&lt;/code&gt;および&lt;code&gt;&lt;a href=&#34;../reference/sstream/basic_ostringstream.html&#34;&gt;std::basic_ostringstream&lt;/a&gt;&lt;/code&gt;のコンストラクタおよび&lt;code&gt;str()&lt;/code&gt;メンバ関数に、&lt;code&gt;&lt;a href=&#34;../reference/string_view/basic_string_view.html&#34;&gt;std::basic_string_view&lt;/a&gt;&lt;/code&gt;を受け取るオーバーロードを追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/format/format.html&#34;&gt;std::format()&lt;/a&gt;&lt;/code&gt;に、以下の改善を導入&lt;ul&gt;
&lt;li&gt;ポインタ出力のサポートを追加&lt;/li&gt;
&lt;li&gt;幅と精度を動的に指定した場合でも型の検証がコンパイル時に行われるよう仕様を見直し&lt;/li&gt;
&lt;li&gt;コンパイル時の書式文字列だけでなく、実行時の書式文字列を渡せるよう仕様修正&lt;/li&gt;
&lt;li&gt;非ロケール版を&lt;code&gt;constexpr&lt;/code&gt;に対応&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/string/to_string.html&#34;&gt;std::to_string()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/string/to_wstring.html&#34;&gt;std::to_wstring()&lt;/a&gt;&lt;/code&gt;の整数オーバーロードが&lt;code&gt;constexpr&lt;/code&gt;に対応&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/string/basic_string.html&#34;&gt;std::basic_string&lt;/a&gt;&lt;/code&gt;クラスと&lt;code&gt;&lt;a href=&#34;../reference/string_view/basic_string_view.html&#34;&gt;std::basic_string_view&lt;/a&gt;&lt;/code&gt;クラスに、部分文字列を&lt;code&gt;&lt;a href=&#34;../reference/string_view/basic_string_view.html&#34;&gt;std::basic_string_view&lt;/a&gt;&lt;/code&gt;として取得するメンバ関数&lt;code&gt;subview()&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/string/basic_string.html&#34;&gt;std::basic_string&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/string_view/basic_string_view.html&#34;&gt;std::basic_string_view&lt;/a&gt;&lt;/code&gt;を&lt;code&gt;&lt;a href=&#34;../reference/string/basic_string.html&#34;&gt;std::basic_string&lt;/a&gt;&lt;/code&gt;として連結させる&lt;code&gt;operator+&lt;/code&gt;を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;ファイル&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;ファイルのネイティブハンドルを取得できるよう、&lt;code&gt;&lt;a href=&#34;../reference/fstream/basic_filebuf.html&#34;&gt;std::basic_filebuf&lt;/a&gt;&lt;/code&gt;、&lt;code&gt;&lt;a href=&#34;../reference/fstream/basic_ifstream.html&#34;&gt;std::basic_ifstream&lt;/a&gt;&lt;/code&gt;、&lt;code&gt;&lt;a href=&#34;../reference/fstream/basic_ofstream.html&#34;&gt;std::basic_ofstream&lt;/a&gt;&lt;/code&gt;、&lt;code&gt;&lt;a href=&#34;../reference/fstream/basic_fstream.html&#34;&gt;std::basic_fstream&lt;/a&gt;&lt;/code&gt;クラスに、以下のメンバを追加&lt;ul&gt;
&lt;li&gt;&lt;code&gt;native_handle_type&lt;/code&gt;型&lt;/li&gt;
&lt;li&gt;&lt;code&gt;native_handle()&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/filesystem/path.html&#34;&gt;std::filesystem::path&lt;/a&gt;&lt;/code&gt;クラスに、文字列フォーマットのサポートを追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/filesystem/path.html&#34;&gt;std::filesystem::path&lt;/a&gt;&lt;/code&gt;クラスに、出力用の文字列を取得するための、以下のメンバ関数を追加&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/filesystem/path/display_string.html&#34;&gt;display_string()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/filesystem/path/native_encoded_string.html&#34;&gt;native_encoded_string()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/filesystem/path/generic_display_string.html&#34;&gt;generic_display_string()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/filesystem/path/generic_native_encoded_string.html&#34;&gt;generic_native_encoded_string()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;入出力&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/print/print.html&#34;&gt;std::print()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/print/println.html&#34;&gt;std::println()&lt;/a&gt;&lt;/code&gt;に、ロックを取得せず高速に書き出す最適化を許可&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/print/println.html&#34;&gt;std::println()&lt;/a&gt;&lt;/code&gt;に、改行のみを出力するオーバーロードを追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/print/print.html&#34;&gt;std::print()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/print/println.html&#34;&gt;std::println()&lt;/a&gt;&lt;/code&gt;をより高速にできる最適化が可能か判定する&lt;code&gt;&lt;a href=&#34;../reference/format/enable_nonlocking_formatter_optimization.html&#34;&gt;std::enable_nonlocking_formatter_optimization&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/istream/basic_istream.html&#34;&gt;std::basic_istream&lt;/a&gt;::&lt;a href=&#34;../reference/istream/basic_istream/ignore.html&#34;&gt;ignore()&lt;/a&gt;&lt;/code&gt;メンバ関数に、区切り文字として&lt;code&gt;char&lt;/code&gt;型をとるオーバーロードを追加&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;並行・並列・非同期処理&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/execution.html&#34;&gt;&amp;lt;execution&amp;gt;&lt;/a&gt;&lt;/code&gt;に汎用的な非同期実行を管理するフレームワークを追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic.html&#34;&gt;std::atomic&lt;/a&gt;&lt;/code&gt;オブジェクトに対する2つの値の最大値・最小値を取得する関数として、以下を追加&lt;ul&gt;
&lt;li&gt;メンバ関数&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/fetch_max.html&#34;&gt;fetch_max()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/fetch_min.html&#34;&gt;fetch_min()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/fetch_fmaximum.html&#34;&gt;fetch_fmaximum()&lt;/a&gt;&lt;/code&gt; (浮動小数点数用)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/fetch_fminimum.html&#34;&gt;fetch_fminimum()&lt;/a&gt;&lt;/code&gt; (浮動小数点数用)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/fetch_fmaximum_num.html&#34;&gt;fetch_fmaximum_num()&lt;/a&gt;&lt;/code&gt; (浮動小数点数用)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/fetch_fminimum_num.html&#34;&gt;fetch_fminimum_num()&lt;/a&gt;&lt;/code&gt; (浮動小数点数用)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;非メンバ関数として&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_fetch_max.html&#34;&gt;std::atomic_fetch_max()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_fetch_max_explicit.html&#34;&gt;std::atomic_fetch_max_explicit()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_fetch_min.html&#34;&gt;std::atomic_fetch_min()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_fetch_min_explicit.html&#34;&gt;std::atomic_fetch_min_explicit()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic.html&#34;&gt;std::atomic&lt;/a&gt;&lt;/code&gt;クラスと&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_ref.html&#34;&gt;std::atomic_ref&lt;/a&gt;&lt;/code&gt;クラスに、現在の値を読み込まず (fetchせず) に加算などをする高速な縮約用の操作として、以下を追加&lt;ul&gt;
&lt;li&gt;メンバ関数&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/store_add.html&#34;&gt;store_add()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/store_sub.html&#34;&gt;store_sub()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/store_and.html&#34;&gt;store_and()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/store_or.html&#34;&gt;store_or()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/store_xor.html&#34;&gt;store_xor()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/store_max.html&#34;&gt;store_max()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/store_min.html&#34;&gt;store_min()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/store_fmaximum.html&#34;&gt;store_fmaximum()&lt;/a&gt;&lt;/code&gt; (浮動小数点数用)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/store_fminimum.html&#34;&gt;store_fminimum()&lt;/a&gt;&lt;/code&gt; (浮動小数点数用)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/store_fmaximum_num.html&#34;&gt;store_fmaximum_num()&lt;/a&gt;&lt;/code&gt; (浮動小数点数用)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic/store_fminimum_num.html&#34;&gt;store_fminimum_num()&lt;/a&gt;&lt;/code&gt; (浮動小数点数用)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;非メンバ関数&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_store_add.html&#34;&gt;std::atomic_store_add()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_store_add_explicit.html&#34;&gt;std::atomic_store_add_explicit()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_store_sub.html&#34;&gt;std::atomic_store_sub()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_store_sub_explicit.html&#34;&gt;std::atomic_store_sub_explicit()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_store_and.html&#34;&gt;std::atomic_store_and()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_store_and_explicit.html&#34;&gt;std::atomic_store_and_explicit()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_store_or.html&#34;&gt;std::atomic_store_or()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_store_or_explicit.html&#34;&gt;std::atomic_store_or_explicit()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_store_xor.html&#34;&gt;std::atomic_store_xor()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_store_xor_explicit.html&#34;&gt;std::atomic_store_xor_explicit()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_store_max.html&#34;&gt;std::atomic_store_max()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_store_max_explicit.html&#34;&gt;std::atomic_store_max_explicit()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_store_min.html&#34;&gt;std::atomic_store_min()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_store_min_explicit.html&#34;&gt;std::atomic_store_min_explicit()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_ref.html&#34;&gt;std::atomic_ref&lt;/a&gt;&lt;/code&gt;クラスに、参照するオブジェクトのアドレスを取得する&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_ref/address.html&#34;&gt;address()&lt;/a&gt;&lt;/code&gt;メンバ関数を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic.html&#34;&gt;std::atomic&lt;/a&gt;&lt;/code&gt;クラスのテンプレートパラメータとしてCV修飾された型を禁止&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/atomic_ref.html&#34;&gt;std::atomic_ref&lt;/a&gt;&lt;/code&gt;クラスのテンプレートパラメータとして、CV修飾された型を受け取れるようにした (内部でCV修飾が外される)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic.html&#34;&gt;&amp;lt;atomic&amp;gt;&lt;/a&gt;&lt;/code&gt;ライブラリのアトミック操作を&lt;code&gt;constexpr&lt;/code&gt;対応&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;スマートポインタ・メモリ関連&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;動的確保したオブジェクトに値の意味論をもたせてディープコピーさせるユーティリティクラスとして、&lt;code&gt;&lt;a href=&#34;../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;に&lt;code&gt;&lt;a href=&#34;../reference/memory/indirect.html&#34;&gt;std::indirect&lt;/a&gt;&lt;/code&gt;クラスと&lt;code&gt;&lt;a href=&#34;../reference/memory/polymorphic.html&#34;&gt;std::polymorphic&lt;/a&gt;&lt;/code&gt;クラスを追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/weak_ptr.html&#34;&gt;std::weak_ptr&lt;/a&gt;&lt;/code&gt;を非順序連想コンテナのキーとして使用できるよう、&lt;code&gt;&lt;a href=&#34;../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;に所有権ベースのハッシュ値を取得する関数オブジェクト&lt;code&gt;&lt;a href=&#34;../reference/memory/owner_hash.html&#34;&gt;std::owner_hash&lt;/a&gt;&lt;/code&gt;、および所有権ベースの等値比較を行う関数オブジェクト&lt;code&gt;&lt;a href=&#34;../reference/memory/owner_equal.html&#34;&gt;std::owner_equal&lt;/a&gt;&lt;/code&gt;を追加&lt;ul&gt;
&lt;li&gt;関連して、&lt;code&gt;&lt;a href=&#34;../reference/memory/shared_ptr.html&#34;&gt;std::shared_ptr&lt;/a&gt;&lt;/code&gt;クラスと&lt;code&gt;&lt;a href=&#34;../reference/memory/weak_ptr.html&#34;&gt;std::weak_ptr&lt;/a&gt;&lt;/code&gt;クラスのメンバ関数として、&lt;code&gt;owner_hash()&lt;/code&gt;と&lt;code&gt;owner_equal()&lt;/code&gt;を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/shared_ptr.html&#34;&gt;std::shared_ptr&lt;/a&gt;&lt;/code&gt;クラスとその関連機能を&lt;code&gt;constexpr&lt;/code&gt;対応&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;日付・時間&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono.html&#34;&gt;&amp;lt;chrono&amp;gt;&lt;/a&gt;&lt;/code&gt;の以下のクラスに、ハッシュ値サポートとして&lt;code&gt;&lt;a href=&#34;../reference/functional/hash.html&#34;&gt;std::hash&lt;/a&gt;&lt;/code&gt;の特殊化を追加&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/duration.html&#34;&gt;std::chrono::duration&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/time_point.html&#34;&gt;std::chrono::time_point&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/day.html&#34;&gt;std::chrono::day&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/month.html&#34;&gt;std::chrono::month&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/year.html&#34;&gt;std::chrono::year&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/weekday.html&#34;&gt;std::chrono::weekday&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/weekday_indexed.html&#34;&gt;std::chrono::weekday_indexed&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/weekday_last.html&#34;&gt;std::chrono::weekday_last&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/month_day.html&#34;&gt;std::chrono::month_day&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/month_day_last.html&#34;&gt;std::chrono::month_day_last&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/month_weekday.html&#34;&gt;std::chrono::month_weekday&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/month_weekday_last.html&#34;&gt;std::chrono::month_weekday_last&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/year_month.html&#34;&gt;std::chrono::year_month&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/year_month_day.html&#34;&gt;std::chrono::year_month_day&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/year_month_day_last.html&#34;&gt;std::chrono::year_month_day_last&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/year_month_weekday.html&#34;&gt;std::chrono::year_month_weekday&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/year_month_weekday_last.html&#34;&gt;std::chrono::year_month_weekday_last&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/zoned_time.html&#34;&gt;std::chrono::zoned_time&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/chrono/leap_second.html&#34;&gt;std::chrono::leap_second&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;数値&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath.html&#34;&gt;&amp;lt;cmath&amp;gt;&lt;/a&gt;&lt;/code&gt;に、浮動小数点数の最大値・最小値を求める以下の関数を追加&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/fmaximum.html&#34;&gt;std::fmaximum()&lt;/a&gt;&lt;/code&gt; (-0.0と+0.0では+0.0を返し、NaNと数値ではNaNを返す)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/fmaximum_num.html&#34;&gt;std::fmaximum_num()&lt;/a&gt;&lt;/code&gt; (-0.0と+0.0では+0.0を返し、NaNと数値では数値を返す)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/fminimum.html&#34;&gt;std::fminimum()&lt;/a&gt;&lt;/code&gt; (-0.0と+0.0では-0.0を返し、NaNと数値ではNaNを返す)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/fminimum_num.html&#34;&gt;std::fminimum_num()&lt;/a&gt;&lt;/code&gt; (-0.0と+0.0では-0.0を返し、NaNと数値では数値を返す)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/numeric.html&#34;&gt;&amp;lt;numeric&amp;gt;&lt;/a&gt;&lt;/code&gt;に、飽和演算 (Saturation Arithmetic) として、型の表現可能な範囲で演算を行う以下の関数を追加&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/numeric/saturating_add.html&#34;&gt;std::saturating_add()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/numeric/saturating_sub.html&#34;&gt;std::saturating_sub()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/numeric/saturating_mul.html&#34;&gt;std::saturating_mul()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/numeric/saturating_div.html&#34;&gt;std::saturating_div()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/numeric/saturating_cast.html&#34;&gt;std::saturating_cast()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex.html&#34;&gt;std::complex&lt;/a&gt;&lt;/code&gt;を構造化束縛や、将来のパターンマッチで使用できるようタプルインタフェースの特殊化を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/random.html&#34;&gt;&amp;lt;random&amp;gt;&lt;/a&gt;&lt;/code&gt;の範囲&lt;code&gt;[0, 1)&lt;/code&gt;の乱数を生成する&lt;code&gt;&lt;a href=&#34;../reference/random/generate_canonical.html&#34;&gt;std::generate_canonical()&lt;/a&gt;&lt;/code&gt;を、望ましい統計的性質を保証するようアルゴリズムと制約を変更&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/random.html&#34;&gt;&amp;lt;random&amp;gt;&lt;/a&gt;&lt;/code&gt;に、乱数列を生成する&lt;code&gt;&lt;a href=&#34;../reference/random/generate_random.html&#34;&gt;std::ranges::generate_random()&lt;/a&gt;&lt;/code&gt;関数を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/random.html&#34;&gt;&amp;lt;random&amp;gt;&lt;/a&gt;&lt;/code&gt;に、乱数生成器は並列シミュレーションに効果的なカウンターベースのPhilox乱数生成器として、&lt;code&gt;&lt;a href=&#34;../reference/random/philox_engine.html&#34;&gt;std::philox_engine&lt;/a&gt;&lt;/code&gt;クラス、およびその別名である&lt;code&gt;&lt;a href=&#34;../reference/random/philox4x32.html&#34;&gt;std::philox4x32&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/random/philox4x64.html&#34;&gt;std::philox4x64&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/random.html&#34;&gt;&amp;lt;random&amp;gt;&lt;/a&gt;&lt;/code&gt;の乱数生成器に&lt;code&gt;signed char&lt;/code&gt;と&lt;code&gt;unsigned char&lt;/code&gt;のサポートを追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath.html&#34;&gt;&amp;lt;cmath&amp;gt;&lt;/a&gt;&lt;/code&gt;の以下の関数を、&lt;code&gt;constexpr&lt;/code&gt;に対応 (特殊関数と、グローバルの丸めモードに依存する丸め関数以外の全て)&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/cos.html&#34;&gt;std::cos()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/sin.html&#34;&gt;std::sin()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/tan.html&#34;&gt;std::tan()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/cosh.html&#34;&gt;std::cosh()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/sinh.html&#34;&gt;std::sinh()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/tanh.html&#34;&gt;std::tanh()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/acos.html&#34;&gt;std::acos()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/asin.html&#34;&gt;std::asin()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/atan.html&#34;&gt;std::atan()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/atan2.html&#34;&gt;std::atan2()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/acosh.html&#34;&gt;std::acosh()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/asinh.html&#34;&gt;std::asinh()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/atanh.html&#34;&gt;std::atanh()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/exp.html&#34;&gt;std::exp()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/exp2.html&#34;&gt;std::exp2()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/expm1.html&#34;&gt;std::expm1()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/log.html&#34;&gt;std::log()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/log10.html&#34;&gt;std::log10()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/log1p.html&#34;&gt;std::log1p()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/log2.html&#34;&gt;std::log2()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/pow.html&#34;&gt;std::pow()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/sqrt.html&#34;&gt;std::sqrt()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/cbrt.html&#34;&gt;std::cbrt()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/hypot.html&#34;&gt;std::hypot()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/erf.html&#34;&gt;std::erf()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/erfc.html&#34;&gt;std::erfc()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/lgamma.html&#34;&gt;std::lgamma()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath/tgamma.html&#34;&gt;std::tgamma()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex.html&#34;&gt;&amp;lt;complex&amp;gt;&lt;/a&gt;&lt;/code&gt;の以下の関数を、&lt;code&gt;constexpr&lt;/code&gt;に対応 (すべて)&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/abs.html&#34;&gt;std::abs()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/arg.html&#34;&gt;std::arg()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/proj.html&#34;&gt;std::proj()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/polar.html&#34;&gt;std::polar()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/cos.html&#34;&gt;std::cos()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/sin.html&#34;&gt;std::sin()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/tan.html&#34;&gt;std::tan()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/cosh.html&#34;&gt;std::cosh()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/sinh.html&#34;&gt;std::sinh()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/tanh.html&#34;&gt;std::tanh()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/acos.html&#34;&gt;std::acos()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/asin.html&#34;&gt;std::asin()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/atan.html&#34;&gt;std::atan()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/acosh.html&#34;&gt;std::acosh()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/asinh.html&#34;&gt;std::asinh()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/atanh.html&#34;&gt;std::atanh()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/exp.html&#34;&gt;std::exp()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/log.html&#34;&gt;std::log()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/log10.html&#34;&gt;std::log10()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/pow.html&#34;&gt;std::pow()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/sqrt.html&#34;&gt;std::sqrt()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/norm.html&#34;&gt;std::norm()&lt;/a&gt;&lt;/code&gt; (算術型オーバーロード)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/conj.html&#34;&gt;std::conj()&lt;/a&gt;&lt;/code&gt; (算術型オーバーロード)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/imag_free.html&#34;&gt;std::imag()&lt;/a&gt;&lt;/code&gt; (算術型オーバーロード)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/complex/complex/real_free.html&#34;&gt;std::real()&lt;/a&gt;&lt;/code&gt; (算術型オーバーロード)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;ユーティリティ&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/variant/variant.html&#34;&gt;std::variant&lt;/a&gt;&lt;/code&gt;クラスに、メンバ関数版の&lt;code&gt;&lt;a href=&#34;../reference/variant/variant/visit.html&#34;&gt;visit()&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/variant/monostate.html&#34;&gt;std::monostate&lt;/a&gt;&lt;/code&gt;とその比較演算子、&lt;code&gt;hash&lt;/code&gt;特殊化を、&lt;code&gt;&lt;a href=&#34;../reference/variant.html&#34;&gt;&amp;lt;variant&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダに加えて&lt;code&gt;&lt;a href=&#34;../reference/utility.html&#34;&gt;&amp;lt;utility&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダでも使用できるようにした&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/optional/optional.html&#34;&gt;std::optional&lt;/a&gt;&lt;/code&gt;クラスに、0もしくは1要素のRangeとして扱えるようにするための拡張として、イテレータインタフェースを追加&lt;ul&gt;
&lt;li&gt;&lt;code&gt;iterator&lt;/code&gt;型&lt;/li&gt;
&lt;li&gt;&lt;code&gt;const_iterator&lt;/code&gt;型&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/optional/optional/begin.html&#34;&gt;begin()&lt;/a&gt;&lt;/code&gt;メンバ関数&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/optional/optional/end.html&#34;&gt;end()&lt;/a&gt;&lt;/code&gt;メンバ関数&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/optional/optional.html&#34;&gt;std::optional&lt;/a&gt;&lt;/code&gt;に、参照を保持するための&lt;code&gt;T&amp;amp;&lt;/code&gt;の部分特殊化を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/tuple/apply.html&#34;&gt;std::apply&lt;/a&gt;&lt;/code&gt;の戻り値型推論をやめて、戻り値型用の&lt;code&gt;&lt;a href=&#34;../reference/type_traits/apply_result.html&#34;&gt;std::apply_result&lt;/a&gt;&lt;/code&gt;クラスを追加し、関連する以下の機能を追加&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/type_traits/is_applicable.html&#34;&gt;std::is_applicable&lt;/a&gt;&lt;/code&gt;型特性&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/type_traits/is_nothrow_applicable.html&#34;&gt;std::is_nothrow_applicable&lt;/a&gt;&lt;/code&gt;型特性&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/tuple/ignore.html&#34;&gt;std::ignore&lt;/a&gt;&lt;/code&gt;をファーストクラス・オブジェクトとして型を詳細に定義&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/bitset/bitset.html&#34;&gt;std::bitset&lt;/a&gt;&lt;/code&gt;に、&lt;code&gt;&lt;a href=&#34;../reference/string_view/basic_string_view.html&#34;&gt;std::basic_string_view&lt;/a&gt;&lt;/code&gt;を受け取るコンストラクタを追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ratio.html&#34;&gt;&amp;lt;ratio&amp;gt;&lt;/a&gt;&lt;/code&gt;に、新たなSI接頭辞として、以下を追加&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ratio/si_prefix.html&#34;&gt;ronna&lt;/a&gt;&lt;/code&gt; (10&lt;sup&gt;27&lt;/sup&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ratio/si_prefix.html&#34;&gt;ronto&lt;/a&gt;&lt;/code&gt; (10&lt;sup&gt;−27&lt;/sup&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ratio/si_prefix.html&#34;&gt;quetta&lt;/a&gt;&lt;/code&gt; (10&lt;sup&gt;30&lt;/sup&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ratio/si_prefix.html&#34;&gt;quecto&lt;/a&gt;&lt;/code&gt; (10&lt;sup&gt;−30&lt;/sup&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;定数式での例外送出が許可されることにともない、以下を&lt;code&gt;constexpr&lt;/code&gt;化&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/exception.html&#34;&gt;&amp;lt;exception&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダの以下の機能&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/exception/exception.html&#34;&gt;std::exception&lt;/a&gt;&lt;/code&gt;クラスの全メンバ関数&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/exception/bad_exception.html&#34;&gt;std::bad_exception&lt;/a&gt;&lt;/code&gt;クラスの&lt;code&gt;what()&lt;/code&gt;メンバ関数&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/exception/rethrow_exception.html&#34;&gt;std::rethrow_exception()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/exception/make_exception_ptr.html&#34;&gt;std::make_exception_ptr()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/new.html&#34;&gt;&amp;lt;new&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダの以下の機能&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/new/bad_alloc.html&#34;&gt;std::bad_alloc&lt;/a&gt;&lt;/code&gt;クラスの&lt;code&gt;what()&lt;/code&gt;メンバ関数&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/new/bad_array_new_length.html&#34;&gt;std::bad_array_new_length&lt;/a&gt;&lt;/code&gt;クラスの&lt;code&gt;what()&lt;/code&gt;メンバ関数&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/typeinfo.html&#34;&gt;&amp;lt;typeinfo&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダの以下の機能&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/typeinfo/bad_cast.html&#34;&gt;std::bad_cast&lt;/a&gt;&lt;/code&gt;クラスの&lt;code&gt;what()&lt;/code&gt;メンバ関数&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/typeinfo/bad_typeid.html&#34;&gt;std::bad_typeid&lt;/a&gt;&lt;/code&gt;クラスの&lt;code&gt;what()&lt;/code&gt;メンバ関数&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/stdexcept.html&#34;&gt;&amp;lt;stdexcept&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダの以下の機能&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/stdexcept.html&#34;&gt;std::domain_error&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/stdexcept.html&#34;&gt;std::invalid_argument&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/stdexcept.html&#34;&gt;std::length_error&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/stdexcept.html&#34;&gt;std::logic_error&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/stdexcept.html&#34;&gt;std::out_of_range&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/stdexcept.html&#34;&gt;std::runtime_error&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/stdexcept.html&#34;&gt;std::range_error&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/stdexcept.html&#34;&gt;std::overflow_error&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/stdexcept.html&#34;&gt;std::underflow_error&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/expected.html&#34;&gt;&amp;lt;expected&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダの以下の機能&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/expected/bad_expected_access.html&#34;&gt;std::bad_expected_access&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/optional.html&#34;&gt;&amp;lt;optional&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダの以下の機能&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/optional/bad_optional_access.html&#34;&gt;std::bad_optional_access&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/variant.html&#34;&gt;&amp;lt;variant&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダの以下の機能&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/variant/bad_variant_access.html&#34;&gt;std::bad_variant_access&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/format.html&#34;&gt;&amp;lt;format&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダの以下の機能&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/format/format_error.html&#34;&gt;std::format_error&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;に、ポインタのアライメントを判定する&lt;code&gt;&lt;a href=&#34;../reference/memory/is_sufficiently_aligned.html&#34;&gt;std::is_sufficiently_aligned()&lt;/a&gt;&lt;/code&gt;関数を追加。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/utility.html&#34;&gt;&amp;lt;utility&amp;gt;&lt;/a&gt;&lt;/code&gt;に、タイムトラベル最適化を抑止するための観測可能ポイントとして&lt;code&gt;&lt;a href=&#34;../reference/utility/observable_checkpoint.html&#34;&gt;std::observable_checkpoint()&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/exception/exception_ptr.html&#34;&gt;std::exception_ptr&lt;/a&gt;&lt;/code&gt;を指定した例外型にキャストする&lt;code&gt;&lt;a href=&#34;../reference/exception/exception_ptr_cast.html&#34;&gt;std::exception_ptr_cast()&lt;/a&gt;&lt;/code&gt;関数を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/compare.html&#34;&gt;&amp;lt;compare&amp;gt;&lt;/a&gt;&lt;/code&gt;に、型の順序を取得する&lt;code&gt;&lt;a href=&#34;../reference/compare/type_order.html&#34;&gt;std::type_order&lt;/a&gt;&lt;/code&gt;クラスを追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/utility.html&#34;&gt;&amp;lt;utility&amp;gt;&lt;/a&gt;&lt;/code&gt;に、定数を型として包むことで、関数の引数として渡しても定数式として扱えるようにする定数ラッパー&lt;code&gt;&lt;a href=&#34;../reference/utility/constant_wrapper.html&#34;&gt;std::constant_wrapper&lt;/a&gt;&lt;/code&gt;クラスと、それを簡潔に生成する変数テンプレート&lt;code&gt;&lt;a href=&#34;../reference/utility/constant_wrapper.html&#34;&gt;std::cw&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;デバッグ&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cassert/assert.html&#34;&gt;assert&lt;/a&gt;&lt;/code&gt;マクロの引数としてカンマを含む式を指定できるよう、可変引数化&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;型特性&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/type_traits.html&#34;&gt;&amp;lt;type_traits&amp;gt;&lt;/a&gt;&lt;/code&gt;に、共用体の指定されたメンバがアクティブかを定数式で判定するための関数として&lt;code&gt;&lt;a href=&#34;../reference/type_traits/is_within_lifetime.html&#34;&gt;std::is_within_lifetime()&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/type_traits.html&#34;&gt;&amp;lt;type_traits&amp;gt;&lt;/a&gt;&lt;/code&gt;に、仮想継承の関係を判定する&lt;code&gt;&lt;a href=&#34;../reference/type_traits/is_virtual_base_of.html&#34;&gt;std::is_virtual_base_of&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/utility/integer_sequence.html&#34;&gt;std::integer_sequence&lt;/a&gt;&lt;/code&gt;クラスを&lt;a href=&#34;cpp17/structured_bindings.html&#34;&gt;構造化束縛&lt;/a&gt;と&lt;a href=&#34;cpp26/expansion_statements.html&#34;&gt;template for文&lt;/a&gt;で使用できるようにするため、タプルインタフェースの特殊化を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;制約&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;間接実行に関連する制約から、共通参照の要件を削除&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/iterator/indirectly_unary_invocable.html&#34;&gt;std::indirectly_unary_invocable&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/iterator/indirectly_unary_invocable.html&#34;&gt;std::indirectly_regular_unary_invocable&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/iterator/indirect_unary_predicate.html&#34;&gt;std::indirect_unary_predicate&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/iterator/indirect_binary_predicate.html&#34;&gt;std::indirect_binary_predicate&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/iterator/indirect_equivalence_relation.html&#34;&gt;std::indirect_equivalence_relation&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/iterator/indirect_strict_weak_order.html&#34;&gt;std::indirect_strict_weak_order&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;機能の非推奨化&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/type_traits.html&#34;&gt;&amp;lt;type_traits&amp;gt;&lt;/a&gt;&lt;/code&gt;の&lt;code&gt;&lt;a href=&#34;../reference/type_traits/is_trivial.html&#34;&gt;std::is_trivial&lt;/a&gt;&lt;/code&gt;を非推奨化&lt;ul&gt;
&lt;li&gt;これは&lt;code&gt;&lt;a href=&#34;../reference/type_traits/is_trivially_copyable.html&#34;&gt;std::is_trivially_copyable&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/type_traits/is_trivially_default_constructible.html&#34;&gt;std::is_trivially_default_constructible&lt;/a&gt;&lt;/code&gt;の2つが合わさったものであるが、それらは異なる状況で必要になるものであった&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/atomic/memory_order.html&#34;&gt;std::memory_order::consume&lt;/a&gt;&lt;/code&gt;と、それに関連して&lt;code&gt;&lt;a href=&#34;../reference/atomic/kill_dependency.html&#34;&gt;std::kill_dependency()&lt;/a&gt;&lt;/code&gt;を非推奨化し、&lt;code&gt;&lt;a href=&#34;cpp11/attributes.html&#34;&gt;[[carries_dependency]]&lt;/a&gt;&lt;/code&gt;属性を削除&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/filesystem/path.html&#34;&gt;std::filesystem::path&lt;/a&gt;&lt;/code&gt;クラスの、以下の非テンプレート版メンバ関数を非推奨化&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/filesystem/path/string.html&#34;&gt;string()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/filesystem/path/generic_string.html&#34;&gt;generic_string()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;これらはOS依存のパス名エンコーディングへ変換するため、&lt;a href=&#34;../reference/iostream.html&#34;&gt;iostream&lt;/a&gt;・&lt;code&gt;&lt;a href=&#34;../reference/format/format.html&#34;&gt;std::format()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/print/print.html&#34;&gt;std::print()&lt;/a&gt;&lt;/code&gt;を含むほぼすべての標準のテキスト処理・入出力機能と互換性がなく、文字化けやデータ損失の原因になりやすい&lt;/li&gt;
&lt;li&gt;レガシーなシステムAPIにパスを渡す用途では、ネイティブエンコーディングへの変換であることを明確にした&lt;code&gt;&lt;a href=&#34;../reference/filesystem/path/native_encoded_string.html&#34;&gt;native_encoded_string()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/filesystem/path/generic_native_encoded_string.html&#34;&gt;generic_native_encoded_string()&lt;/a&gt;&lt;/code&gt;を使用する&lt;/li&gt;
&lt;li&gt;表示・フォーマットの用途では、&lt;code&gt;&lt;a href=&#34;../reference/filesystem/path/display_string.html&#34;&gt;display_string()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/filesystem/path/generic_display_string.html&#34;&gt;generic_display_string()&lt;/a&gt;&lt;/code&gt;、もしくは&lt;code&gt;&lt;a href=&#34;../reference/format/format.html&#34;&gt;std::format()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/print/print.html&#34;&gt;std::print()&lt;/a&gt;&lt;/code&gt;を使用する&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;非推奨の取り消し&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory_resource/polymorphic_allocator.html&#34;&gt;std::polymorphic_allocator&lt;/a&gt;::&lt;a href=&#34;../reference/memory_resource/polymorphic_allocator/destroy.html&#34;&gt;destroy()&lt;/a&gt;&lt;/code&gt;の非推奨を取り消し&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;機能の削除&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;C++98から非推奨となっていた&lt;code&gt;&amp;lt;strstream&amp;gt;&lt;/code&gt;ライブラリを削除&lt;/li&gt;
&lt;li&gt;C++17から非推奨となっていたUnicode変換ライブラリ&lt;code&gt;&lt;a href=&#34;../reference/codecvt.html&#34;&gt;&amp;lt;codecvt&amp;gt;&lt;/a&gt;&lt;/code&gt;と、&lt;code&gt;&lt;a href=&#34;../reference/locale/wstring_convert.html&#34;&gt;std::wstring_convert&lt;/a&gt;&lt;/code&gt;クラス、&lt;code&gt;&lt;a href=&#34;../reference/locale/wbuffer_convert.html&#34;&gt;std::wbuffer_convert&lt;/a&gt;&lt;/code&gt;クラスを削除&lt;/li&gt;
&lt;li&gt;C++20から非推奨となっていた、&lt;code&gt;&lt;a href=&#34;../reference/string/basic_string.html&#34;&gt;std::basic_string&lt;/a&gt;::&lt;a href=&#34;../reference/string/basic_string/reserve.html&#34;&gt;reserve()&lt;/a&gt;&lt;/code&gt;のパラメータなしのオーバーロードを削除&lt;/li&gt;
&lt;li&gt;C++20から非推奨となっていた&lt;code&gt;&lt;a href=&#34;../reference/memory/shared_ptr.html&#34;&gt;std::shared_ptr&lt;/a&gt;&lt;/code&gt;に対する、以下の古いアトミック操作関数のオーバーロードを削除&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/shared_ptr/atomic_is_lock_free.html&#34;&gt;std::atomic_is_lock_free&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/shared_ptr/atomic_load.html&#34;&gt;std::atomic_load&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/shared_ptr/atomic_load_explicit.html&#34;&gt;std::atomic_load_explicit&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/shared_ptr/atomic_store.html&#34;&gt;std::atomic_store&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/shared_ptr/atomic_store_explicit.html&#34;&gt;std::atomic_store_explicit&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/shared_ptr/atomic_exchange.html&#34;&gt;std::atomic_exchange&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/shared_ptr/atomic_exchange_explicit.html&#34;&gt;std::atomic_exchange_explicit&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/shared_ptr/atomic_compare_exchange_weak.html&#34;&gt;std::atomic_compare_exchange_weak&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/shared_ptr/atomic_compare_exchange_strong.html&#34;&gt;std::atomic_compare_exchange_strong&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/shared_ptr/atomic_compare_exchange_weak_explicit.html&#34;&gt;std::atomic_compare_exchange_weak_explicit&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/shared_ptr/atomic_compare_exchange_strong_explicit.html&#34;&gt;std::atomic_compare_exchange_strong_explicit&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;C++23から非推奨となっていた、&lt;code&gt;&lt;a href=&#34;../reference/memory/allocator.html&#34;&gt;std::allocator&lt;/a&gt;&lt;/code&gt;のメンバ型&lt;code&gt;is_always_equal&lt;/code&gt;を削除&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;取り決め&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;C言語の参照をC17からC23に更新。これにともない、Cライブラリ由来のヘッダに以下の変更が入った&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cstdlib.html&#34;&gt;&amp;lt;cstdlib&amp;gt;&lt;/a&gt;&lt;/code&gt;: &lt;code&gt;&lt;a href=&#34;../reference/cstdlib/free_sized.html&#34;&gt;free_sized()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/cstdlib/free_aligned_sized.html&#34;&gt;free_aligned_sized()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/cstdlib/memalignment.html&#34;&gt;memalignment()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/cstdlib/strfromf.html&#34;&gt;strfromf()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/cstdlib/strfromd.html&#34;&gt;strfromd()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/cstdlib/strfroml.html&#34;&gt;strfroml()&lt;/a&gt;&lt;/code&gt;を追加。&lt;code&gt;&lt;a href=&#34;../reference/cstdlib/bsearch.html&#34;&gt;bsearch()&lt;/a&gt;&lt;/code&gt;に&lt;code&gt;const&lt;/code&gt;版オーバーロードを追加。&lt;code&gt;&lt;a href=&#34;../reference/cstdlib/realloc.html&#34;&gt;realloc()&lt;/a&gt;&lt;/code&gt;にサイズ&lt;code&gt;0&lt;/code&gt;を渡した場合がエラー性動作となった&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ctime.html&#34;&gt;&amp;lt;ctime&amp;gt;&lt;/a&gt;&lt;/code&gt;: &lt;code&gt;&lt;a href=&#34;../reference/ctime/timespec_getres.html&#34;&gt;timespec_getres()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;timegm()&lt;/code&gt;・&lt;code&gt;gmtime_r()&lt;/code&gt;・&lt;code&gt;localtime_r()&lt;/code&gt;と、&lt;code&gt;TIME_MONOTONIC&lt;/code&gt;・&lt;code&gt;TIME_ACTIVE&lt;/code&gt;・&lt;code&gt;TIME_THREAD_ACTIVE&lt;/code&gt;・&lt;code&gt;__STDC_VERSION_TIME_H__&lt;/code&gt;を追加。&lt;code&gt;asctime()&lt;/code&gt;・&lt;code&gt;ctime()&lt;/code&gt;を非推奨化&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cmath.html&#34;&gt;&amp;lt;cmath&amp;gt;&lt;/a&gt;&lt;/code&gt;: &lt;code&gt;&lt;a href=&#34;../reference/cmath/nextup.html&#34;&gt;nextup()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/cmath/nextdown.html&#34;&gt;nextdown()&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cstdio.html&#34;&gt;&amp;lt;cstdio&amp;gt;&lt;/a&gt;&lt;/code&gt;: &lt;code&gt;_PRINTF_NAN_LEN_MAX&lt;/code&gt;・&lt;code&gt;__STDC_VERSION_STDIO_H__&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cinttypes.html&#34;&gt;&amp;lt;cinttypes&amp;gt;&lt;/a&gt;&lt;/code&gt;: 2進数用の書式指定マクロ (&lt;code&gt;PRIb&lt;/code&gt;&lt;em&gt;N&lt;/em&gt;・&lt;code&gt;SCNb&lt;/code&gt;&lt;em&gt;N&lt;/em&gt;等) と&lt;code&gt;__STDC_VERSION_INTTYPES_H__&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cfloat.html&#34;&gt;&amp;lt;cfloat&amp;gt;&lt;/a&gt;&lt;/code&gt;: &lt;code&gt;&lt;a href=&#34;../reference/cmath/infinity.html&#34;&gt;INFINITY&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/cmath/nan.html&#34;&gt;NAN&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/cfloat/flt_snan.html&#34;&gt;FLT_SNAN&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/cfloat/dbl_snan.html&#34;&gt;DBL_SNAN&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/cfloat/ldbl_snan.html&#34;&gt;LDBL_SNAN&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;__STDC_VERSION_FLOAT_H__&lt;/code&gt;を追加。&lt;code&gt;&lt;a href=&#34;../reference/cfloat/decimal_dig.html&#34;&gt;DECIMAL_DIG&lt;/a&gt;&lt;/code&gt;を非推奨化し、&lt;code&gt;&lt;a href=&#34;../reference/cfloat/flt_has_subnorm.html&#34;&gt;FLT_HAS_SUBNORM&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/cfloat/dbl_has_subnorm.html&#34;&gt;DBL_HAS_SUBNORM&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/cfloat/ldbl_has_subnorm.html&#34;&gt;LDBL_HAS_SUBNORM&lt;/a&gt;&lt;/code&gt;を廃止予定 (obsolescent) とした&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/climits.html&#34;&gt;&amp;lt;climits&amp;gt;&lt;/a&gt;&lt;/code&gt;: 各整数型の幅 (ビット数) を表す&lt;code&gt;&lt;a href=&#34;../reference/climits/bool_width.html&#34;&gt;BOOL_WIDTH&lt;/a&gt;&lt;/code&gt;等のマクロを追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cstdint.html&#34;&gt;&amp;lt;cstdint&amp;gt;&lt;/a&gt;&lt;/code&gt;: 各整数型の幅 (ビット数) を表す&lt;code&gt;&lt;a href=&#34;../reference/cstdint/int8_width.html&#34;&gt;INT8_WIDTH&lt;/a&gt;&lt;/code&gt;等のマクロと、&lt;code&gt;__STDC_VERSION_STDINT_H__&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cstring.html&#34;&gt;&amp;lt;cstring&amp;gt;&lt;/a&gt;&lt;/code&gt;: &lt;code&gt;memccpy()&lt;/code&gt;・&lt;code&gt;strdup()&lt;/code&gt;・&lt;code&gt;strndup()&lt;/code&gt;・&lt;code&gt;memset_explicit()&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cuchar.html&#34;&gt;&amp;lt;cuchar&amp;gt;&lt;/a&gt;&lt;/code&gt;: &lt;code&gt;mbrtoc8()&lt;/code&gt;・&lt;code&gt;c8rtomb()&lt;/code&gt;・&lt;code&gt;__STDC_VERSION_UCHAR_H__&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/cstddef.html&#34;&gt;&amp;lt;cstddef&amp;gt;&lt;/a&gt;&lt;/code&gt;: &lt;code&gt;unreachable&lt;/code&gt;マクロおよび&lt;code&gt;__STDC_VERSION_STDDEF_H__&lt;/code&gt;は定義しないことを明記&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>共用体メンバの生存期間規則の調整 [P3726R2] -- C++23とC++26の生存期間周りに対応 (close #1409, #1100, #1628)</title>
      <link href="https://cpprefjp.github.io/lang/cpp26/adjustments_to_union_lifetime_rules.html"/>
      <id>9fde0d02af12309e32708f1ce6427b2163e7a88e:lang/cpp26/adjustments_to_union_lifetime_rules.md</id>
      <updated>2026-09-07T12:00:37+09:00</updated>
      
        <summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/lang/cpp26/adjustments_to_union_lifetime_rules.md b/lang/cpp26/adjustments_to_union_lifetime_rules.md
new file mode 100644
index 000000000..0bc8ba83b
--- /dev/null
+++ b/lang/cpp26/adjustments_to_union_lifetime_rules.md
@@ -0,0 +1,120 @@
+# 共用体メンバの生存期間規則の調整 [P3726R2]
+* cpp26[meta cpp]
+
+&amp;lt;!-- start lang caution --&amp;gt;
+
+このページはC++26に採用される見込みの言語機能の変更を解説しています。
+
+のちのC++規格でさらに変更される場合があるため[関連項目](#relative-page)を参照してください。
+
+&amp;lt;!-- last lang caution --&amp;gt;
+
+## 概要
+C++26では、[共用体の特殊メンバ関数のトリビアル化](/lang/cpp26/trivial_unions.md)（P3074R7）が導入した「トリビアルなデフォルトコンストラクタは、共用体の先頭メンバが暗黙的生存期間型であればそのメンバの生存期間を暗黙に開始する」という規則が問題を起こすことがわかったため、正式発行前のC++26に対する修正として、次のように調整される。
+
+- 先頭メンバの生存期間を暗黙に開始する規則は撤回される。トリビアルなデフォルトコンストラクタは、どのメンバの生存期間も開始しない
+- 代わりに、オブジェクトの生存期間を明示的に開始する[`std::start_lifetime()`](/reference/memory/start_lifetime.md)関数が[`&amp;lt;memory&amp;gt;`](/reference/memory.md)に追加される。この関数は定数評価の中でも使用でき、共用体メンバを対象とした場合はそのメンバがアクティブメンバとなる
+- 共用体メンバの配列については、一部の要素だけが生存期間内にある状態（未初期化の「穴」がある状態）でも定数式の結果として許可されるよう、構成要素値 (constituent value) の規則が緩和される
+
+これによって、共用体を未初期化ストレージとして使う固定容量コンテナは次のように実装でき、部分的にしか要素を構築していない状態でも`constexpr`変数や定数テンプレート引数として使用できる。
+
+```cpp
+template &amp;lt;typename T, std::size_t N&amp;gt;
+struct FixedVector {
+  union { T storage[N]; };
+  std::size_t size = 0;
+
+  constexpr FixedVector() {
+    // 配列T[N]自体の生存期間だけを明示的に開始し、アクティブメンバにする
+    // （コンストラクタは呼ばれず、各要素の生存期間はまだ開始されない）
+    std::start_lifetime(storage);
+  }
+
+  constexpr ~FixedVector() {
+    std::destroy(storage, storage + size);
+  }
+
+  constexpr void push_back(T const&amp;amp; v) {
+    std::construct_at(storage + size, v);  // storageは生存期間内なので適格
+    ++size;
+  }
+};
+
+// OK: storage[0]だけが生存期間内で、残り3要素は生存期間外（穴）だが、
+// 生存期間外の配列要素は構成要素値から除外されるため定数式として有効
+constexpr FixedVector&amp;lt;int, 4&amp;gt; v = [] {
+  FixedVector&amp;lt;int, 4&amp;gt; v;
+  v.push_back(1);
+  return v;
+}();
+```
+* std::start_lifetime[link /reference/memory/start_lifetime.md]
+* std::construct_at[link /reference/memory/construct_at.md]
+* std::destroy[link /reference/memory/destroy.md]
+
+
+## 仕様
+- P3074R7が導入した、トリビアルなデフォルトコンストラクタが共用体の先頭メンバ（暗黙的生存期間型の場合）の生存期間を開始するという規定は削除される
+- 共用体要素部分オブジェクト (union elemental subobject) という用語が定義される。共用体の直接のメンバ、および共用体要素部分オブジェクトである配列の要素がこれにあたり、生存期間内にないものを非アクティブな共用体要素部分オブジェクトと呼ぶ
+    - オブジェクトの構成要素値・構成要素参照の規則は、「非アクティブな共用体メンバ」ではなく「非アクティブな共用体要素部分オブジェクト」を除外するよう変更される。これにより、共用体メンバの配列に生存期間外の要素が含まれていても、その要素は定数式の妥当性判定の対象にならない
+- テンプレート引数の等価性の規則が拡張され、配列型の2つの値は、対応する要素どうしが「両方とも生存期間内で等価」または「両方とも生存期間外」である場合に等価となる
+- [`&amp;lt;memory&amp;gt;`](/reference/memory.md)に[`std::start_lifetime()`](/reference/memory/start_lifetime.md)関数が追加される
+- 機能テストマクロが次のように変更される
+    - `__cpp_trivial_union`の値が`202603L`に更新される
+    - `__cpp_lib_start_lifetime`（値`202603L`）が追加される
+
+
+## 例
+```cpp
+#include &amp;lt;memory&amp;gt;
+
+struct A {
+  union {
+    int i;
+    int arr[4];
+  };
+};
+
+constexpr A v1;         // OK: 構成要素値はない（どのメンバも生存期間外）
+constexpr A v2{.i = 1}; // OK: 構成要素値は {v2.i}
+constexpr A v3 = [] {
+  A a;
+  std::start_lifetime(a.arr);  // arrが共用体のアクティブメンバとなる
+  std::construct_at(&amp;amp;a.arr[1], 1);
+  a.arr[2] = 2;
+  return a;
+}();                    // OK: 構成要素値は {v3.arr[1], v3.arr[2]}。
+                        // 生存期間外のv3.arr[0]とv3.arr[3]は除外される
+
+int main() {}
+```
+* std::start_lifetime[link /reference/memory/start_lifetime.md]
+* std::construct_at[link /reference/memory/construct_at.md]
+
+このコードはC++26の最終的な規則のもとでは適格だが、2026年9月時点でこの調整を実装した処理系はない（GCC trunkはP3074R7時点の規則を実装しており、`__cpp_trivial_union`は`202502L`、`std::start_lifetime()`は未実装である）。
+
+### 出力
+```
+```
+
+
+## この機能が必要になった背景・経緯
+P3074R7の「先頭メンバの生存期間の暗黙開始」には、次の問題が指摘された。
+
+- アクティブメンバを持たない共用体オブジェクトを定数テンプレート引数として使っていた既存の適格なコードが、暗黙開始によってアクティブメンバを持つようになり、意味（マングリング）が変わってABI破壊となる。さらにテンプレート引数として無効になりコンパイルエラーとなる場合もある
+
+また、暗黙開始とは独立して、構成要素値の規則にも問題があった。共用体メンバの配列がアクティブになると全要素が構成要素値の判定対象になるため、[`std::inplace_vector`](/reference/inplace_vector/inplace_vector.md)のように配列の一部の要素だけを構築するコンテナは、未初期化の要素が不定値・エラー値と判定されて`constexpr`変数にできなかった。
+
+そこで本提案では、暗黙開始を撤回した上で、初期の提案（P3074R0）にあった「生存期間を開始する専用関数」のアプローチを採用し、あわせて配列の「穴」を許可するよう構成要素値の規則を緩和した。配列以外の集成体へ穴の許可を広げることも検討されたが、生存期間外の要素を含む配列はヒープ確保された配列（[`std::allocator`](/reference/memory/allocator.md)`::`[`allocate()`](/reference/memory/allocator/allocate.md)は配列オブジェクトの生存期間を開始するが要素の生存期間は開始しない）としてすでに存在する概念であるのに対し、それ以外への拡張には十分な動機がないとして、C++26では配列に限定された。
+
+
+## &amp;lt;a id=&amp;#34;relative-page&amp;#34; href=&amp;#34;#relative-page&amp;#34;&amp;gt;関連項目&amp;lt;/a&amp;gt;
+- [C++26 共用体の特殊メンバ関数のトリビアル化](/lang/cpp26/trivial_unions.md)
+- [`std::start_lifetime()`](/reference/memory/start_lifetime.md)
+- [`std::inplace_vector`](/reference/inplace_vector/inplace_vector.md)
+
+
+## 参照
+- [P3726R2 Adjustments to Union Lifetime Rules](https://open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3726r2.html)
+- [P3074R7 trivial unions (was std::uninitialized)](https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3074r7.html)
+    - 本提案が調整対象とした、共用体の特殊メンバ関数をトリビアル化する提案
&lt;/code&gt;&lt;/pre&gt;</summary>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>機能テストマクロ -- C++23とC++26の生存期間周りに対応 (close #1409, #1100, #1628)</title>
      <link href="https://cpprefjp.github.io/lang/cpp26/feature_test_macros.html"/>
      <id>9fde0d02af12309e32708f1ce6427b2163e7a88e:lang/cpp26/feature_test_macros.md</id>
      <updated>2026-09-07T12:00:37+09:00</updated>
      
        <content type="html">&lt;h1 itemprop=&#34;name&#34;&gt;&lt;span class=&#34;token&#34;&gt;機能テストマクロ&lt;/span&gt;&lt;span class=&#34;cpp cpp26&#34; title=&#34;C++26で追加&#34;&gt;(C++26)&lt;/span&gt;&lt;/h1&gt;
&lt;div itemprop=&#34;articleBody&#34;&gt;&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;このページはC++26に採用された言語機能の変更を解説しています。&lt;/p&gt;
&lt;p&gt;のちのC++規格でさらに変更される場合があるため&lt;a href=&#34;#relative-page&#34;&gt;関連項目&lt;/a&gt;を参照してください。&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;h2&gt;概要&lt;/h2&gt;
&lt;h3&gt;言語機能&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;マクロ名&lt;/th&gt;
&lt;th&gt;値&lt;/th&gt;
&lt;th&gt;機能&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_constexpr&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202406L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;constexpr_cast_from_voidptr.html&#34;&gt;定数式での&lt;code&gt;void*&lt;/code&gt;からポインタ型へのキャストを許可&lt;/a&gt;&lt;br /&gt;&lt;a href=&#34;constexpr_placement_new.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;配置&lt;code&gt;new&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_constexpr_exceptions&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202411L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;allowing_exception_throwing_in_constant-evaluation.html&#34;&gt;定数評価での例外送出を許可&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_constexpr_virtual_inheritance&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202506L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;constexpr&lt;/code&gt;仮想継承を許可&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_contracts&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;contracts.html&#34;&gt;契約プログラミングをサポートする&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_deleted_function&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202403L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;delete_reason.html&#34;&gt;関数宣言を削除する理由を指定できるようにする&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_expansion_statements&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202506L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;expansion_statements.html&#34;&gt;コンパイル時のタプルやリストを展開処理する&lt;code&gt;template for&lt;/code&gt;文&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_impl_reflection&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202506L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;reflection.html&#34;&gt;静的リフレクション&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_pack_indexing&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202311L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;pack_indexing.html&#34;&gt;パラメータパックへのインデックスアクセスを許可&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_placeholder_variables&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;nice_placeholder_with_no_name.html&#34;&gt;宣言のみで使用しない変数の名前として&lt;code&gt;_&lt;/code&gt;をサポート&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_pp_embed&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;embed.html&#34;&gt;ファイルを読み込む&lt;code&gt;#embed&lt;/code&gt;命令を追加&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_static_assert&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;user-generated_static_assert_messages.html&#34;&gt;&lt;code&gt;static_assert&lt;/code&gt;の診断メッセージにユーザーが生成した文字列の指定を許可&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_structured_bindings&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202411L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;attributes_for_structured_bindings.html&#34;&gt;構造化束縛への属性を許可&lt;/a&gt;&lt;br /&gt;&lt;a href=&#34;structured_bindings_can_introduce_a_pack.html&#34;&gt;構造化束縛でパックを導入できるようにする&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_template_parameters&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;concept_and_variable-template_template-parameters.html&#34;&gt;コンセプトと変数テンプレートをテンプレート引数として渡せるようにする&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_trivial_relocatability&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;トリビアルな再配置&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_trivial_union&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202603L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;trivial_unions.html&#34;&gt;共用体の特殊メンバ関数のトリビアル化&lt;/a&gt; (&lt;code&gt;202502L&lt;/code&gt;)。&lt;a href=&#34;adjustments_to_union_lifetime_rules.html&#34;&gt;共用体メンバの生存期間規則の調整&lt;/a&gt; (&lt;code&gt;202603L&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_variadic_friend&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202403L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;variadic_friends.html&#34;&gt;可変引数テンプレートで&lt;code&gt;friend&lt;/code&gt;宣言をできるようにする&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;ライブラリ&lt;/h3&gt;
&lt;p&gt;ライブラリの機能テストマクロは全て&lt;code&gt;&lt;a href=&#34;../../reference/version.html&#34;&gt;&amp;lt;version&amp;gt;&lt;/a&gt;&lt;/code&gt;でも提供される。&lt;/p&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;マクロ名&lt;/th&gt;
&lt;th&gt;値&lt;/th&gt;
&lt;th&gt;機能&lt;/th&gt;
&lt;th&gt;ヘッダ&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_algorithm_default_value_type&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202603L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;一部アルゴリズムに、値を波カッコ初期化で渡せるよう制約を追加 (P3787R2で&lt;code&gt;&lt;a href=&#34;../../reference/memory/uninitialized_fill.html&#34;&gt;uninitialized_fill&lt;/a&gt;&lt;/code&gt;/&lt;code&gt;&lt;a href=&#34;../../reference/memory/uninitialized_fill_n.html&#34;&gt;uninitialized_fill_n&lt;/a&gt;&lt;/code&gt;を追加)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/algorithm.html&#34;&gt;&amp;lt;algorithm&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/ranges.html&#34;&gt;&amp;lt;ranges&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/string.html&#34;&gt;&amp;lt;string&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/deque.html&#34;&gt;&amp;lt;deque&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/list.html&#34;&gt;&amp;lt;list&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/forward_list.html&#34;&gt;&amp;lt;forward_list&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/vector.html&#34;&gt;&amp;lt;vector&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_aligned_accessor&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202411L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/mdspan.html&#34;&gt;&amp;lt;mdspan&amp;gt;&lt;/a&gt;&lt;/code&gt;に、要素アクセスにアライメント保証を与える&lt;code&gt;&lt;a href=&#34;../../reference/mdspan/aligned_accessor.html&#34;&gt;std::aligned_accessor&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/mdspan.html&#34;&gt;&amp;lt;mdspan&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_associative_heterogeneous_insertion&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;連想コンテナの一部メンバ関数に、一時オブジェクト生成のコストを抑える拡張を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/map.html&#34;&gt;&amp;lt;map&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/set.html&#34;&gt;&amp;lt;set&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/unordered_map.html&#34;&gt;&amp;lt;unordered_map&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/unordered_set.html&#34;&gt;&amp;lt;unordered_set&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_apply&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202603L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/tuple/apply.html&#34;&gt;std::apply&lt;/a&gt;&lt;/code&gt;の戻り値型推論をやめて、戻り値型用の&lt;code&gt;&lt;a href=&#34;../../reference/tuple/apply_result.md.nolink&#34;&gt;std::apply_result&lt;/a&gt;&lt;/code&gt;クラスを追加 (&lt;code&gt;202506L&lt;/code&gt;)。&lt;code&gt;&lt;a href=&#34;../../reference/meta.html&#34;&gt;&amp;lt;meta&amp;gt;&lt;/a&gt;&lt;/code&gt;にも対応する&lt;code&gt;&lt;a href=&#34;../../reference/meta/apply_result.html&#34;&gt;std::meta::apply_result&lt;/a&gt;&lt;/code&gt;などを追加 (&lt;code&gt;202603L&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/tuple.html&#34;&gt;&amp;lt;tuple&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/type_traits.html&#34;&gt;&amp;lt;type_traits&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/meta.html&#34;&gt;&amp;lt;meta&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_atomic_min_max&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202506L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/atomic/atomic.html&#34;&gt;std::atomic&lt;/a&gt;&lt;/code&gt;オブジェクトに対する2つの値の最大値・最小値を取得する関数を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/atomic.html&#34;&gt;&amp;lt;atomic&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_atomic_reductions&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202506L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/atomic/atomic.html&#34;&gt;std::atomic&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../../reference/atomic/atomic_ref.html&#34;&gt;std::atomic_ref&lt;/a&gt;&lt;/code&gt;に高速な縮約用の操作を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/atomic.html&#34;&gt;&amp;lt;atomic&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_atomic_ref&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202411L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/atomic/atomic_ref.html&#34;&gt;std::atomic_ref&lt;/a&gt;&lt;/code&gt;に&lt;code&gt;&lt;a href=&#34;../../reference/atomic/atomic_ref/address.html&#34;&gt;address()&lt;/a&gt;&lt;/code&gt;メンバ関数を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/atomic.html&#34;&gt;&amp;lt;atomic&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_bind_back&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/functional/bind_back.html&#34;&gt;std::bind_back()&lt;/a&gt;&lt;/code&gt;に、非型テンプレート引数として関数を指定するオーバーロードを追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/functional.html&#34;&gt;&amp;lt;functional&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_bind_front&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/functional/bind_front.html&#34;&gt;std::bind_front()&lt;/a&gt;&lt;/code&gt;に、非型テンプレート引数として関数を指定するオーバーロードを追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/functional.html&#34;&gt;&amp;lt;functional&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_bitset&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/bitset/bitset.html&#34;&gt;std::bitset&lt;/a&gt;&lt;/code&gt;に、&lt;code&gt;&lt;a href=&#34;../../reference/string_view/basic_string_view.html&#34;&gt;std::basic_string_view&lt;/a&gt;&lt;/code&gt;を受け取るコンストラクタを追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/bitset.html&#34;&gt;&amp;lt;bitset&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_chrono&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/chrono.html&#34;&gt;&amp;lt;chrono&amp;gt;&lt;/a&gt;&lt;/code&gt;のクラスに、ハッシュ値サポートとして&lt;code&gt;&lt;a href=&#34;../../reference/functional/hash.html&#34;&gt;std::hash&lt;/a&gt;&lt;/code&gt;の特殊化を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/chrono.html&#34;&gt;&amp;lt;chrono&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_constant_wrapper&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202606L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/utility.html&#34;&gt;&amp;lt;utility&amp;gt;&lt;/a&gt;&lt;/code&gt;に&lt;code&gt;&lt;a href=&#34;../../reference/utility/constant_wrapper.html&#34;&gt;std::constant_wrapper&lt;/a&gt;&lt;/code&gt;を追加 (&lt;code&gt;202603L&lt;/code&gt;)。文字列リテラルのサポートを取り消し (&lt;code&gt;202606L&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/utility.html&#34;&gt;&amp;lt;utility&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_constexpr_algorithms&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/algorithm/stable_sort.html&#34;&gt;std::stable_sort()&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../../reference/algorithm/ranges_stable_sort.html&#34;&gt;std::ranges::stable_sort()&lt;/a&gt;&lt;/code&gt;を&lt;code&gt;constexpr&lt;/code&gt;対応&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/algorithm.html&#34;&gt;&amp;lt;algorithm&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/utility.html&#34;&gt;&amp;lt;utility&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_constexpr_atomic&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202411L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/atomic.html&#34;&gt;&amp;lt;atomic&amp;gt;&lt;/a&gt;&lt;/code&gt;ライブラリのアトミック操作を&lt;code&gt;constexpr&lt;/code&gt;対応&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/atomic.html&#34;&gt;&amp;lt;atomic&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_constexpr_cmath&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/cmath.html&#34;&gt;&amp;lt;cmath&amp;gt;&lt;/a&gt;&lt;/code&gt;の関数 (特殊関数と丸めモードに依存する関数以外の全て) を&lt;code&gt;constexpr&lt;/code&gt;対応&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/cmath.html&#34;&gt;&amp;lt;cmath&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/cstdlib.html&#34;&gt;&amp;lt;cstdlib&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_constexpr_complex&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/complex/complex.html&#34;&gt;std::complex&lt;/a&gt;&lt;/code&gt;の全関数を&lt;code&gt;constexpr&lt;/code&gt;対応&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/complex.html&#34;&gt;&amp;lt;complex&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_constexpr_deque&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/deque/deque.html&#34;&gt;std::deque&lt;/a&gt;&lt;/code&gt;を&lt;code&gt;constexpr&lt;/code&gt;対応&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/deque.html&#34;&gt;&amp;lt;deque&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_constexpr_exceptions&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;allowing_exception_throwing_in_constant-evaluation.html&#34;&gt;定数式での例外送出が許可されること&lt;/a&gt;にともない、例外クラスの関連機能を&lt;code&gt;constexpr&lt;/code&gt;対応&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/exception.html&#34;&gt;&amp;lt;exception&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/stdexcept.html&#34;&gt;&amp;lt;stdexcept&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/expected.html&#34;&gt;&amp;lt;expected&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/optional.html&#34;&gt;&amp;lt;optional&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/variant.html&#34;&gt;&amp;lt;variant&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/format.html&#34;&gt;&amp;lt;format&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_constexpr_flat_map&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/flat_map/flat_map.html&#34;&gt;std::flat_map&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../../reference/flat_map/flat_multimap.html&#34;&gt;std::flat_multimap&lt;/a&gt;&lt;/code&gt;を&lt;code&gt;constexpr&lt;/code&gt;対応&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/flat_map.html&#34;&gt;&amp;lt;flat_map&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_constexpr_flat_set&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/flat_set/flat_set.html&#34;&gt;std::flat_set&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../../reference/flat_set/flat_multiset.html&#34;&gt;std::flat_multiset&lt;/a&gt;&lt;/code&gt;を&lt;code&gt;constexpr&lt;/code&gt;対応&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/flat_set.html&#34;&gt;&amp;lt;flat_set&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_constexpr_forward_list&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/forward_list/forward_list.html&#34;&gt;std::forward_list&lt;/a&gt;&lt;/code&gt;を&lt;code&gt;constexpr&lt;/code&gt;対応&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/forward_list.html&#34;&gt;&amp;lt;forward_list&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_constexpr_inplace_vector&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202603L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/inplace_vector/inplace_vector.html&#34;&gt;std::inplace_vector&lt;/a&gt;&lt;/code&gt;を&lt;code&gt;constexpr&lt;/code&gt;対応&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/inplace_vector.html&#34;&gt;&amp;lt;inplace_vector&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_constexpr_list&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/list/list.html&#34;&gt;std::list&lt;/a&gt;&lt;/code&gt;を&lt;code&gt;constexpr&lt;/code&gt;対応&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/list.html&#34;&gt;&amp;lt;list&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_constexpr_map&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/map/map.html&#34;&gt;std::map&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../../reference/map/multimap.html&#34;&gt;std::multimap&lt;/a&gt;&lt;/code&gt;を&lt;code&gt;constexpr&lt;/code&gt;対応&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/map.html&#34;&gt;&amp;lt;map&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_constexpr_memory&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202506L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/memory/shared_ptr.html&#34;&gt;std::shared_ptr&lt;/a&gt;&lt;/code&gt;クラスとその関連機能を&lt;code&gt;constexpr&lt;/code&gt;対応&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_constexpr_new&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202406L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;constexpr_placement_new.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;配置&lt;code&gt;new&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/new.html&#34;&gt;&amp;lt;new&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_constexpr_queue&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/queue/queue.html&#34;&gt;std::queue&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../../reference/queue/priority_queue.html&#34;&gt;std::priority_queue&lt;/a&gt;&lt;/code&gt;を&lt;code&gt;constexpr&lt;/code&gt;対応&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/queue.html&#34;&gt;&amp;lt;queue&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_constexpr_set&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/set/set.html&#34;&gt;std::set&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../../reference/set/multiset.html&#34;&gt;std::multiset&lt;/a&gt;&lt;/code&gt;を&lt;code&gt;constexpr&lt;/code&gt;対応&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/set.html&#34;&gt;&amp;lt;set&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_constexpr_stack&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/stack/stack.html&#34;&gt;std::stack&lt;/a&gt;&lt;/code&gt;を&lt;code&gt;constexpr&lt;/code&gt;対応&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/stack.html&#34;&gt;&amp;lt;stack&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_constexpr_string&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202511L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/string/to_string.html&#34;&gt;std::to_string()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../../reference/string/to_wstring.html&#34;&gt;std::to_wstring()&lt;/a&gt;&lt;/code&gt;の整数版が&lt;code&gt;constexpr&lt;/code&gt;対応&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/string.html&#34;&gt;&amp;lt;string&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_constexpr_unordered_map&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/unordered_map/unordered_map.html&#34;&gt;std::unordered_map&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../../reference/unordered_map/unordered_multimap.html&#34;&gt;std::unordered_multimap&lt;/a&gt;&lt;/code&gt;を&lt;code&gt;constexpr&lt;/code&gt;対応&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/unordered_map.html&#34;&gt;&amp;lt;unordered_map&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_constexpr_unordered_set&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/unordered_set/unordered_set.html&#34;&gt;std::unordered_set&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../../reference/unordered_set/unordered_multiset.html&#34;&gt;std::unordered_multiset&lt;/a&gt;&lt;/code&gt;を&lt;code&gt;constexpr&lt;/code&gt;対応&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/unordered_set.html&#34;&gt;&amp;lt;unordered_set&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_constrained_equality&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202411L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/functional/reference_wrapper.html&#34;&gt;std::reference_wrapper&lt;/a&gt;&lt;/code&gt;に、比較演算子&lt;code&gt;&lt;a href=&#34;../../reference/functional/reference_wrapper/op_equal.html&#34;&gt;==&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../../reference/functional/reference_wrapper/op_compare_3way.html&#34;&gt;&amp;lt;=&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/utility.html&#34;&gt;&amp;lt;utility&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/tuple.html&#34;&gt;&amp;lt;tuple&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/optional.html&#34;&gt;&amp;lt;optional&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/variant.html&#34;&gt;&amp;lt;variant&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/expected.html&#34;&gt;&amp;lt;expected&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_contracts&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;contracts.html&#34;&gt;契約プログラミングをサポートする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/contracts.html&#34;&gt;&amp;lt;contracts&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_copyable_function&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/functional.html&#34;&gt;&amp;lt;functional&amp;gt;&lt;/a&gt;&lt;/code&gt;に&lt;code&gt;&lt;a href=&#34;../../reference/functional/copyable_function.html&#34;&gt;std::copyable_function&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/functional.html&#34;&gt;&amp;lt;functional&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_counting_scope&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202506L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/execution.html&#34;&gt;&amp;lt;execution&amp;gt;&lt;/a&gt;&lt;/code&gt;に&lt;code&gt;&lt;a href=&#34;../../reference/execution/execution/spawn.html&#34;&gt;std::execution::spawn&lt;/a&gt;&lt;/code&gt;、&lt;code&gt;&lt;a href=&#34;../../reference/execution/execution/scope_token.html&#34;&gt;std::execution::scope_token&lt;/a&gt;&lt;/code&gt;などを追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/execution.html&#34;&gt;&amp;lt;execution&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_debugging&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202403L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;デバッグサポートのライブラリとして&lt;code&gt;&lt;a href=&#34;../../reference/debugging.html&#34;&gt;&amp;lt;debugging&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/debugging.html&#34;&gt;&amp;lt;debugging&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_define_static&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202506L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/meta.html&#34;&gt;&amp;lt;meta&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_exception_ptr_cast&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202603L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/exception/exception_ptr.html&#34;&gt;std::exception_ptr&lt;/a&gt;&lt;/code&gt;を指定した例外型にキャストする&lt;code&gt;&lt;a href=&#34;../../reference/exception/exception_ptr_cast.html&#34;&gt;std::exception_ptr_cast()&lt;/a&gt;&lt;/code&gt;関数を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/exception.html&#34;&gt;&amp;lt;exception&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_format&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202603L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/format/dynamic_format.html&#34;&gt;std::dynamic_format&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/format.html&#34;&gt;&amp;lt;format&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_format_path&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202506L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/filesystem/path.html&#34;&gt;std::filesystem::path&lt;/a&gt;&lt;/code&gt;クラスに、文字列フォーマットのサポートを追加&lt;br /&gt;&lt;code&gt;&lt;a href=&#34;../../reference/filesystem/path.html&#34;&gt;std::filesystem::path&lt;/a&gt;&lt;/code&gt;クラスに、出力用の文字列を取得するためのメンバ関数を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/filesystem.html&#34;&gt;&amp;lt;filesystem&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_format_uchar&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202311L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/format/format.html&#34;&gt;std::format&lt;/a&gt;&lt;/code&gt;が&lt;code&gt;char&lt;/code&gt;を数値出力する際は符号なしとして扱う&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/format.html&#34;&gt;&amp;lt;format&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_freestanding_algorithm&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/algorithm.html&#34;&gt;&amp;lt;algorithm&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_freestanding_array&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202311L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/array.html&#34;&gt;&amp;lt;array&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_freestanding_char_traits&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/string.html&#34;&gt;&amp;lt;string&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_freestanding_charconv&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/charconv.html&#34;&gt;&amp;lt;charconv&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_freestanding_cstdlib&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/cstdlib.html&#34;&gt;&amp;lt;cstdlib&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/cmath.html&#34;&gt;&amp;lt;cmath&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_freestanding_cstring&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202311L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/cstring.html&#34;&gt;&amp;lt;cstring&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_freestanding_cwchar&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/cwchar.md.nolink&#34;&gt;&amp;lt;cwchar&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_freestanding_errc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/cerrno.html&#34;&gt;&amp;lt;cerrno&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/system_error.html&#34;&gt;&amp;lt;system_error&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_freestanding_execution&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/execution.html&#34;&gt;&amp;lt;execution&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_freestanding_expected&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202311L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/expected.html&#34;&gt;&amp;lt;expected&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_freestanding_feature_test_macros&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_freestanding_functional&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/functional.html&#34;&gt;&amp;lt;functional&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_freestanding_iterator&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/iterator.html&#34;&gt;&amp;lt;iterator&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_freestanding_mdspan&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202311L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/mdspan.html&#34;&gt;&amp;lt;mdspan&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_freestanding_memory&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_freestanding_numeric&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/numeric.html&#34;&gt;&amp;lt;numeric&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_freestanding_operator_new&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt; or &lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/new.html&#34;&gt;&amp;lt;new&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_freestanding_optional&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202506L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/optional.html&#34;&gt;&amp;lt;optional&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_freestanding_random&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/random.html&#34;&gt;&amp;lt;random&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_freestanding_ranges&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/ranges.html&#34;&gt;&amp;lt;ranges&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_freestanding_ratio&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/ratio.html&#34;&gt;&amp;lt;ratio&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_freestanding_string_view&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202311L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/string_view.html&#34;&gt;&amp;lt;string_view&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_freestanding_tuple&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/tuple.html&#34;&gt;&amp;lt;tuple&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_freestanding_utility&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/utility.html&#34;&gt;&amp;lt;utility&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_freestanding_variant&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202311L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/variant.html&#34;&gt;&amp;lt;variant&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_fstream_native_handle&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/fstream/basic_fstream.html&#34;&gt;std::basic_fstream&lt;/a&gt;&lt;/code&gt;などのメンバに、ファイルのネイティブハンドルを追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/fstream.html&#34;&gt;&amp;lt;fstream&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_function_ref&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202604L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/functional.html&#34;&gt;&amp;lt;functional&amp;gt;&lt;/a&gt;&lt;/code&gt;に&lt;code&gt;&lt;a href=&#34;../../reference/functional/function_ref.html&#34;&gt;std::function_ref&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/functional.html&#34;&gt;&amp;lt;functional&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_hazard_pointer&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ハザードポインタのライブラリ&lt;code&gt;&lt;a href=&#34;../../reference/hazard_pointer.html&#34;&gt;&amp;lt;hazard_pointer&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/hazard_pointer.html&#34;&gt;&amp;lt;hazard_pointer&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_hive&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;シーケンスコンテナのライブラリ&lt;code&gt;&lt;a href=&#34;../../reference/hive.html&#34;&gt;&amp;lt;hive&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/hive.html&#34;&gt;&amp;lt;hive&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_indirect&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;に&lt;code&gt;&lt;a href=&#34;../../reference/memory/indirect.html&#34;&gt;std::indirect&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../../reference/memory/polymorphic.html&#34;&gt;std::polymorphic&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_inplace_vector&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202603L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;容量固定の可変長配列のライブラリ&lt;code&gt;&lt;a href=&#34;../../reference/inplace_vector.html&#34;&gt;&amp;lt;inplace_vector&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/inplace_vector.html&#34;&gt;&amp;lt;inplace_vector&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_integer_sequence&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202511L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/utility/integer_sequence.html&#34;&gt;std::integer_sequence&lt;/a&gt;&lt;/code&gt;を&lt;a href=&#34;../cpp17/structured_bindings.html&#34;&gt;構造化束縛&lt;/a&gt;と&lt;a href=&#34;expansion_statements.html&#34;&gt;&lt;code&gt;template for&lt;/code&gt;文&lt;/a&gt;で使用できるよう、タプルインタフェースの特殊化を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/utility.html&#34;&gt;&amp;lt;utility&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_is_sufficiently_aligned&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202411L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/mdspan.html&#34;&gt;&amp;lt;mdspan&amp;gt;&lt;/a&gt;&lt;/code&gt;に、要素アクセスにアライメント保証を与える&lt;code&gt;&lt;a href=&#34;../../reference/mdspan/aligned_accessor.html&#34;&gt;std::aligned_accessor&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_is_structural&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202603L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/type_traits.html&#34;&gt;&amp;lt;type_traits&amp;gt;&lt;/a&gt;&lt;/code&gt;に&lt;code&gt;&lt;a href=&#34;../../reference/type_traits/is_structural.html&#34;&gt;std::is_structural&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/type_traits.html&#34;&gt;&amp;lt;type_traits&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/meta.html&#34;&gt;&amp;lt;meta&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_is_virtual_base_of&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202406L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/type_traits.html&#34;&gt;&amp;lt;type_traits&amp;gt;&lt;/a&gt;&lt;/code&gt;に&lt;code&gt;&lt;a href=&#34;../../reference/type_traits/is_virtual_base_of.html&#34;&gt;std::is_virtual_base_of&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/type_traits.html&#34;&gt;&amp;lt;type_traits&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_is_within_lifetime&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/type_traits.html&#34;&gt;&amp;lt;type_traits&amp;gt;&lt;/a&gt;&lt;/code&gt;に&lt;code&gt;&lt;a href=&#34;../../reference/type_traits/is_within_lifetime.html&#34;&gt;std::is_within_lifetime()&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/type_traits.html&#34;&gt;&amp;lt;type_traits&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_linalg&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202511L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;線形代数ライブラリとして&lt;code&gt;&lt;a href=&#34;../../reference/linalg.html&#34;&gt;&amp;lt;linalg&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/linalg.html&#34;&gt;&amp;lt;linalg&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_mdspan&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202406L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/mdspan/mdspan.html&#34;&gt;std::mdspan&lt;/a&gt;&lt;/code&gt;に対する&lt;code&gt;&lt;a href=&#34;../../reference/mdspan/extents.html&#34;&gt;std::dextents&lt;/a&gt;&lt;/code&gt;指定の冗長さを解決する&lt;code&gt;&lt;a href=&#34;../../reference/mdspan/extents.html&#34;&gt;std::dims&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/mdspan.html&#34;&gt;&amp;lt;mdspan&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_not_fn&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/functional/not_fn.html&#34;&gt;std::not_fn()&lt;/a&gt;&lt;/code&gt;に、非型テンプレート引数として関数を指定するオーバーロードを追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/functional.html&#34;&gt;&amp;lt;functional&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_observable_checkpoint&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202506L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/utility.html&#34;&gt;&amp;lt;utility&amp;gt;&lt;/a&gt;&lt;/code&gt;に&lt;code&gt;&lt;a href=&#34;../../reference/utility/observable_checkpoint.html&#34;&gt;std::observable_checkpoint()&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/utility.html&#34;&gt;&amp;lt;utility&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_optional&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202506L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/optional/optional.html&#34;&gt;std::optional&lt;/a&gt;&lt;/code&gt;に、参照を保持するための&lt;code&gt;T&amp;amp;&lt;/code&gt;の部分特殊化を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/optional.html&#34;&gt;&amp;lt;optional&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_optional_range_support&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202406L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/optional/optional.html&#34;&gt;std::optional&lt;/a&gt;&lt;/code&gt;にイテレータインタフェースを追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/optional.html&#34;&gt;&amp;lt;optional&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_out_ptr&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202311L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_parallel_algorithm&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202506L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/algorithm.html&#34;&gt;&amp;lt;algorithm&amp;gt;&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;のアルゴリズムを並列実行に対応&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/algorithm.html&#34;&gt;&amp;lt;algorithm&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/numeric.html&#34;&gt;&amp;lt;numeric&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_parallel_scheduler&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202506L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/execution.html&#34;&gt;&amp;lt;execution&amp;gt;&lt;/a&gt;&lt;/code&gt;に&lt;code&gt;&lt;a href=&#34;../../reference/execution/execution/parallel_scheduler.html&#34;&gt;std::execution::parallel_scheduler&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/execution.html&#34;&gt;&amp;lt;execution&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_philox_engine&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202406L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/random.html&#34;&gt;&amp;lt;random&amp;gt;&lt;/a&gt;&lt;/code&gt;に&lt;code&gt;&lt;a href=&#34;../../reference/random/philox_engine.html&#34;&gt;std::philox_engine&lt;/a&gt;&lt;/code&gt;、&lt;code&gt;&lt;a href=&#34;../../reference/random/philox4x32.html&#34;&gt;std::philox4x32&lt;/a&gt;&lt;/code&gt;、&lt;code&gt;&lt;a href=&#34;../../reference/random/philox4x64.html&#34;&gt;std::philox4x64&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/random.html&#34;&gt;&amp;lt;random&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_polymorphic&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;に&lt;code&gt;&lt;a href=&#34;../../reference/memory/indirect.html&#34;&gt;std::indirect&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../../reference/memory/polymorphic.html&#34;&gt;std::polymorphic&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_print&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202406L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/print/print.html&#34;&gt;std::print()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../../reference/print/println.html&#34;&gt;std::println()&lt;/a&gt;&lt;/code&gt;にロックを取得せず高速に書き出す最適化を許可&lt;br /&gt;&lt;code&gt;&lt;a href=&#34;../../reference/format/enable_nonlocking_formatter_optimization.html&#34;&gt;std::enable_nonlocking_formatter_optimization&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/print.html&#34;&gt;&amp;lt;print&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/ostream.html&#34;&gt;&amp;lt;ostream&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_ranges&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202406L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/iterator/indirectly_unary_invocable.html&#34;&gt;std::indirectly_unary_invocable&lt;/a&gt;&lt;/code&gt;などのコンセプトの共通参照要件を削除&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/algorithm.html&#34;&gt;&amp;lt;algorithm&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/functional.html&#34;&gt;&amp;lt;functional&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/iterator.html&#34;&gt;&amp;lt;iterator&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/ranges.html&#34;&gt;&amp;lt;ranges&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_ranges_as_const&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202311L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/iterator/basic_const_iterator.html&#34;&gt;std::basic_const_iterator&lt;/a&gt;&lt;/code&gt;が、基底イテレータの変換先である定数イテレータ型へ暗黙変換できるようにする&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/ranges.html&#34;&gt;&amp;lt;ranges&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_ranges_cache_latest&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202411L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/ranges/cache_latest_view.html&#34;&gt;std::views::cache_latest&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/ranges.html&#34;&gt;&amp;lt;ranges&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_ranges_concat&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202403L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/ranges/concat_view.html&#34;&gt;std::views::concat&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/ranges.html&#34;&gt;&amp;lt;ranges&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_ranges_filter&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202603L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/ranges/filter_view.html&#34;&gt;std::ranges::filter_view&lt;/a&gt;&lt;/code&gt;に、入力Rangeに対する&lt;code&gt;const&lt;/code&gt;版の&lt;code&gt;&lt;a href=&#34;../../reference/ranges/filter_view/begin.html&#34;&gt;begin()&lt;/a&gt;&lt;/code&gt;/&lt;code&gt;&lt;a href=&#34;../../reference/ranges/filter_view/end.html&#34;&gt;end()&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/ranges.html&#34;&gt;&amp;lt;ranges&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_ranges_generate_random&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202403L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/random.html&#34;&gt;&amp;lt;random&amp;gt;&lt;/a&gt;&lt;/code&gt;に、乱数列を生成する&lt;code&gt;&lt;a href=&#34;../../reference/random/generate_random.html&#34;&gt;std::ranges::generate_random()&lt;/a&gt;&lt;/code&gt;関数を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/random.html&#34;&gt;&amp;lt;random&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_ranges_indices&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202506L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;インデックス列を生成する&lt;code&gt;&lt;a href=&#34;../../reference/ranges/indices.html&#34;&gt;std::views::indices&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/ranges.html&#34;&gt;&amp;lt;ranges&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_ranges_reserve_hint&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;各viewクラスに&lt;code&gt;reserve_hint()&lt;/code&gt;メンバ関数を追加&lt;br /&gt;&lt;code&gt;&lt;a href=&#34;../../reference/ranges/reserve_hint.html&#34;&gt;std::ranges::reserve_hint()&lt;/a&gt;&lt;/code&gt;関数を追加&lt;br /&gt;&lt;code&gt;&lt;a href=&#34;../../reference/ranges/approximately_sized_range.html&#34;&gt;std::ranges::approximately_sized_range&lt;/a&gt;&lt;/code&gt;コンセプトを追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/ranges.html&#34;&gt;&amp;lt;ranges&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_ranges_as_input&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/ranges/as_input_view.html&#34;&gt;std::views::as_input&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/ranges.html&#34;&gt;&amp;lt;ranges&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_ratio&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/ratio.html&#34;&gt;&amp;lt;ratio&amp;gt;&lt;/a&gt;&lt;/code&gt;に、新たなSI接頭辞を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/ratio.html&#34;&gt;&amp;lt;ratio&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_raw_memory_algorithms&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202411L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/memory/uninitialized_default_construct.html&#34;&gt;std::uninitialized_default_construct()&lt;/a&gt;&lt;/code&gt;などの未初期化領域に対する操作を&lt;code&gt;constexpr&lt;/code&gt;対応&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_rcu&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;RCU (Read Copy Update) のライブラリとして&lt;code&gt;&lt;a href=&#34;../../reference/rcu.html&#34;&gt;&amp;lt;rcu&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/rcu.html&#34;&gt;&amp;lt;rcu&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_reference_wrapper&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202403L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/functional/reference_wrapper.html&#34;&gt;std::reference_wrapper&lt;/a&gt;&lt;/code&gt;に、比較演算子&lt;code&gt;&lt;a href=&#34;../../reference/functional/reference_wrapper/op_equal.html&#34;&gt;==&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../../reference/functional/reference_wrapper/op_compare_3way.html&#34;&gt;&amp;lt;=&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/functional.html&#34;&gt;&amp;lt;functional&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_reflection&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202506L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;reflection.html&#34;&gt;静的リフレクション&lt;/a&gt;のライブラリ機能&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/meta.html&#34;&gt;&amp;lt;meta&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/contracts/cpp_lib_replaceable_contract_violation_handler.html&#34;&gt;__cpp_lib_replaceable_contract_violation_handler&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202603L&lt;/code&gt; or &lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;contracts.html&#34;&gt;契約違反ハンドラ&lt;/a&gt;を置き換えられるかを検出する（置き換えられる場合は&lt;code&gt;202603L&lt;/code&gt;、置き換えられない場合は&lt;code&gt;0&lt;/code&gt;）&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/contracts.html&#34;&gt;&amp;lt;contracts&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_saturation_arithmetic&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202603L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/numeric.html&#34;&gt;&amp;lt;numeric&amp;gt;&lt;/a&gt;&lt;/code&gt;に飽和演算 (Saturation Arithmetic) として&lt;code&gt;&lt;a href=&#34;../../reference/numeric/saturating_add.html&#34;&gt;std::saturating_add()&lt;/a&gt;&lt;/code&gt;などの関数を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/numeric.html&#34;&gt;&amp;lt;numeric&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_senders&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202506L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/execution.html&#34;&gt;&amp;lt;execution&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_simd&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202603L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;データ並列ライブラリとして、&lt;code&gt;&lt;a href=&#34;../../reference/simd.html&#34;&gt;&amp;lt;simd&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/simd.html&#34;&gt;&amp;lt;simd&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_simd_complex&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/simd.html&#34;&gt;&amp;lt;simd&amp;gt;&lt;/a&gt;&lt;/code&gt;が&lt;code&gt;&lt;a href=&#34;../../reference/complex/complex.html&#34;&gt;std::complex&lt;/a&gt;&lt;/code&gt;をサポートする&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/simd.html&#34;&gt;&amp;lt;simd&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_simd_permutations&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202506L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/simd.html&#34;&gt;&amp;lt;simd&amp;gt;&lt;/a&gt;&lt;/code&gt;に&lt;code&gt;permute()&lt;/code&gt;などを追加する&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/simd.html&#34;&gt;&amp;lt;simd&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_smart_ptr_owner_equality&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;に&lt;code&gt;&lt;a href=&#34;../../reference/memory/owner_hash.html&#34;&gt;std::owner_hash&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../../reference/memory/owner_equal.html&#34;&gt;std::owner_equal&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_span&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202311L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/mdspan/mdspan.html&#34;&gt;std::mdspan&lt;/a&gt;&lt;/code&gt;に&lt;code&gt;&lt;a href=&#34;../../reference/mdspan/mdspan/at.html&#34;&gt;at()&lt;/a&gt;&lt;/code&gt;メンバ関数を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/span.html&#34;&gt;&amp;lt;span&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_span_initializer_list&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202311L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/span/span.html&#34;&gt;std::span&lt;/a&gt;&lt;/code&gt;に&lt;code&gt;&lt;a href=&#34;../../reference/initializer_list/initializer_list.html&#34;&gt;std::initializer_list&lt;/a&gt;&lt;/code&gt;をとるコンストラクタを追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/span.html&#34;&gt;&amp;lt;span&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_start_lifetime&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202603L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;に、オブジェクトの生存期間を明示的に開始する&lt;code&gt;&lt;a href=&#34;../../reference/memory/start_lifetime.html&#34;&gt;std::start_lifetime()&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_stdbit_h&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202603L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/stdbit.h.html&#34;&gt;&amp;lt;stdbit.h&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダがC++から使用可能であることを示す&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/stdbit.h.html&#34;&gt;&amp;lt;stdbit.h&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_stdckdint_h&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202603L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/stdckdint.h.html&#34;&gt;&amp;lt;stdckdint.h&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダがC++から使用可能であることを示す&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/stdckdint.h.html&#34;&gt;&amp;lt;stdckdint.h&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_sstream_from_string_view&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/sstream/basic_stringstream.html&#34;&gt;std::basic_stringstream&lt;/a&gt;&lt;/code&gt;などが&lt;code&gt;&lt;a href=&#34;../../reference/string_view/basic_string_view.html&#34;&gt;std::basic_string_view&lt;/a&gt;&lt;/code&gt;から構築可能に&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/sstream.html&#34;&gt;&amp;lt;sstream&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_string_subview&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202506L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/string/basic_string.html&#34;&gt;std::basic_string&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../../reference/string_view/basic_string_view.html&#34;&gt;std::basic_string_view&lt;/a&gt;&lt;/code&gt;に&lt;code&gt;subview()&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/string.html&#34;&gt;&amp;lt;string&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/string_view.html&#34;&gt;&amp;lt;string_view&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_string_view&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202403L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/string/basic_string.html&#34;&gt;std::basic_string&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../../reference/string_view/basic_string_view.html&#34;&gt;std::basic_string_view&lt;/a&gt;&lt;/code&gt;を連結させる&lt;code&gt;operator+&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/string.html&#34;&gt;&amp;lt;string&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/string_view.html&#34;&gt;&amp;lt;string_view&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_submdspan&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202603L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/mdspan/mdspan.html&#34;&gt;std::mdspan&lt;/a&gt;&lt;/code&gt;から部分ビューを取り出す&lt;code&gt;&lt;a href=&#34;../../reference/mdspan/submdspan.html&#34;&gt;std::submdspan()&lt;/a&gt;&lt;/code&gt;を追加 (&lt;code&gt;202411L&lt;/code&gt;)。&lt;code&gt;strided_slice&lt;/code&gt;を&lt;code&gt;&lt;a href=&#34;../../reference/mdspan/extent_slice.html&#34;&gt;std::extent_slice&lt;/a&gt;&lt;/code&gt;へ改名し、&lt;code&gt;&lt;a href=&#34;../../reference/mdspan/range_slice.html&#34;&gt;std::range_slice&lt;/a&gt;&lt;/code&gt;を追加 (&lt;code&gt;202603L&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/mdspan.html&#34;&gt;&amp;lt;mdspan&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_task&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202506L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/execution.html&#34;&gt;&amp;lt;execution&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_text_encoding&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;文字列エンコーディングを識別するライブラリ&lt;code&gt;&lt;a href=&#34;../../reference/text_encoding.html&#34;&gt;&amp;lt;text_encoding&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/text_encoding.html&#34;&gt;&amp;lt;text_encoding&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_to_chars&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/charconv/to_chars_result.html&#34;&gt;std::to_chars_result&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../../reference/charconv/from_chars_result.html&#34;&gt;std::from_chars_result&lt;/a&gt;&lt;/code&gt;に&lt;code&gt;operator bool&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/charconv.html&#34;&gt;&amp;lt;charconv&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_to_string&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/string/to_string.html&#34;&gt;std::to_string&lt;/a&gt;&lt;/code&gt;の変換結果を&lt;code&gt;sprintf()&lt;/code&gt;ベースから&lt;code&gt;std::format()&lt;/code&gt;ベースに変更&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/string.html&#34;&gt;&amp;lt;string&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_trivially_relocatable&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;トリビアルな再配置&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/type_traits.html&#34;&gt;&amp;lt;type_traits&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_tuple_like&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202311L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/complex/complex.html&#34;&gt;std::complex&lt;/a&gt;&lt;/code&gt;にタプルインタフェースの特殊化を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/utility.html&#34;&gt;&amp;lt;utility&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/tuple.html&#34;&gt;&amp;lt;tuple&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/map.html&#34;&gt;&amp;lt;map&amp;gt;&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;&lt;a href=&#34;../../reference/unordered_map.html&#34;&gt;&amp;lt;unordered_map&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_type_order&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202506L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/compare/type_order.html&#34;&gt;std::type_order&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/compare.html&#34;&gt;&amp;lt;compare&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_variant&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202306L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/variant/variant.html&#34;&gt;std::variant&lt;/a&gt;&lt;/code&gt;クラスに、メンバ関数版の&lt;code&gt;&lt;a href=&#34;../../reference/variant/variant/visit.html&#34;&gt;visit()&lt;/a&gt;&lt;/code&gt;を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/variant.html&#34;&gt;&amp;lt;variant&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;実装依存のマクロ。&lt;/p&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;マクロ名&lt;/th&gt;
&lt;th&gt;値&lt;/th&gt;
&lt;th&gt;機能&lt;/th&gt;
&lt;th&gt;ヘッダ&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_hardened_array&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/array.html&#34;&gt;&amp;lt;array&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_hardened_basic_stacktrace&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202506L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/stacktrace.html&#34;&gt;&amp;lt;stacktrace&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_hardened_basic_string&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/string.html&#34;&gt;&amp;lt;string&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_hardened_basic_string_view&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/string_view.html&#34;&gt;&amp;lt;string_view&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_hardened_bitset&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/bitset.html&#34;&gt;&amp;lt;bitset&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_hardened_common_iterator&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202506L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/iterator.html&#34;&gt;&amp;lt;iterator&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_hardened_counted_iterator&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202506L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/iterator.html&#34;&gt;&amp;lt;iterator&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_hardened_deque&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/deque.html&#34;&gt;&amp;lt;deque&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_hardened_expected&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/expected.html&#34;&gt;&amp;lt;expected&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_hardened_forward_list&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/forward_list.html&#34;&gt;&amp;lt;forward_list&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_hardened_inplace_vector&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/inplace_vector.html&#34;&gt;&amp;lt;inplace_vector&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_hardened_list&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/list.html&#34;&gt;&amp;lt;list&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_hardened_mdspan&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/mdspan.html&#34;&gt;&amp;lt;mdspan&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_hardened_optional&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/optional.html&#34;&gt;&amp;lt;optional&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_hardened_shared_ptr_array&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202506L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_hardened_span&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/span.html&#34;&gt;&amp;lt;span&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_hardened_valarray&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/valarray.html&#34;&gt;&amp;lt;valarray&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_hardened_vector&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/vector.html&#34;&gt;&amp;lt;vector&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_hardened_view_interface&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202506L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/ranges.html&#34;&gt;&amp;lt;ranges&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;参照&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations&#34; target=&#34;_blank&#34;&gt;SD-FeatureTest: Feature-Test Macros and Policies - isocpp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://cplusplus.github.io/LWG/issue4286&#34; target=&#34;_blank&#34;&gt;LWG Issue 4286. Some more feature-test macros for fully freestanding features are not marked freestanding&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++26で、&lt;code&gt;__cpp_lib_aligned_accessor&lt;/code&gt;・&lt;code&gt;__cpp_lib_array_constexpr&lt;/code&gt;・&lt;code&gt;__cpp_lib_clamp&lt;/code&gt;・&lt;code&gt;__cpp_lib_constexpr_numeric&lt;/code&gt;・&lt;code&gt;__cpp_lib_function_ref&lt;/code&gt;・&lt;code&gt;__cpp_lib_gcd_lcm&lt;/code&gt;・&lt;code&gt;__cpp_lib_integer_comparison_functions&lt;/code&gt;・&lt;code&gt;__cpp_lib_is_sufficiently_aligned&lt;/code&gt;・&lt;code&gt;__cpp_lib_ranges_contains&lt;/code&gt;・&lt;code&gt;__cpp_lib_ranges_enumerate&lt;/code&gt;・&lt;code&gt;__cpp_lib_ranges_find_last&lt;/code&gt;・&lt;code&gt;__cpp_lib_ranges_fold&lt;/code&gt;・&lt;code&gt;__cpp_lib_ranges_iota&lt;/code&gt;・&lt;code&gt;__cpp_lib_ranges_starts_ends_with&lt;/code&gt;・&lt;code&gt;__cpp_lib_robust_nonmodifying_seq_ops&lt;/code&gt;・&lt;code&gt;__cpp_lib_sample&lt;/code&gt;・&lt;code&gt;__cpp_lib_saturation_arithmetic&lt;/code&gt;が、フリースタンディング機能に対応するマクロとしてマークされた（あわせて&lt;code&gt;&amp;lt;memory&amp;gt;&lt;/code&gt;の&lt;code&gt;is_sufficiently_aligned&lt;/code&gt;もフリースタンディング指定された）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://cplusplus.github.io/LWG/issue4531&#34; target=&#34;_blank&#34;&gt;LWG Issue 4531. Should there be a feature-test macro update for constexpr &lt;code&gt;std::to_(w)string&lt;/code&gt;?&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../../reference/string/to_string.html&#34;&gt;std::to_string()&lt;/a&gt;&lt;/code&gt;の&lt;code&gt;constexpr&lt;/code&gt;対応がどの機能テストマクロにも反映されていなかったため、&lt;code&gt;__cpp_lib_constexpr_string&lt;/code&gt;が&lt;code&gt;202511L&lt;/code&gt;に更新された。このIssueは規格としてはC++29のワーキングドラフトへ適用されたが、C++26で追加された機能に対する修正であるため、C++26へ遡及して適用される&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://cplusplus.github.io/LWG/issue4567&#34; target=&#34;_blank&#34;&gt;LWG Issue 4567. Feature test macro value for &lt;code&gt;apply_result&lt;/code&gt;, &lt;code&gt;is_applicable&lt;/code&gt;&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;__cpp_lib_apply&lt;/code&gt;の値が整理され、&lt;a href=&#34;https://wg21.link/P1317R2&#34; target=&#34;_blank&#34;&gt;P1317R2&lt;/a&gt;に対応した場合は&lt;code&gt;202506L&lt;/code&gt;、&lt;a href=&#34;https://wg21.link/P3795R2&#34; target=&#34;_blank&#34;&gt;P3795R2&lt;/a&gt;による&lt;code&gt;&lt;a href=&#34;../../reference/meta.html&#34;&gt;&amp;lt;meta&amp;gt;&lt;/a&gt;&lt;/code&gt;側の対応も行った場合は&lt;code&gt;202603L&lt;/code&gt;となった。このIssueは規格としてはC++29のワーキングドラフトへ適用されたが、いずれもC++26で追加された機能に対する修正であるため、C++26へ遡及して適用される&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://cplusplus.github.io/LWG/issue4550&#34; target=&#34;_blank&#34;&gt;LWG Issue 4550. Need new feature test macros for &lt;code&gt;&amp;lt;stdckdint.h&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;stdbit.h&amp;gt;&lt;/code&gt;&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++26で、&lt;code&gt;__cpp_lib_stdbit_h&lt;/code&gt;と&lt;code&gt;__cpp_lib_stdckdint_h&lt;/code&gt;が追加された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2909r4.html&#34; target=&#34;_blank&#34;&gt;P2909R4 Fix formatting of code units as integers (Dude, where&#39;s my char?)&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++26で、&lt;code&gt;__cpp_lib_format_uchar&lt;/code&gt;が追加された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2836r1.html&#34; target=&#34;_blank&#34;&gt;P2836R1 &lt;code&gt;std::basic_const_iterator&lt;/code&gt; should follow its underlying type&#39;s convertibility&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++26で、&lt;code&gt;__cpp_lib_ranges_as_const&lt;/code&gt;が&lt;code&gt;202311L&lt;/code&gt;に更新された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3886r0.pdf&#34; target=&#34;_blank&#34;&gt;P3886R0 Wording for AT1-057&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++26で、&lt;code&gt;__cpp_lib_replaceable_contract_violation_handler&lt;/code&gt;が追加された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3371r5.html&#34; target=&#34;_blank&#34;&gt;P3371R5 Fix C++26 BLAS rank updates consistency&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++26で&lt;code&gt;__cpp_lib_linalg&lt;/code&gt;が&lt;code&gt;202511L&lt;/code&gt;に更新された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://open-std.org/jtc1/sc22/wg21/docs/papers/2026/p4012r1.pdf&#34; target=&#34;_blank&#34;&gt;P4012R1 Value-preserving consteval broadcast to &lt;code&gt;simd::vec&lt;/code&gt;&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++26のsimd整合修正により&lt;code&gt;__cpp_lib_simd&lt;/code&gt;が&lt;code&gt;202603L&lt;/code&gt;に更新された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3982r2.html&#34; target=&#34;_blank&#34;&gt;P3982R2 Split &lt;code&gt;strided_slice&lt;/code&gt; into &lt;code&gt;extent_slice&lt;/code&gt; and &lt;code&gt;range_slice&lt;/code&gt; for C++26&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++26で、&lt;code&gt;__cpp_lib_submdspan&lt;/code&gt;が&lt;code&gt;202603L&lt;/code&gt;に更新された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3726r2.html&#34; target=&#34;_blank&#34;&gt;P3726R2 Adjustments to Union Lifetime Rules&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++26の共用体生存期間規則の調整により、&lt;code&gt;__cpp_trivial_union&lt;/code&gt;が&lt;code&gt;202603L&lt;/code&gt;に更新され、&lt;code&gt;__cpp_lib_start_lifetime&lt;/code&gt;が追加された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p4206r0.html&#34; target=&#34;_blank&#34;&gt;P4206R0 Revert string support in &lt;code&gt;std::constant_wrapper&lt;/code&gt;&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../../reference/utility/constant_wrapper.html&#34;&gt;std::constant_wrapper&lt;/a&gt;&lt;/code&gt;の文字列リテラルサポートが取り消されたことにより、&lt;code&gt;__cpp_lib_constant_wrapper&lt;/code&gt;が&lt;code&gt;202603L&lt;/code&gt;から&lt;code&gt;202606L&lt;/code&gt;に更新された。規格としてはC++29のワーキングドラフトへ適用されたが、C++26で追加された機能に対する欠陥報告 (DR) であるため、C++26へ遡及して適用される&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2198r7.html&#34; target=&#34;_blank&#34;&gt;P2198R7 Freestanding Feature-Test Macros and Implementation-Defined Extensions&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;フリースタンディング処理系向けの機能テストマクロ（&lt;code&gt;__cpp_lib_freestanding_*&lt;/code&gt;）と、実装定義拡張の扱いが規定された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>共用体の特殊メンバ関数のトリビアル化 [P3074R7] -- C++23とC++26の生存期間周りに対応 (close #1409, #1100, #1628)</title>
      <link href="https://cpprefjp.github.io/lang/cpp26/trivial_unions.html"/>
      <id>9fde0d02af12309e32708f1ce6427b2163e7a88e:lang/cpp26/trivial_unions.md</id>
      <updated>2026-09-07T12:00:37+09:00</updated>
      
        <summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/lang/cpp26/trivial_unions.md b/lang/cpp26/trivial_unions.md
index f71051f01..c058f6dec 100644
--- a/lang/cpp26/trivial_unions.md
+++ b/lang/cpp26/trivial_unions.md
@@ -22,7 +22,10 @@ struct FixedVector {
 
   // C++23まで: unionのコンストラクタ/デストラクタが削除されるためコンパイルエラー
   // C++26: OK。unionのコンストラクタ/デストラクタはトリビアル
-  constexpr FixedVector() = default;
+  constexpr FixedVector() {
+    // 配列storage自体の生存期間を明示的に開始する（要素の生存期間は開始されない）
+    std::start_lifetime(storage);
+  }
 
   constexpr ~FixedVector() {
     std::destroy(storage, storage + size);
@@ -36,6 +39,7 @@ struct FixedVector {
 ```
 * std::construct_at[link /reference/memory/construct_at.md]
 * std::destroy[link /reference/memory/destroy.md]
+* std::start_lifetime[link /reference/memory/start_lifetime.md]
 
 
 ## 仕様
@@ -45,7 +49,9 @@ struct FixedVector {
 
 - デフォルトメンバ初期化子をもつメンバがない
 
-トリビアルなデフォルトコンストラクタは、いかなる初期化も実行しない。ただし、共用体の最初の選択肢 (variant member) が暗黙的寿命型 (implicit-lifetime type) の場合は、そのオブジェクトの寿命が開始され、アクティブメンバとなる。
+トリビアルなデフォルトコンストラクタは、いかなる初期化も実行せず、どのメンバの寿命も開始しない。メンバの寿命は[`std::start_lifetime()`](/reference/memory/start_lifetime.md)などで明示的に開始する。
+
+- 本提案の当初の仕様では「共用体の最初の選択肢 (variant member) が暗黙的寿命型 (implicit-lifetime type) の場合、トリビアルなデフォルトコンストラクタがそのメンバの寿命を暗黙に開始する」とされていたが、この規則はABI破壊などの問題があったため、[P3726R2で撤回された](/lang/cpp26/adjustments_to_union_lifetime_rules.md)
 
 ```cpp
 // トリビアルデフォルトコンストラクタ、トリビアルデストラクタ
@@ -57,7 +63,7 @@ union U1 { std::string s; };
 union U2 { std::string s = &amp;#34;hello&amp;#34;; };
 
 // トリビアルデフォルトコンストラクタ、トリビアルデストラクタ
-// s (配列は暗黙的寿命型) の寿命が開始され、アクティブメンバとなる
+// sの寿命は開始されない（P3726R2により、配列でも暗黙開始はされない）
 union U3 { std::string s[10]; };
 ```
 
@@ -81,11 +87,12 @@ union U6 { std::string s; int n = 0; };
 
 ```cpp example
 #include &amp;lt;cassert&amp;gt;
-#include &amp;lt;memory&amp;gt; // std::construct_at()
+#include &amp;lt;memory&amp;gt; // std::construct_at(), std::start_lifetime()
 
 constexpr int f() {
   union { int s[4]; };
-  // sは暗黙的寿命型の配列なので、寿命が開始されアクティブメンバとなる
+  // 配列s自体の寿命を明示的に開始し、アクティブメンバにする
+  std::start_lifetime(s);
   std::construct_at(&amp;amp;s[0], 1);
   std::construct_at(&amp;amp;s[1], 2);
   std::construct_at(&amp;amp;s[2], 3);
@@ -97,6 +104,7 @@ int main() {
 }
 ```
 * std::construct_at[link /reference/memory/construct_at.md]
+* std::start_lifetime[link /reference/memory/start_lifetime.md]
 
 ### 既存コードへの影響
 - これまで削除されていたコンストラクタ/デストラクタがトリビアルになるケースがあるため、以前はコンパイルエラーだったコードがコンパイル可能になる
@@ -125,7 +133,11 @@ int main() {
 - [C++26 `constexpr`配置`new`](/lang/cpp26/constexpr_placement_new.md)
 - [C++26 定数評価での例外送出を許可](/lang/cpp26/allowing_exception_throwing_in_constant-evaluation.md)
 - [`std::inplace_vector`](/reference/inplace_vector/inplace_vector.md)
+- [C++26 共用体メンバの生存期間規則の調整](/lang/cpp26/adjustments_to_union_lifetime_rules.md)
+- [`std::start_lifetime()`](/reference/memory/start_lifetime.md)
 
 
 ## 参照
 - [P3074R7 trivial unions (was std::uninitialized)](https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3074r7.html)
+- [P3726R2 Adjustments to Union Lifetime Rules](https://open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3726r2.html)
+    - 先頭メンバの寿命の暗黙開始を撤回し、[`std::start_lifetime()`](/reference/memory/start_lifetime.md)による明示的な開始へ変更した
&lt;/code&gt;&lt;/pre&gt;</summary>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>memory -- C++23とC++26の生存期間周りに対応 (close #1409, #1100, #1628)</title>
      <link href="https://cpprefjp.github.io/reference/memory.html"/>
      <id>9fde0d02af12309e32708f1ce6427b2163e7a88e:reference/memory.md</id>
      <updated>2026-09-07T12:00:37+09:00</updated>
      
        <content type="html">&lt;div class=&#34;header&#34;&gt;&amp;lt;memory&amp;gt;&lt;/div&gt;&lt;h1 itemprop=&#34;name&#34;&gt;&lt;span class=&#34;token&#34;&gt;memory&lt;/span&gt;&lt;/h1&gt;
&lt;div itemprop=&#34;articleBody&#34;&gt;&lt;p&gt;&lt;code&gt;&amp;lt;memory&amp;gt;&lt;/code&gt;ヘッダでは、メモリアロケータ、未初期化領域に関する関数群、スマートポインタ、アライメントに関するユーティリティ関数といった、メモリを扱うための機能を定義する。&lt;/p&gt;
&lt;p&gt;このヘッダでは、以下の標準ヘッダをインクルードする：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;compare.html&#34;&gt;&amp;lt;compare&amp;gt;&lt;/a&gt;&lt;/code&gt; (C++20)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;フリースタンディング&lt;/h2&gt;
&lt;p&gt;このヘッダのほとんどの機能は、フリースタンディング処理系でも使用できる。ただし、実行ポリシーを取る並列アルゴリズムのオーバーロードは、フリースタンディング処理系では削除される。&lt;/p&gt;
&lt;h2&gt;メモリアロケータ&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;名前&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;対応バージョン&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/allocator.html&#34;&gt;allocator&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;メモリアロケータの標準実装(class template)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/allocator_traits.html&#34;&gt;allocator_traits&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;アロケータクラスへの間接的なアクセス(class template)&lt;/td&gt;
&lt;td&gt;C++11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/allocation_result.html&#34;&gt;allocation_result&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/allocator/allocate_at_least.html&#34;&gt;allocate_at_least()&lt;/a&gt;&lt;/code&gt;関数の戻り値型&lt;/td&gt;
&lt;td&gt;C++23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/allocator_arg_t.html&#34;&gt;allocator_arg_t&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;アロケータを引数として渡す際の、オーバーロード解決のためのタグ(class)&lt;/td&gt;
&lt;td&gt;C++11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/allocator_arg_t.html&#34;&gt;allocator_arg&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;アロケータを引数として渡す際の、オーバーロード解決のためのタグ(constant value)&lt;/td&gt;
&lt;td&gt;C++11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/uses_allocator.html&#34;&gt;uses_allocator&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;型&lt;code&gt;T&lt;/code&gt;がアロケータを使用するか調べる&lt;/td&gt;
&lt;td&gt;C++11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/uses_allocator_construction_args.html&#34;&gt;uses_allocator_construction_args&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;uses-allocator 構築のためのコンストラクタ引数を &lt;code&gt;&lt;a href=&#34;tuple/tuple.html&#34;&gt;tuple&lt;/a&gt;&lt;/code&gt; 型にして返す&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/make_obj_using_allocator.html&#34;&gt;make_obj_using_allocator&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;uses-allocator 構築する&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/uninitialized_construct_using_allocator.html&#34;&gt;uninitialized_construct_using_allocator&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;指定された領域に uses-allocator 構築する&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;メモリ特化のコンセプト&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;名前&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;対応バージョン&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/no-throw-input-iterator.html&#34;&gt;no-throw-input-iterator&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;各操作で例外送出をしない説明用の入力イテレータ (concept)&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/no-throw-forward-iterator.html&#34;&gt;no-throw-forward-iterator&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;各操作で例外送出をしない説明用の前方向イテレータ (concept)&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/no-throw-sentinel.html&#34;&gt;no-throw-sentinel&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;各操作で例外送出をしない説明用の番兵 (concept)&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/no-throw-input-range.html&#34;&gt;no-throw-input-range&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;各操作で例外送出をしない入力Range (concept)&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/no-throw-forward-range.html&#34;&gt;no-throw-forward-range&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;各操作で例外送出をしない前方向Range (concept)&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;未初期化領域に対する操作&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;名前&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;対応バージョン&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/uninitialized_default_construct.html&#34;&gt;uninitialized_default_construct&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;未初期化領域の範囲の各要素をデフォルト構築する(function template)&lt;/td&gt;
&lt;td&gt;C++17&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/uninitialized_default_construct_n.html&#34;&gt;uninitialized_default_construct_n&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;未初期化領域の範囲のうち、先頭&lt;code&gt;N&lt;/code&gt;個の要素をデフォルト構築する(function template)&lt;/td&gt;
&lt;td&gt;C++17&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/uninitialized_value_construct.html&#34;&gt;uninitialized_value_construct&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;未初期化領域の範囲の各要素配置を値構築する(function template)&lt;/td&gt;
&lt;td&gt;C++17&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/uninitialized_value_construct_n.html&#34;&gt;uninitialized_value_construct_n&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;未初期化領域の範囲のうち、先頭&lt;code&gt;N&lt;/code&gt;個の要素を値構築する(function template)&lt;/td&gt;
&lt;td&gt;C++17&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/uninitialized_copy.html&#34;&gt;uninitialized_copy&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;未初期化領域の範囲を配置&lt;code&gt;new&lt;/code&gt;で初期化してコピー出力する(function template)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/uninitialized_copy_n.html&#34;&gt;uninitialized_copy_n&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;未初期化領域の範囲のうち、先頭&lt;code&gt;N&lt;/code&gt;個の要素を配置&lt;code&gt;new&lt;/code&gt;で初期化してコピー出力する(function template)&lt;/td&gt;
&lt;td&gt;C++11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/uninitialized_move.html&#34;&gt;uninitialized_move&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;未初期化領域の範囲を配置&lt;code&gt;new&lt;/code&gt;で初期化してムーブ出力する(function template)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/uninitialized_move_n.html&#34;&gt;uninitialized_move_n&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;未初期化領域の範囲のうち、先頭&lt;code&gt;N&lt;/code&gt;個の要素を配置&lt;code&gt;new&lt;/code&gt;で初期化してムーブ出力する(function template)&lt;/td&gt;
&lt;td&gt;C++11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/uninitialized_fill.html&#34;&gt;uninitialized_fill&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;未初期化領域の範囲を、指定された値で配置&lt;code&gt;new&lt;/code&gt;する(function template)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/uninitialized_fill_n.html&#34;&gt;uninitialized_fill_n&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;未初期化領域の範囲のうち、先頭&lt;code&gt;N&lt;/code&gt;個の要素を指定された値で配置&lt;code&gt;new&lt;/code&gt;する(function template)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/construct_at.html&#34;&gt;construct_at&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;コンストラクタを呼び出す(function template)&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/destroy_at.html&#34;&gt;destroy_at&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;デストラクタを呼び出す(function template)&lt;/td&gt;
&lt;td&gt;C++17&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/destroy.html&#34;&gt;destroy&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;範囲の各要素に対してデストラクタを呼び出す(function template)&lt;/td&gt;
&lt;td&gt;C++17&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/destroy_n.html&#34;&gt;destroy_n&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;範囲のうち、先頭&lt;code&gt;N&lt;/code&gt;個の要素に対してデストラクタを呼び出す(function template)&lt;/td&gt;
&lt;td&gt;C++17&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/ranges_uninitialized_default_construct.html&#34;&gt;ranges::uninitialized_default_construct&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;未初期化領域の範囲の各要素をデフォルト構築する(function template)&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/ranges_uninitialized_default_construct_n.html&#34;&gt;ranges::uninitialized_default_construct_n&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;未初期化領域の範囲のうち、先頭&lt;code&gt;N&lt;/code&gt;個の要素をデフォルト構築する(function template)&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/ranges_uninitialized_value_construct.html&#34;&gt;ranges::uninitialized_value_construct&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;未初期化領域の範囲の各要素配置を値構築する(function template)&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/ranges_uninitialized_value_construct_n.html&#34;&gt;ranges::uninitialized_value_construct_n&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;未初期化領域の範囲のうち、先頭&lt;code&gt;N&lt;/code&gt;個の要素を値構築する(function template)&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/ranges_uninitialized_copy.html&#34;&gt;ranges::uninitialized_copy&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;未初期化領域の範囲を配置&lt;code&gt;new&lt;/code&gt;で初期化してコピー出力する(function template)&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/ranges_uninitialized_copy_n.html&#34;&gt;ranges::uninitialized_copy_n&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;未初期化領域の範囲のうち、先頭&lt;code&gt;N&lt;/code&gt;個の要素を配置&lt;code&gt;new&lt;/code&gt;で初期化してコピー出力する(function template)&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/ranges_uninitialized_move.html&#34;&gt;ranges::uninitialized_move&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;未初期化領域の範囲を配置&lt;code&gt;new&lt;/code&gt;で初期化してムーブ出力する(function template)&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/ranges_uninitialized_move_n.html&#34;&gt;ranges::uninitialized_move_n&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;未初期化領域の範囲のうち、先頭&lt;code&gt;N&lt;/code&gt;個の要素を配置&lt;code&gt;new&lt;/code&gt;で初期化してムーブ出力する(function template)&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/ranges_uninitialized_fill.html&#34;&gt;ranges::uninitialized_fill&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;未初期化領域の範囲を、指定された値で配置&lt;code&gt;new&lt;/code&gt;する(function template)&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/ranges_uninitialized_fill_n.html&#34;&gt;ranges::uninitialized_fill_n&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;未初期化領域の範囲のうち、先頭&lt;code&gt;N&lt;/code&gt;個の要素を指定された値で配置&lt;code&gt;new&lt;/code&gt;する(function template)&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/ranges_construct_at.html&#34;&gt;ranges::construct_at&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;コンストラクタを呼び出す(function template)&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/ranges_destroy_at.html&#34;&gt;ranges::destroy_at&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;デストラクタを呼び出す(function template)&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/ranges_destroy.html&#34;&gt;ranges::destroy&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;範囲の各要素に対してデストラクタを呼び出す(function template)&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/ranges_destroy_n.html&#34;&gt;ranges::destroy_n&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;範囲のうち、先頭&lt;code&gt;N&lt;/code&gt;個の要素に対してデストラクタを呼び出す(function template)&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/raw_storage_iterator.html&#34;&gt;raw_storage_iterator&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;未初期化領域に書き込むための出力イテレータ(class template)&lt;/td&gt;
&lt;td&gt;C++17から非推奨&lt;br /&gt; C++20で削除&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/get_temporary_buffer.html&#34;&gt;get_temporary_buffer&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;短期的なメモリ領域を確保する(function template)&lt;/td&gt;
&lt;td&gt;C++17から非推奨&lt;br /&gt; C++20で削除&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/return_temporary_buffer.html&#34;&gt;return_temporary_buffer&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;get_temporary_buffer()&lt;/code&gt;で確保された領域を解放する(function)&lt;/td&gt;
&lt;td&gt;C++17から非推奨&lt;br /&gt; C++20で削除&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;スマートポインタ&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;名前&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;対応バージョン&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/shared_ptr.html&#34;&gt;shared_ptr&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;共有方式スマートポインタ(class template)&lt;/td&gt;
&lt;td&gt;C++11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/make_shared.html&#34;&gt;make_shared&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;shared_ptr&lt;/code&gt;を構築するヘルパ関数(function template)&lt;/td&gt;
&lt;td&gt;C++11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/make_shared_for_overwrite.html&#34;&gt;make_shared_for_overwrite&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;shared_ptr&lt;/code&gt;を構築するヘルパ関数(function template)&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/allocate_shared.html&#34;&gt;allocate_shared&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;アロケータを指定して&lt;code&gt;shared_ptr&lt;/code&gt;を構築するヘルパ関数(function template)&lt;/td&gt;
&lt;td&gt;C++11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/allocate_shared_for_overwrite.html&#34;&gt;allocate_shared_for_overwrite&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;アロケータを指定して&lt;code&gt;shared_ptr&lt;/code&gt;を構築するヘルパ関数(function template)&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/enable_shared_from_this.html&#34;&gt;enable_shared_from_this&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;this&lt;/code&gt;を指す&lt;code&gt;shared_ptr&lt;/code&gt;を可能にする(class template)&lt;/td&gt;
&lt;td&gt;C++11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/weak_ptr.html&#34;&gt;weak_ptr&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;shared_ptr&lt;/code&gt;のインスタンス監視(class template)&lt;/td&gt;
&lt;td&gt;C++11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/bad_weak_ptr.html&#34;&gt;bad_weak_ptr&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;weak_ptr&lt;/code&gt;から投げられる例外クラス(class template)&lt;/td&gt;
&lt;td&gt;C++11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/owner_less.html&#34;&gt;owner_less&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;所有権ベースの小なり比較(class template)&lt;/td&gt;
&lt;td&gt;C++11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/unique_ptr.html&#34;&gt;unique_ptr&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;専有方式スマートポインタ(class template)&lt;/td&gt;
&lt;td&gt;C++11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/make_unique.html&#34;&gt;make_unique&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;unique_ptr&lt;/code&gt;を構築するヘルパ関数(function template)&lt;/td&gt;
&lt;td&gt;C++14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/make_unique_for_overwrite.html&#34;&gt;make_unique_for_overwrite&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;unique_ptr&lt;/code&gt;を構築するヘルパ関数(function template)&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/default_delete.html&#34;&gt;default_delete&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;unique_ptr&lt;/code&gt;のデフォルトの削除子(class template)&lt;/td&gt;
&lt;td&gt;C++11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;auto_ptr&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;古い専有方式スマートポインタ(class template)&lt;/td&gt;
&lt;td&gt;C++11から非推奨&lt;br /&gt; C++17で削除&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;スマートポインタアダプタ&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;名前&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;対応バージョン&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/out_ptr_t.html&#34;&gt;out_ptr_t&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;スマートポインタへの出力サポート(class template)&lt;/td&gt;
&lt;td&gt;C++23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/out_ptr.html&#34;&gt;out_ptr&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;スマートポインタへの出力サポートヘルパ関数(function template)&lt;/td&gt;
&lt;td&gt;C++23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/inout_ptr_t.html&#34;&gt;inout_ptr_t&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;スマートポインタへの入出力サポート(class template)&lt;/td&gt;
&lt;td&gt;C++23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/inout_ptr.html&#34;&gt;inout_ptr&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;スマートポインタへの入出力サポートヘルパ関数(function template)&lt;/td&gt;
&lt;td&gt;C++23&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;値の意味論をもつ間接ストレージ&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;名前&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;対応バージョン&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/indirect.html&#34;&gt;indirect&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;動的確保したオブジェクトに値の意味論をもたせるクラス(class template)&lt;/td&gt;
&lt;td&gt;C++26&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/polymorphic.html&#34;&gt;polymorphic&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;動的確保したオブジェクトに値の意味論をもたせ、派生型を多態的に保持するクラス(class template)&lt;/td&gt;
&lt;td&gt;C++26&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;スマートポインタのアトミック操作&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;名前&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;対応バージョン&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;template&amp;lt;class T&amp;gt; struct atomic&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;atomic&lt;/code&gt;クラスの先行宣言 (class template)&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/atomic.html&#34;&gt;template&amp;lt;class T&amp;gt; struct atomic&amp;lt;shared_ptr&amp;lt;T&amp;gt;&amp;gt;;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;atomic&lt;/code&gt;クラスの&lt;code&gt;shared_ptr&lt;/code&gt;に対する特殊化 (class template)&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/atomic.html&#34;&gt;template&amp;lt;class T&amp;gt; struct atomic&amp;lt;weak_ptr&amp;lt;T&amp;gt;&amp;gt;;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;atomic&lt;/code&gt;クラスの&lt;code&gt;weak_ptr&lt;/code&gt;に対する特殊化 (class template)&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;atomic_is_lock_free&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;shared_ptr&lt;/code&gt;に対するアトミック操作がロックフリーに振る舞うことができるかを調べる (function template)&lt;/td&gt;
&lt;td&gt;C++11&lt;br /&gt; C++20で非推奨&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;atomic_load&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;shared_ptr&lt;/code&gt;の値をアトミックに読み込む (function template)&lt;/td&gt;
&lt;td&gt;C++11&lt;br /&gt; C++20で非推奨&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;atomic_load_explicit&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;メモリオーダーを指定して、&lt;code&gt;shared_ptr&lt;/code&gt;の値をアトミックに読み込む (function template)&lt;/td&gt;
&lt;td&gt;C++11&lt;br /&gt; C++20で非推奨&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;atomic_store&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;shared_ptr&lt;/code&gt;値をアトミックに書き込む (function template)&lt;/td&gt;
&lt;td&gt;C++11&lt;br /&gt; C++20で非推奨&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;atomic_store_explicit&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;メモリオーダーを指定して、&lt;code&gt;shared_ptr&lt;/code&gt;の値をアトミックに書き込む (function template)&lt;/td&gt;
&lt;td&gt;C++11&lt;br /&gt; C++20で非推奨&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;atomic_exchange&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;shared_ptr&lt;/code&gt;の値をアトミックに入れ替える (function template)&lt;/td&gt;
&lt;td&gt;C++11&lt;br /&gt; C++20で非推奨&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;atomic_exchange_explicit&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;メモリオーダーを指定して、&lt;code&gt;shared_ptr&lt;/code&gt;の値をアトミックに入れ替える (function template)&lt;/td&gt;
&lt;td&gt;C++11&lt;br /&gt; C++20で非推奨&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;atomic_compare_exchange_weak&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;弱い比較で&lt;code&gt;shared_ptr&lt;/code&gt;の値の入れ替えをアトミックに行う (function template)&lt;/td&gt;
&lt;td&gt;C++11&lt;br /&gt; C++20で非推奨&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;atomic_compare_exchange_strong&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;強い比較で&lt;code&gt;shared_ptr&lt;/code&gt;の値の入れ替えをアトミックに行う (function template)&lt;/td&gt;
&lt;td&gt;C++11&lt;br /&gt; C++20で非推奨&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;atomic_compare_exchange_weak_explicit&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;弱い比較でメモリオーダーを指定して、&lt;code&gt;shared_ptr&lt;/code&gt;の値の入れ替えをアトミックに行う (function template)&lt;/td&gt;
&lt;td&gt;C++11&lt;br /&gt; C++20で非推奨&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;atomic_compare_exchange_strong_explicit&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;強い比較でメモリオーダーを指定して、&lt;code&gt;shared_ptr&lt;/code&gt;の値の入れ替えをアトミックに行う (function template)&lt;/td&gt;
&lt;td&gt;C++11&lt;br /&gt; C++20で非推奨&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;ポインタのユーティリティ&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;名前&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;対応バージョン&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/pointer_traits.html&#34;&gt;pointer_traits&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ポインタの型特性(class template)&lt;/td&gt;
&lt;td&gt;C++11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/to_address.html&#34;&gt;to_address&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ポインタと見なせるオブジェクトからアドレスを取得する (function template)&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/addressof.html&#34;&gt;addressof&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;変数のアドレスを必ず取得する(function template)&lt;/td&gt;
&lt;td&gt;C++11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/align.html&#34;&gt;align&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;アライメント調整された領域を得る(function)&lt;/td&gt;
&lt;td&gt;C++11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/assume_aligned.html&#34;&gt;assume_aligned&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;コンパイラへアライメントのヒントを与える(function template)&lt;/td&gt;
&lt;td&gt;C++20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/is_sufficiently_aligned.html&#34;&gt;is_sufficiently_aligned&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ポインタのアライメントを判定する(function template)&lt;/td&gt;
&lt;td&gt;C++26&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/start_lifetime.html&#34;&gt;start_lifetime&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;参照先のオブジェクトの生存期間を明示的に開始する(function template)&lt;/td&gt;
&lt;td&gt;C++26&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/start_lifetime_as.html&#34;&gt;start_lifetime_as&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;オブジェクトの生存期間を開始することを明示する(function template)&lt;/td&gt;
&lt;td&gt;C++23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/start_lifetime_as_array.html&#34;&gt;start_lifetime_as_array&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;配列オブジェクトの生存期間を開始することを明示する(function template)&lt;/td&gt;
&lt;td&gt;C++23&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;ガベージコレクション支援（C++23で削除）&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;名前&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;対応バージョン&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/pointer_safety.html&#34;&gt;pointer_safety&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ポインタ安全性について実装/挙動を示す列挙型(enum class)&lt;/td&gt;
&lt;td&gt;C++11&lt;br /&gt;C++23で削除&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/get_pointer_safety.html&#34;&gt;get_pointer_safety&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;処理系の、ポインタ安全性についての実装/挙動を取得する(function)&lt;/td&gt;
&lt;td&gt;C++11&lt;br /&gt;C++23で削除&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/declare_reachable.html&#34;&gt;declare_reachable&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ポインタが到達可能であることを宣言する(function)&lt;/td&gt;
&lt;td&gt;C++11&lt;br /&gt;C++23で削除&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/undeclare_reachable.html&#34;&gt;undeclare_reachable&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ポインタが到達可能であるという宣言を削除する(function template)&lt;/td&gt;
&lt;td&gt;C++11&lt;br /&gt;C++23で削除&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/declare_no_pointers.html&#34;&gt;declare_no_pointers&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;指定された範囲のポインタが、追跡可能ではないことを宣言する(function)&lt;/td&gt;
&lt;td&gt;C++11&lt;br /&gt;C++23で削除&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;memory/undeclare_no_pointers.html&#34;&gt;undeclare_no_pointers&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;declare_no_pointers&lt;/code&gt;で宣言された範囲を無効化する(function)&lt;/td&gt;
&lt;td&gt;C++11&lt;br /&gt;C++23で削除&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;参照&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4190.htm&#34; target=&#34;_blank&#34;&gt;N4190 Removing &lt;code&gt;auto_ptr&lt;/code&gt;, &lt;code&gt;random_shuffle()&lt;/code&gt;, And Old &lt;code&gt;&amp;lt;functional&amp;gt;&lt;/code&gt; Stuff&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0718r2.html&#34; target=&#34;_blank&#34;&gt;P0718R2 Revising &lt;code&gt;atomic_shared_ptr&lt;/code&gt; for C++20&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2051r0.html&#34; target=&#34;_blank&#34;&gt;P2051R0 C++ Standard Library Issues to be moved in Prague&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2186r2.html&#34; target=&#34;_blank&#34;&gt;P2186R2 Removing Garbage Collection Support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1132r8.html&#34; target=&#34;_blank&#34;&gt;P1132R8 out_ptr - a scalable output pointer abstraction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1642r11.html&#34; target=&#34;_blank&#34;&gt;P1642R11 Freestanding Library: Easy &lt;code&gt;[utilities]&lt;/code&gt;, &lt;code&gt;[ranges]&lt;/code&gt;, and &lt;code&gt;[iterators]&lt;/code&gt;&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++23で、このヘッダの多くの機能がフリースタンディング処理系で使用可能になった（&lt;code&gt;shared_ptr&lt;/code&gt;や&lt;code&gt;make_unique&lt;/code&gt;などを除く）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://cplusplus.github.io/LWG/issue3814&#34; target=&#34;_blank&#34;&gt;LWG Issue 3814. Add freestanding items requested by NB comments&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++23で、&lt;code&gt;start_lifetime_as&lt;/code&gt;・&lt;code&gt;start_lifetime_as_array&lt;/code&gt;がフリースタンディング処理系で使用可能であることが追加で規定された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2976r1.html&#34; target=&#34;_blank&#34;&gt;P2976R1 Freestanding Library: algorithm, numeric, and random&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++26で、未初期化メモリアルゴリズムの実行ポリシー版がフリースタンディング処理系で削除されるなど、&lt;code&gt;&amp;lt;memory&amp;gt;&lt;/code&gt;のフリースタンディング対応が進められた&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>start_lifetime -- C++23とC++26の生存期間周りに対応 (close #1409, #1100, #1628)</title>
      <link href="https://cpprefjp.github.io/reference/memory/start_lifetime.html"/>
      <id>9fde0d02af12309e32708f1ce6427b2163e7a88e:reference/memory/start_lifetime.md</id>
      <updated>2026-09-07T12:00:37+09:00</updated>
      
        <summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/reference/memory/start_lifetime.md b/reference/memory/start_lifetime.md
new file mode 100644
index 000000000..c058262e6
--- /dev/null
+++ b/reference/memory/start_lifetime.md
@@ -0,0 +1,89 @@
+# start_lifetime
+* memory[meta header]
+* function template[meta id-type]
+* std[meta namespace]
+* cpp26[meta cpp]
+
+```cpp
+namespace std {
+  template &amp;lt;class T&amp;gt;
+  constexpr void start_lifetime(T&amp;amp; r) noexcept; // (1) C++26
+}
+```
+
+## 概要
+参照先のオブジェクトの生存期間を明示的に開始する。
+
+この関数は定数評価の中でも使用でき、主に、共用体メンバとして宣言した配列を未初期化ストレージとして使う場合に、その配列自体の生存期間を開始するために使用する。`r`が共用体のメンバを参照する場合、そのメンバは共用体のアクティブメンバとなる。
+
+
+## 適格要件
+`T`が完全型であり、かつ暗黙的生存期間型 (implicit-lifetime type) の集成体であること。
+
+
+## 効果
+- `r`が参照するオブジェクトがすでに生存期間内にある場合、なにもしない
+- そうでない場合、`r`が参照するオブジェクトの生存期間を開始する
+    - 初期化は行われず、部分オブジェクトの生存期間も開始されない
+    - `r`が共用体`U`のメンバを表す場合、それは`U`のアクティブメンバとなる
+
+
+## 例外
+投げない。
+
+
+## 備考
+- [`start_lifetime_as()`](start_lifetime_as.md)は、記憶域を指すポインタ`void*`から型`T`のオブジェクトを暗黙的に構築し、ネストする暗黙的生存期間型の部分オブジェクトの生存期間も開始する。本関数は、すでに手元にある（が生存期間が開始されていない）オブジェクトを対象として、そのオブジェクト自体の生存期間だけを開始する点が異なる。定数評価で使用できるのは本関数のみである
+
+
+## 例
+```cpp
+#include &amp;lt;memory&amp;gt;
+
+struct A {
+  union {
+    int i;
+    int arr[4];
+  };
+};
+
+constexpr A a = [] {
+  A a;
+  // 共用体メンバの配列arrの生存期間を開始し、アクティブメンバにする
+  // （各要素の生存期間はまだ開始されない）
+  std::start_lifetime(a.arr);
+  std::construct_at(&amp;amp;a.arr[0], 1);
+  return a;
+}();
+static_assert(a.arr[0] == 1);
+
+int main() {}
+```
+* std::start_lifetime[color ff0000]
+* std::construct_at[link construct_at.md]
+
+このコードはC++26の規則のもとでは適格だが、2026年9月時点で本関数を実装した処理系はない。
+
+### 出力
+```
+```
+
+
+## バージョン
+### 言語
+- C++26
+
+### 処理系
+- [Clang](/implementation.md#clang): ??
+- [GCC](/implementation.md#gcc): ??
+- [Visual C++](/implementation.md#visual_cpp): ??
+
+
+## 関連項目
+- [`start_lifetime_as()`](start_lifetime_as.md)
+- [`start_lifetime_as_array()`](start_lifetime_as_array.md)
+- [C++26 共用体メンバの生存期間規則の調整](/lang/cpp26/adjustments_to_union_lifetime_rules.md)
+
+
+## 参照
+- [P3726R2 Adjustments to Union Lifetime Rules](https://open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3726r2.html)
&lt;/code&gt;&lt;/pre&gt;</summary>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>start_lifetime_as -- C++23とC++26の生存期間周りに対応 (close #1409, #1100, #1628)</title>
      <link href="https://cpprefjp.github.io/reference/memory/start_lifetime_as.html"/>
      <id>9fde0d02af12309e32708f1ce6427b2163e7a88e:reference/memory/start_lifetime_as.md</id>
      <updated>2026-09-07T12:00:37+09:00</updated>
      
        <summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/reference/memory/start_lifetime_as.md b/reference/memory/start_lifetime_as.md
index 03a41a5ba..8b8f84be4 100644
--- a/reference/memory/start_lifetime_as.md
+++ b/reference/memory/start_lifetime_as.md
@@ -72,13 +72,14 @@ int main() {
 - C++23
 
 ### 処理系
-- [Clang](/implementation.md#clang): ??
-- [GCC](/implementation.md#gcc): ??
-- [Visual C++](/implementation.md#visual_cpp): ??
+- [Clang](/implementation.md#clang): 23 [mark noimpl]
+- [GCC](/implementation.md#gcc): 16.1 [mark verified]
+- [Visual C++](/implementation.md#visual_cpp): 2026 Update 6 [mark verified]
 
 
 ## 関連項目
 - [`std::start_lifetime_as_array`](/reference/memory/start_lifetime_as_array.md)
+- [`std::start_lifetime`](/reference/memory/start_lifetime.md)
 
 
 ## 参照
&lt;/code&gt;&lt;/pre&gt;</summary>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>start_lifetime_as_array -- C++23とC++26の生存期間周りに対応 (close #1409, #1100, #1628)</title>
      <link href="https://cpprefjp.github.io/reference/memory/start_lifetime_as_array.html"/>
      <id>9fde0d02af12309e32708f1ce6427b2163e7a88e:reference/memory/start_lifetime_as_array.md</id>
      <updated>2026-09-07T12:00:37+09:00</updated>
      
        <summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/reference/memory/start_lifetime_as_array.md b/reference/memory/start_lifetime_as_array.md
index dbc34ce81..cd42f8432 100644
--- a/reference/memory/start_lifetime_as_array.md
+++ b/reference/memory/start_lifetime_as_array.md
@@ -73,13 +73,14 @@ int main() {
 - C++23
 
 ### 処理系
-- [Clang](/implementation.md#clang): ??
-- [GCC](/implementation.md#gcc): ??
-- [Visual C++](/implementation.md#visual_cpp): ??
+- [Clang](/implementation.md#clang): 23 [mark noimpl]
+- [GCC](/implementation.md#gcc): 16.1 [mark verified]
+- [Visual C++](/implementation.md#visual_cpp): 2026 Update 6 [mark verified]
 
 
 ## 関連項目
 - [`std::start_lifetime_as`](/reference/memory/start_lifetime_as.md)
+- [`std::start_lifetime`](/reference/memory/start_lifetime.md)
 
 
 ## 参照
&lt;/code&gt;&lt;/pre&gt;</summary>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>is_implicit_lifetime -- C++23とC++26の生存期間周りに対応 (close #1409, #1100, #1628)</title>
      <link href="https://cpprefjp.github.io/reference/type_traits/is_implicit_lifetime.html"/>
      <id>9fde0d02af12309e32708f1ce6427b2163e7a88e:reference/type_traits/is_implicit_lifetime.md</id>
      <updated>2026-09-07T12:00:37+09:00</updated>
      
        <summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/reference/type_traits/is_implicit_lifetime.md b/reference/type_traits/is_implicit_lifetime.md
index 23f37b1cb..ac20d3962 100644
--- a/reference/type_traits/is_implicit_lifetime.md
+++ b/reference/type_traits/is_implicit_lifetime.md
@@ -75,10 +75,14 @@ int main()
 - C++23
 
 ### 処理系
-- [Clang](/implementation.md#clang): ??
-- [GCC](/implementation.md#gcc): ??
-- [Visual C++](/implementation.md#visual_cpp): ??
+- [Clang](/implementation.md#clang): 20 [mark verified]
+- [GCC](/implementation.md#gcc): 16.1 [mark verified]
+- [Visual C++](/implementation.md#visual_cpp): 2026 Update 6 [mark verified]
+
+
+## 関連項目
+- [`std::start_lifetime_as()`](/reference/memory/start_lifetime_as.md)
 
 
 ## 参照
-- [P2674R0 A trait for implicit lifetime types](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2674r0.pdf)
+- [P2674R1 A trait for implicit lifetime types](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2674r1.pdf)
&lt;/code&gt;&lt;/pre&gt;</summary>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>コンパイラの実装状況 -- C++29 : 「コルーチンのpromise型で`return_value`と`return_void`の両方の宣言を許可」を追加 (close #1686)</title>
      <link href="https://cpprefjp.github.io/implementation-status.html"/>
      <id>00fc71857bd3f4e905d1bbcc91c2ff2a5cb14005:implementation-status.md</id>
      <updated>2026-09-07T11:43:54+09:00</updated>
      
        <content type="html">&lt;h1 itemprop=&#34;name&#34;&gt;&lt;span class=&#34;token&#34;&gt;コンパイラの実装状況&lt;/span&gt;&lt;/h1&gt;
&lt;div itemprop=&#34;articleBody&#34;&gt;&lt;p&gt;このページでは、C++のバージョンごとの言語機能を、どのコンパイラがどのバージョンからサポートしているかをまとめる。&lt;/p&gt;
&lt;p&gt;ライブラリ機能については、本サイトのリファレンスで各機能を参照してもらいたい。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#cpp11&#34;&gt;C++11&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#cpp14&#34;&gt;C++14&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#cpp17&#34;&gt;C++17&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#cpp20&#34;&gt;C++20&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#cpp23&#34;&gt;C++23&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#cpp26&#34;&gt;C++26&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#cpp29&#34;&gt;C++29&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href=&#34;#cpp11&#34; id=&#34;cpp11&#34;&gt;C++11言語機能の実装状況&lt;/a&gt;&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#gcc&#34;&gt;GCC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#clang&#34;&gt;Clang&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#icc&#34;&gt;ICC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#visual_cpp&#34;&gt;MSVC&lt;/a&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;N2341: &lt;code&gt;&lt;a href=&#34;lang/cpp11/alignas.html&#34;&gt;alignas&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;アライメント指定&lt;/td&gt;
&lt;td&gt;4.8&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;15.0&lt;/td&gt;
&lt;td&gt;2015&lt;br /&gt;2003あるいはそれ以前からある&lt;code&gt;__declspec(align(x))&lt;/code&gt;構文で代替可能。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2341: &lt;code&gt;&lt;a href=&#34;lang/cpp11/alignof.html&#34;&gt;alignof&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;アライメント取得&lt;/td&gt;
&lt;td&gt;4.5&lt;/td&gt;
&lt;td&gt;3.3&lt;/td&gt;
&lt;td&gt;15.0&lt;/td&gt;
&lt;td&gt;2015&lt;br /&gt;2003あるいはそれ以前よりある&lt;code&gt;__alignof&lt;/code&gt;で代替可能。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N1984: &lt;a href=&#34;lang/cpp11/auto.html&#34;&gt;変数の型推論のためのauto&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;型推論&lt;/td&gt;
&lt;td&gt;4.4&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;12.0&lt;/td&gt;
&lt;td&gt;2010&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2343: &lt;code&gt;&lt;a href=&#34;lang/cpp11/decltype.html&#34;&gt;decltype&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;式の型を取得&lt;/td&gt;
&lt;td&gt;4.3&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;13.0&lt;/td&gt;
&lt;td&gt;2010 (partial)&lt;br /&gt; 2012&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N1653: C99互換のプリプロセッサ&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;lang/cpp11/variadic_macros.html&#34;&gt;可変引数マクロ&lt;/a&gt;、&lt;a href=&#34;lang/cpp11/pragma_operator.html&#34;&gt;Pragma演算子&lt;/a&gt;、&lt;code&gt;&lt;a href=&#34;lang/cpp11/func.html&#34;&gt;__func__&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;4.3&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;11.1&lt;/td&gt;
&lt;td&gt;2005 (partial): 可変引数のみ &lt;code&gt;_Pragma&lt;/code&gt;の代わりに&lt;code&gt;__pragma&lt;/code&gt;が存在する。&lt;br /&gt; 2019 Update 6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2235: &lt;code&gt;&lt;a href=&#34;lang/cpp11/constexpr.html&#34;&gt;constexpr&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;定数式&lt;/td&gt;
&lt;td&gt;4.6&lt;/td&gt;
&lt;td&gt;3.1&lt;/td&gt;
&lt;td&gt;13.0 (partial)&lt;br /&gt; 14.0&lt;/td&gt;
&lt;td&gt;2015 (partial)&lt;br /&gt; 2015 Update 1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2346: &lt;a href=&#34;lang/cpp11/defaulted_and_deleted_functions.html&#34;&gt;関数の&lt;code&gt;default/delete&lt;/code&gt;宣言&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;自動定義される特殊関数の制御&lt;/td&gt;
&lt;td&gt;4.4&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;12.0&lt;/td&gt;
&lt;td&gt;2013: ムーブコンストラクタ・ムーブ代入演算子の&lt;code&gt;default&lt;/code&gt;は不可&lt;br /&gt; 2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N1986: &lt;a href=&#34;lang/cpp11/delegating_constructors.html&#34;&gt;委譲コンストラクタ&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コンストラクタから他のコンストラクタに処理を委譲する&lt;/td&gt;
&lt;td&gt;4.7&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;14.0&lt;/td&gt;
&lt;td&gt;2013&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2437: &lt;a href=&#34;lang/cpp11/explicit_conversion_operator.html&#34;&gt;明示的な型変換演算子のオーバーロード&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;明示的な型変換が行われる場合にのみ呼び出される演算子をオーバーロードできるようにする&lt;/td&gt;
&lt;td&gt;4.5&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;14.0&lt;/td&gt;
&lt;td&gt;2013&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N1791: &lt;a href=&#34;lang/cpp11/extend_friend_targets.html&#34;&gt;&lt;code&gt;friend&lt;/code&gt;宣言できる対象を拡張&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートパラメータや型の別名を&lt;code&gt;friend&lt;/code&gt;宣言&lt;/td&gt;
&lt;td&gt;4.7&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;11.1 (partial) &lt;br /&gt; 12.0&lt;/td&gt;
&lt;td&gt;2010&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N1987: &lt;code&gt;&lt;a href=&#34;lang/cpp11/extern_template.html&#34;&gt;extern template&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;テンプレートのインスタンス化抑止&lt;/td&gt;
&lt;td&gt;3.3&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;11.1&lt;/td&gt;
&lt;td&gt;6.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2540: &lt;a href=&#34;lang/cpp11/inheriting_constructors.html&#34;&gt;継承コンストラクタ&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;基底クラスのコンストラクタを継承する&lt;/td&gt;
&lt;td&gt;4.8&lt;/td&gt;
&lt;td&gt;3.3&lt;/td&gt;
&lt;td&gt;15.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2927: &lt;a href=&#34;lang/cpp11/lambda_expressions.html&#34;&gt;ラムダ式&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;関数オブジェクトをその場に書く&lt;/td&gt;
&lt;td&gt;4.5&lt;/td&gt;
&lt;td&gt;3.1&lt;/td&gt;
&lt;td&gt;12.0&lt;/td&gt;
&lt;td&gt;2010 (partial)&lt;br /&gt; 2012&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2657: &lt;a href=&#34;lang/cpp11/local_and_unnamed_type_as_template_arguments.html&#34;&gt;ローカル型と無名型を、テンプレート引数として使用することを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ローカルおよび無名として定義したクラスや列挙型を、テンプレート引数として渡せるようにする&lt;/td&gt;
&lt;td&gt;4.5&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;12.0&lt;/td&gt;
&lt;td&gt;2010&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N1811: &lt;a href=&#34;lang/cpp11/long_long_type.html&#34;&gt;&lt;code&gt;long long&lt;/code&gt;型&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;64ビット以上の大きさを持つ整数型&lt;/td&gt;
&lt;td&gt;4.3&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;11.1&lt;/td&gt;
&lt;td&gt;2003&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2535: &lt;a href=&#34;lang/cpp11/inline_namespaces.html&#34;&gt;インライン名前空間&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ネストした名前空間に、透過的にアクセスする&lt;/td&gt;
&lt;td&gt;4.4&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;14.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2249: &lt;a href=&#34;lang/cpp11/char16_32.html&#34;&gt;&lt;code&gt;char16_t&lt;/code&gt;と&lt;code&gt;char32_t&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;UTF-16とUTF-32の文字型&lt;/td&gt;
&lt;td&gt;4.4&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;12.1 (Windows: partial) &lt;br /&gt; 12.1 (GNU/Linux, macOS)&lt;br /&gt; 14.0&lt;/td&gt;
&lt;td&gt;2015&lt;br /&gt; 2010より組み込み型ではなく型の別名として存在する&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2442: &lt;a href=&#34;lang/cpp11/utf8_string_literals.html&#34;&gt;UTF-8文字列リテラル&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;char&lt;/code&gt;の文字列をUTF-8エンコーディングするプレフィックス&lt;/td&gt;
&lt;td&gt;4.5&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;12.1 (Windows: partial) &lt;br /&gt; 12.1 (GNU/Linux, macOS)&lt;br /&gt; 14.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2442: &lt;a href=&#34;lang/cpp11/raw_string_literals.html&#34;&gt;生文字列リテラル&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;文字列リテラルにRプレフィックスを付けることで、エスケープシーケンスを無視する&lt;/td&gt;
&lt;td&gt;4.5&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;14.0&lt;/td&gt;
&lt;td&gt;2013&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2765: &lt;a href=&#34;lang/cpp11/user_defined_literals.html&#34;&gt;ユーザー定義リテラル&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;リテラルのサフィックスをユーザー定義する&lt;/td&gt;
&lt;td&gt;4.7&lt;/td&gt;
&lt;td&gt;3.1&lt;/td&gt;
&lt;td&gt;15.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2541: &lt;a href=&#34;lang/cpp11/trailing_return_types.html&#34;&gt;戻り値の型を後置する関数宣言構文&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;以下のような形式での関数宣言&lt;br /&gt; &lt;code&gt;auto f(arg_types...) -&amp;gt; return_type&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;4.4&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;12.0&lt;/td&gt;
&lt;td&gt;2010&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2431: &lt;code&gt;&lt;a href=&#34;lang/cpp11/nullptr.html&#34;&gt;nullptr&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ヌルポインタを表すポインタリテラル&lt;/td&gt;
&lt;td&gt;4.6&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;11.1&lt;/td&gt;
&lt;td&gt;2010&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N1757: &lt;a href=&#34;lang/cpp11/right_angle_brackets.html&#34;&gt;テンプレートでの連続した右山カッコを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;vector&amp;lt;basic_string&amp;lt;char&amp;gt;&amp;gt;&lt;/code&gt;のように、&lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt;をスペースを空けずに記述可能にする&lt;/td&gt;
&lt;td&gt;4.3&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;11.1&lt;/td&gt;
&lt;td&gt;2005&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2118: &lt;a href=&#34;lang/cpp11/rvalue_ref_and_move_semantics.html&#34;&gt;右辺値参照・ムーブセマンティクス&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;右辺値によるオーバーロード、およびそれによるリソースの所有権移動&lt;/td&gt;
&lt;td&gt;4.3 (partial)&lt;br /&gt; 4.6&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;12.0&lt;/td&gt;
&lt;td&gt;2010 (partial) ムーブコンストラクタと代入演算子の暗黙定義に対応していない。&lt;br /&gt; 2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N1720: &lt;a href=&#34;lang/cpp11/static_assert.html&#34;&gt;コンパイル時アサート&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コンパイル時に条件式が真であることを表明する&lt;/td&gt;
&lt;td&gt;4.3&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;11.1&lt;/td&gt;
&lt;td&gt;2010&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2347: &lt;a href=&#34;lang/cpp11/scoped_enum.html#extended-unscoped-enum&#34;&gt;&lt;code&gt;enum&lt;/code&gt;の先行宣言&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;4.6&lt;/td&gt;
&lt;td&gt;3.1&lt;/td&gt;
&lt;td&gt;11.1 (partial)&lt;br /&gt; 14.0&lt;/td&gt;
&lt;td&gt;2012&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2347: &lt;a href=&#34;lang/cpp11/scoped_enum.html&#34;&gt;スコープを持つ列挙型&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;強い型付けとスコープを持つ列挙型&lt;/td&gt;
&lt;td&gt;4.4&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;11.1 (partial)&lt;br /&gt; 14.0&lt;/td&gt;
&lt;td&gt;2012&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2258: &lt;a href=&#34;lang/cpp11/alias_templates.html&#34;&gt;エイリアステンプレート&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートによって型の別名を定義する&lt;/td&gt;
&lt;td&gt;4.7&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;12.1&lt;/td&gt;
&lt;td&gt;2013&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2544: &lt;a href=&#34;lang/cpp11/unrestricted_unions.html&#34;&gt;共用体でクラスオブジェクトをもつことを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;共用体のメンバ変数として、クラスオブジェクトを持つ&lt;/td&gt;
&lt;td&gt;4.6&lt;/td&gt;
&lt;td&gt;3.1&lt;/td&gt;
&lt;td&gt;14.0(Linux系OSおよびMacのみ。Windowsは非対応)&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2242: &lt;a href=&#34;lang/cpp11/variadic_templates.html&#34;&gt;可変引数テンプレート&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;任意の数のテンプレートパラメータを受け取れるようにする&lt;/td&gt;
&lt;td&gt;4.3 (partial)&lt;br /&gt; 4.4&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;12.1&lt;/td&gt;
&lt;td&gt;2013&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2930: &lt;a href=&#34;lang/cpp11/range_based_for.html&#34;&gt;範囲for文&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;配列やコンテナといった範囲を表すオブジェクトを、簡潔に走査する&lt;/td&gt;
&lt;td&gt;4.6&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;13.0&lt;/td&gt;
&lt;td&gt;2012&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2928: &lt;a href=&#34;lang/cpp11/override_final.html&#34;&gt;&lt;code&gt;override&lt;/code&gt;と&lt;code&gt;final&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;メンバ関数のオーバーライド指定、および派生クラスでのオーバーロードを禁止する指定&lt;/td&gt;
&lt;td&gt;4.7&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;14.0&lt;/td&gt;
&lt;td&gt;2005 (partial): &lt;code&gt;override&lt;/code&gt;のみ。&lt;code&gt;final&lt;/code&gt;の代わりにsealedが存在する。ただし両者ともデストラクタには指定できない。&lt;br /&gt; 2012&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2761: &lt;a href=&#34;lang/cpp11/attributes.html&#34;&gt;属性構文&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;[[attr]]&lt;/code&gt;構文による、クラス、関数、変数の属性指定&lt;/td&gt;
&lt;td&gt;4.8&lt;/td&gt;
&lt;td&gt;3.3&lt;/td&gt;
&lt;td&gt;12.1&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2439: &lt;a href=&#34;lang/cpp11/ref_qualifier_for_this.html&#34;&gt;メンバ関数の左辺値／右辺値修飾&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;オブジェクトが左辺値／右辺値の場合のみ呼び出し可能であることの指定&lt;/td&gt;
&lt;td&gt;4.8.1&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;14.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2756: &lt;a href=&#34;lang/cpp11/non_static_data_member_initializers.html&#34;&gt;非静的メンバ変数の初期化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;メンバ変数を、宣言と同時に初期値指定する&lt;/td&gt;
&lt;td&gt;4.7&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;14.0&lt;/td&gt;
&lt;td&gt;2013&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2672: &lt;a href=&#34;lang/cpp11/initializer_lists.html&#34;&gt;初期化子リスト&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;波カッコによる初期化をユーザー定義する。&lt;code&gt;vector&amp;lt;int&amp;gt; v = {1, 2, 3};&lt;/code&gt;など。&lt;/td&gt;
&lt;td&gt;4.4&lt;/td&gt;
&lt;td&gt;3.1&lt;/td&gt;
&lt;td&gt;14.0&lt;/td&gt;
&lt;td&gt;2013&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2672: &lt;a href=&#34;lang/cpp11/uniform_initialization.html&#34;&gt;一様初期化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コンストラクタ呼び出しを波カッコで行う。 &lt;code&gt;T x { a, b, c };&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;4.4&lt;/td&gt;
&lt;td&gt;3.1&lt;/td&gt;
&lt;td&gt;13.0(partial)&lt;br /&gt; 14.0&lt;/td&gt;
&lt;td&gt;2013&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3050: &lt;code&gt;&lt;a href=&#34;lang/cpp11/noexcept.html&#34;&gt;noexcept&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;関数の例外指定、例外を投げる可能性のある式かbool値を返す演算子&lt;/td&gt;
&lt;td&gt;4.6&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;13.0(partial)&lt;br /&gt;14.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2634: &lt;a href=&#34;lang/cpp11/sfinae_expressions.html&#34;&gt;任意の式によるSFINAE&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;特定の式が有効かどうかで、その関数をオーバーロード解決に含めるかどうかを決定する&lt;/td&gt;
&lt;td&gt;4.4&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;12.0&lt;/td&gt;
&lt;td&gt;2015 Update 1 (partial)&lt;br /&gt; 2017 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2659: &lt;a href=&#34;lang/cpp11/thread_local_storage.html&#34;&gt;スレッドローカルストレージ&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;スレッドごとに異なる静的記憶域に保持される変数&lt;/td&gt;
&lt;td&gt;4.8&lt;/td&gt;
&lt;td&gt;3.3&lt;/td&gt;
&lt;td&gt;11.1 (partial)&lt;/td&gt;
&lt;td&gt;2010&lt;br /&gt; &lt;code&gt;__declspec(thread)&lt;/code&gt;属性での部分サポート&lt;br /&gt; 2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N2660: &lt;a href=&#34;lang/cpp11/static_initialization_thread_safely.html&#34;&gt;ブロックスコープを持つ&lt;code&gt;static&lt;/code&gt;変数初期化のスレッドセーフ化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;関数ローカルで定義した&lt;code&gt;static&lt;/code&gt;変数の初期化を、スレッドセーフにする&lt;/td&gt;
&lt;td&gt;4.3&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;11.0 (Linux/macOS)&lt;br /&gt; 14.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;各処理系のC++11実装状況ページ：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;全体的な対応状況： &lt;a href=&#34;http://web.archive.org/web/20160327011707/https://wiki.apache.org/stdcxx/C++0xCompilerSupport&#34; target=&#34;_blank&#34;&gt;C++0xCompilerSupport&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GCC： &lt;a href=&#34;https://gcc.gnu.org/projects/cxx-status.html#cxx11&#34; target=&#34;_blank&#34;&gt;C++11 Support in GCC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;libstdc++ : &lt;a href=&#34;https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2011&#34; target=&#34;_blank&#34;&gt;C++ 2011&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Clang： &lt;a href=&#34;http://clang.llvm.org/cxx_status.html&#34; target=&#34;_blank&#34;&gt;C++98 and C++11 Support in Clang&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://clang.llvm.org/cxx_dr_status.html&#34; target=&#34;_blank&#34;&gt;C++ Defect Report Support in Clang&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ICC : &lt;a href=&#34;https://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler&#34; target=&#34;_blank&#34;&gt;C++11 Features Supported by Intel® C++ Compiler&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Visual C++ (MSVC):&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.microsoft.com/ja-jp/cpp/visual-cpp-language-conformance&#34; target=&#34;_blank&#34;&gt;Visual C++ 言語への準拠&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blogs.msdn.microsoft.com/vcblog/2018/05/07/announcing-msvc-conforms-to-the-c-standard/&#34; target=&#34;_blank&#34;&gt;Announcing: MSVC Conforms to the C++ Standard&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href=&#34;#cpp14&#34; id=&#34;cpp14&#34;&gt;C++14言語機能の実装状況&lt;/a&gt;&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#gcc&#34;&gt;GCC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#clang&#34;&gt;Clang&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#icc&#34;&gt;ICC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#visual_cpp&#34;&gt;MSVC&lt;/a&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;N3472: &lt;a href=&#34;lang/cpp14/binary_literals.html&#34;&gt;2進数リテラル&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;2進数を表す&lt;code&gt;0b&lt;/code&gt; or &lt;code&gt;0B&lt;/code&gt;プレフィックスを付けた数値リテラルの記述を可能とする&lt;/td&gt;
&lt;td&gt;4.3(GNU)&lt;br /&gt; 4.9&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;11.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3638: &lt;a href=&#34;lang/cpp14/return_type_deduction_for_normal_functions.html&#34;&gt;通常関数の戻り値型推論&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;関数の戻り値型を&lt;code&gt;auto&lt;/code&gt;にすることで、&lt;code&gt;return&lt;/code&gt;文から戻り値の型を推論させる&lt;/td&gt;
&lt;td&gt;4.8(partial)&lt;br /&gt;4.9&lt;/td&gt;
&lt;td&gt;3.3(partial)&lt;br /&gt; 3.4&lt;/td&gt;
&lt;td&gt;15.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3648: &lt;a href=&#34;lang/cpp14/initialize_capture.html&#34;&gt;ラムダ式の初期化キャプチャ&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;キャプチャに代入構文を導入し、一つの変数に複数のキャプチャ方法を指定可能にする&lt;/td&gt;
&lt;td&gt;4.9&lt;/td&gt;
&lt;td&gt;3.4&lt;/td&gt;
&lt;td&gt;15.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3649: &lt;a href=&#34;lang/cpp14/generic_lambdas.html&#34;&gt;ジェネリックラムダ&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ラムダ式のパラメータを&lt;code&gt;auto&lt;/code&gt;にすることで、ジェネリックな関数呼び出し演算子を持つ関数オブジェクトを生成する&lt;/td&gt;
&lt;td&gt;4.9&lt;/td&gt;
&lt;td&gt;3.4&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3651: &lt;a href=&#34;lang/cpp14/variable_templates.html&#34;&gt;変数テンプレート&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;変数定義時のテンプレート指定を可能にする。&lt;/td&gt;
&lt;td&gt;5.1&lt;/td&gt;
&lt;td&gt;3.4&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;2015 Update 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3652: &lt;a href=&#34;lang/cpp14/relaxing_constraints_on_constexpr.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;関数内での条件分岐とループの文を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;if&lt;/code&gt;文、&lt;code&gt;switch&lt;/code&gt;文による条件分岐の許可。&lt;br /&gt;&lt;code&gt;for&lt;/code&gt;文、&lt;code&gt;while&lt;/code&gt;文、&lt;code&gt;do-while&lt;/code&gt;文によるループの許可。&lt;br /&gt;&lt;code&gt;void&lt;/code&gt;戻り値型の許可&lt;br /&gt;初期化を伴う変数宣言の許可。&lt;br /&gt;変数書き換えの許可。&lt;/td&gt;
&lt;td&gt;5.1&lt;/td&gt;
&lt;td&gt;3.3(partial) &lt;br /&gt; 3.4&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;2017&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3653: &lt;a href=&#34;lang/cpp14/brace_elision_in_array_temporary_initialization.html&#34;&gt;宣言時のメンバ初期化を持つ型の集成体初期化を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;一様初期化と初期化子リストを組み合わせた際、二重に波カッコが必要となっていた仕様を緩和し、波カッコを省略できるようにする&lt;/td&gt;
&lt;td&gt;5.1&lt;/td&gt;
&lt;td&gt;3.3&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;2017&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3760: &lt;a href=&#34;lang/cpp14/deprecated_attr.html&#34;&gt;&lt;code&gt;[[deprecated]]&lt;/code&gt;属性&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;非推奨の機能であることを示す属性。&lt;/td&gt;
&lt;td&gt;4.9&lt;/td&gt;
&lt;td&gt;3.4&lt;/td&gt;
&lt;td&gt;15.0&lt;br /&gt; (Linux/Mac OS)&lt;/td&gt;
&lt;td&gt;2015&lt;br /&gt;それ以前は&lt;code&gt;__declspec(deprecated)&lt;/code&gt;で代替可能&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3781: &lt;a href=&#34;lang/cpp14/digit_separators.html&#34;&gt;数値リテラルの桁区切り文字&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;シングルクォーテーションで数値リテラルを桁区切りする。&lt;/td&gt;
&lt;td&gt;4.9&lt;/td&gt;
&lt;td&gt;3.4&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3778: &lt;a href=&#34;lang/cpp14/sized_deallocation.html&#34;&gt;サイズ付きデアロケーション&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;サイズをとる&lt;code&gt;delete&lt;/code&gt;演算子のオーバーロードを許可する。&lt;/td&gt;
&lt;td&gt;5.1&lt;/td&gt;
&lt;td&gt;3.4&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;各処理系のC++14実装状況ページ：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GCC: &lt;a href=&#34;https://gcc.gnu.org/projects/cxx-status.html#cxx14&#34; target=&#34;_blank&#34;&gt;C++14 Support in GCC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;libstdc++: &lt;a href=&#34;https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2014&#34; target=&#34;_blank&#34;&gt;C++ 2014&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Clang: &lt;a href=&#34;http://clang.llvm.org/cxx_status.html&#34; target=&#34;_blank&#34;&gt;C++98, C++11, and C++14 Support in Clang&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Visual C++ (MSVC):&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.microsoft.com/ja-jp/cpp/visual-cpp-language-conformance&#34; target=&#34;_blank&#34;&gt;Visual C++ 言語への準拠&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blogs.msdn.microsoft.com/vcblog/2018/05/07/announcing-msvc-conforms-to-the-c-standard/&#34; target=&#34;_blank&#34;&gt;Announcing: MSVC Conforms to the C++ Standard&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ICC: &lt;a href=&#34;https://software.intel.com/en-us/articles/c14-features-supported-by-intel-c-compiler&#34; target=&#34;_blank&#34;&gt;C++14 Features Supported by Intel C++ Compiler&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://software.intel.com/en-us/forums/topic/549502&#34; target=&#34;_blank&#34;&gt;Intel (R) Parallel Studio XE 2016 Beta program has begun&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href=&#34;#cpp17&#34; id=&#34;cpp17&#34;&gt;C++17言語機能の実装状況&lt;/a&gt;&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#gcc&#34;&gt;GCC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#clang&#34;&gt;Clang&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#icc&#34;&gt;ICC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#visual_cpp&#34;&gt;MSVC&lt;/a&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;N3928: &lt;a href=&#34;lang/cpp17/extending_static_assert.html&#34;&gt;メッセージなしの&lt;code&gt;static_assert&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;デフォルトの表明メッセージを使用する&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;3.5&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N4086: &lt;a href=&#34;lang/cpp17/removing_trigraphs.html&#34;&gt;トライグラフを削除&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;5.1&lt;/td&gt;
&lt;td&gt;3.5&lt;/td&gt;
&lt;td&gt;19.1&lt;/td&gt;
&lt;td&gt;2010&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N4051: &lt;a href=&#34;lang/cpp17/allow_typename_in_a_template_template_parameter.html&#34;&gt;テンプレートテンプレートパラメータに&lt;code&gt;typename&lt;/code&gt;を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;class&lt;/code&gt;キーワードしか使用できなかった部分に、&lt;code&gt;typename&lt;/code&gt;を許可&lt;/td&gt;
&lt;td&gt;5.0&lt;/td&gt;
&lt;td&gt;3.5&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N3922: &lt;a href=&#34;lang/cpp17/new_rules_for_auto_deduction_from_braced-init-list.html&#34;&gt;単一要素の波カッコ初期化を非配列とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;initializer_list&amp;lt;T&amp;gt;&lt;/code&gt;だったのを&lt;code&gt;T&lt;/code&gt;に変更&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;3.8&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N4295: &lt;a href=&#34;lang/cpp17/folding_expressions.html&#34;&gt;畳み込み式&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;パラメータパックに対する2項演算の集積処理&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;3.6&lt;/td&gt;
&lt;td&gt;19.0&lt;/td&gt;
&lt;td&gt;2017 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N4267: &lt;a href=&#34;lang/cpp17/utf8_character_literals.html&#34;&gt;UTF-8文字リテラル&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;文字列リテラルだけでなく、文字リテラルにもUTF-8指定できるようにする&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;3.6&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N4230: &lt;a href=&#34;lang/cpp17/nested_namespace.html&#34;&gt;入れ子名前空間の定義&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;namespace A::B {}&lt;/code&gt;のように、入れ子の名前空間を簡単に定義できるようにする&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;3.6&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;2015 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N4266: &lt;a href=&#34;lang/cpp17/attributes_for_namespaces_and_enumerators.html&#34;&gt;名前空間と列挙子に属性の付加を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;名前空間の定義と、列挙型の各要素の定義に、属性を付けられるようにする&lt;/td&gt;
&lt;td&gt;名前空間は4.0&lt;br /&gt;列挙子は6&lt;/td&gt;
&lt;td&gt;3.6&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N4268: &lt;a href=&#34;lang/cpp17/allow_constant_evaluation_for_all_non-type_template_arguments.html&#34;&gt;全ての非型テンプレート引数の定数式評価を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ポインタの定数式評価として、配列からポインタへの変換や、関数から関数ポインタへの変換などを許可&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;3.6&lt;/td&gt;
&lt;td&gt;19.1&lt;/td&gt;
&lt;td&gt;2017 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0001R1: &lt;a href=&#34;lang/cpp17/remove_deprecated_use_of_the_register_keyword.html&#34;&gt;非推奨だった&lt;code&gt;register&lt;/code&gt;キーワードを削除&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.8&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0002R1: &lt;a href=&#34;lang/cpp17/remove_deprecated_increment_of_bool.html&#34;&gt;非推奨だった&lt;code&gt;bool&lt;/code&gt;型オブジェクトに対するインクリメントの仕様を削除&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.8&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0012R1: &lt;a href=&#34;lang/cpp17/exception_spec_be_part_of_the_type_system.html&#34;&gt;例外仕様を型システムの一部にする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0061R1: &lt;a href=&#34;lang/cpp17/has_include.html&#34;&gt;プリプロセッサでの条件式&lt;code&gt;__has_include&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;対象のインクルードファイルが存在するかをプリプロセス時に判定する&lt;/td&gt;
&lt;td&gt;5.0&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0136R1: &lt;a href=&#34;http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0136r1.html&#34; target=&#34;_blank&#34;&gt;継承コンストラクタの新仕様&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;デフォルト引数を引き継ぐようにした&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;2017 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0188R1: &lt;a href=&#34;lang/cpp17/fallthrough.html&#34;&gt;&lt;code&gt;[[fallthrough]]&lt;/code&gt;属性&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;case&lt;/code&gt;節で&lt;code&gt;break&lt;/code&gt;や&lt;code&gt;return&lt;/code&gt;を書かなかった場合に、それが意図したフォールスルーであることをコンパイラに伝える属性&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0189R1: &lt;a href=&#34;lang/cpp17/nodiscard.html&#34;&gt;&lt;code&gt;[[nodiscard]]&lt;/code&gt;属性&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;関数の戻り値を無視してはならないことをユーザーに伝える属性&lt;/td&gt;
&lt;td&gt;4.8からは&lt;code&gt;[[gnu::warn_unused_result]]&lt;/code&gt;を使用すること&lt;br /&gt; 7からサポート&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0212R1: &lt;a href=&#34;lang/cpp17/maybe_unused.html&#34;&gt;&lt;code&gt;[[maybe_unused]]&lt;/code&gt;属性&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;使用しない可能性がある変数であることをコンパイラに伝える属性&lt;/td&gt;
&lt;td&gt;4.8からは&lt;code&gt;[[gnu::unused]]&lt;/code&gt;を使用すること&lt;br /&gt; 7からサポート&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0017R1: &lt;a href=&#34;lang/cpp17/extension_to_aggregate_initialization.html&#34;&gt;基底クラスのメンバ変数を集成体初期化するための波カッコを省略できるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;基底クラスのメンバを集成体初期化するために、&lt;code&gt;derived d {{42}};&lt;/code&gt;の代わりに&lt;code&gt;derived d {42};&lt;/code&gt;と書けるようにする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;19.1&lt;/td&gt;
&lt;td&gt;2017 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0170R1: &lt;a href=&#34;lang/cpp17/constexpr_lambda.html&#34;&gt;ラムダ式を&lt;code&gt;constexpr&lt;/code&gt;として使用できるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ラムダ式の関数オブジェクトが定数式の文脈で使用された場合に、それがコンパイル時に評価されるようにする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;19.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0184R0: &lt;a href=&#34;lang/cpp17/generalizing_the_range-based_for_loop.html&#34;&gt;範囲for文のイテレータ型が一致しないことを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;begin()&lt;/code&gt;と&lt;code&gt;end()&lt;/code&gt;が異なるイテレータ型を返せるようにすることで、終端イテレータを定義しやすくする&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0018R3: &lt;a href=&#34;lang/cpp17/lambda_capture_of_this_by_value.html&#34;&gt;ラムダ式での&lt;code&gt;*this&lt;/code&gt;のコピーキャプチャ&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;キャプチャリストに&lt;code&gt;*this&lt;/code&gt;を指定することで、&lt;code&gt;*this&lt;/code&gt;をコピーキャプチャする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;19.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0138R2: &lt;a href=&#34;lang/cpp17/construction_enum_class_values.html&#34;&gt;&lt;code&gt;enum class&lt;/code&gt;変数の初期値として整数を指定する際の規則を調整&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;キャストを使用することなく整数を初期値として使用し、&lt;code&gt;E e{0};&lt;/code&gt;のような初期化を許可&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;19.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0245R1: &lt;a href=&#34;lang/cpp17/hexadecimal_floating_literals.html&#34;&gt;16進浮動小数点数リテラル&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;hexfloat&lt;/code&gt;マニピュレータや&lt;code&gt;printf()&lt;/code&gt;の16進数出力に合わせて、浮動小数点数のリテラルも16進数表記できるようにする&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0028R4: &lt;a href=&#34;lang/cpp17/using_attribute_namespaces.html&#34;&gt;属性の名前空間指定に繰り返しをなくす&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;[[using CC: opt(1), debug]]&lt;/code&gt;のように属性の名前空間宣言をまとめて行う&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0035R4: &lt;a href=&#34;lang/cpp17/dynamic_memory_allocation_for_over-aligned_data.html&#34;&gt;アライメント指定されたデータの動的メモリ確保&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;operator new&lt;/code&gt;と&lt;code&gt;operator delete&lt;/code&gt;でアライメント値を取得できるようにする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;19.0&lt;/td&gt;
&lt;td&gt;2017 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0091R3: &lt;a href=&#34;lang/cpp17/type_deduction_for_class_templates.html&#34;&gt;クラステンプレートのテンプレート引数推論&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コンストラクタの引数からクラスのテンプレート引数を推論できるようにする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;19.1&lt;/td&gt;
&lt;td&gt;2017 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0127R2: &lt;a href=&#34;lang/cpp17/declaring_non-type_template_arguments_with_auto.html&#34;&gt;非型テンプレート引数の&lt;code&gt;auto&lt;/code&gt;宣言&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;template &amp;lt;typename T, T x&amp;gt;&lt;/code&gt;という冗長なコードを&lt;code&gt;template &amp;lt;auto x&amp;gt;&lt;/code&gt;のようにして受けられるようにし、&lt;br /&gt; &lt;code&gt;X&amp;lt;3&amp;gt;; X&amp;lt;true&amp;gt;; X&amp;lt;&#39;a&#39;&amp;gt;&lt;/code&gt;のように定数を簡潔に渡せるようにする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;19.1&lt;/td&gt;
&lt;td&gt;2017 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0135R1: &lt;a href=&#34;lang/cpp17/guaranteed_copy_elision.html&#34;&gt;値のコピー省略を保証&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;一時オブジェクトをコピーする際に、単純な値を持つクラスであればコピーが省略されることを保証する&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;19.1&lt;/td&gt;
&lt;td&gt;2017 Update 6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0145R3: &lt;a href=&#34;lang/cpp17/expression_evaluation_order.html&#34;&gt;厳密な式の評価順&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;式の項が評価される順序を厳密に規定する。&lt;br /&gt; &lt;code&gt;b = a;&lt;/code&gt;の式が右から順番(a, bの順)に評価される&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;19.1&lt;/td&gt;
&lt;td&gt;2017 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0283R2: &lt;a href=&#34;lang/cpp17/non_standard_attributes.html&#34;&gt;不明な属性を無視する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;実装が知らない名前空間の属性は無視する&lt;/td&gt;
&lt;td&gt;4.8&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0292R2: &lt;a href=&#34;lang/cpp17/if_constexpr.html&#34;&gt;constexpr if文&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;if constexpr(cond)&lt;/code&gt;とすることで、そのif文はコンパイル時に処理される&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;19.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0386R2: &lt;a href=&#34;lang/cpp17/inline_variables.html&#34;&gt;インライン変数&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;インライン指定を関数だけでなく変数にも指定できるようにする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;19.0&lt;/td&gt;
&lt;td&gt;2017 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0217R3: &lt;a href=&#34;lang/cpp17/structured_bindings.html&#34;&gt;構造化束縛&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;タプルやユーザー定義型を分解して受け取れるようにする&lt;br /&gt; &lt;code&gt;tuple&amp;lt;int, string&amp;gt; f();&lt;/code&gt; &lt;br /&gt; &lt;code&gt;const auto [a, b] = f(); // aはintの値、bはstringの値&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0305R1: &lt;a href=&#34;lang/cpp17/selection_statements_with_initializer.html&#34;&gt;if文とswitch文の条件式と初期化を分離&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;if (init; condition)&lt;/code&gt;のように初期化と条件式を分けて記述できるようにする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;3.9&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0137R1: &lt;a href=&#34;lang/cpp17/replacement_of_class_objects_containing_reference_members.html&#34;&gt;参照メンバをもつクラスの置き換え&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;参照型メンバや&lt;code&gt;const&lt;/code&gt;メンバ変数を含むクラスについてこれまで未定義動作とされていた配置&lt;code&gt;new&lt;/code&gt;によるオブジェクトの置き換えを条件付きで可能とする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;6.0&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;2017 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0003R5: &lt;a href=&#34;lang/cpp17/remove_deprecated_exception_specifications.html&#34;&gt;非推奨だった例外仕様を削除&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;noexcept&lt;/code&gt;が入ったことによって非推奨になった&lt;code&gt;throw&lt;/code&gt;キーワードによる例外仕様を削除&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;19.0&lt;/td&gt;
&lt;td&gt;2017 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0195R2: &lt;a href=&#34;lang/cpp17/pack_expansions_in_using.html&#34;&gt;using宣言でのパック展開&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;パラメータパックの型を基底クラスとして指定した場合に、&lt;code&gt;using&lt;/code&gt;宣言に基底クラスのパラメータパックを指定できるようにする&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;19.0&lt;/td&gt;
&lt;td&gt;2017 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0512R0: &lt;a href=&#34;http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0512r0.pdf&#34; target=&#34;_blank&#34;&gt;クラステンプレート引数の推論仕様を調整&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;5.0&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;2017 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0490R0: &lt;a href=&#34;http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0490r0.html&#34; target=&#34;_blank&#34;&gt;Committee Draftに対するNational Body Commentへの対応&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0522R0: &lt;a href=&#34;http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0522r0.html&#34; target=&#34;_blank&#34;&gt;テンプレートテンプレート引数のマッチングにおいて、互換性のあるテンプレートを除外&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;4 (partial)&lt;br /&gt;19&lt;/td&gt;
&lt;td&gt;19.1&lt;/td&gt;
&lt;td&gt;2017 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;各処理系のC++17実装状況ページ：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GCC: &lt;a href=&#34;https://gcc.gnu.org/projects/cxx-status.html#cxx17&#34; target=&#34;_blank&#34;&gt;C++17 Support in GCC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Clang: &lt;a href=&#34;http://clang.llvm.org/cxx_status.html&#34; target=&#34;_blank&#34;&gt;C++ Support in Clang&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;libc++ : &lt;a href=&#34;https://libcxx.llvm.org/Status/Cxx17.html&#34; target=&#34;_blank&#34;&gt;libc++ C++17 Status&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Visual C++ (MSVC):&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.microsoft.com/ja-jp/cpp/visual-cpp-language-conformance&#34; target=&#34;_blank&#34;&gt;Visual C++ 言語への準拠&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blogs.msdn.microsoft.com/vcblog/2018/05/07/announcing-msvc-conforms-to-the-c-standard/&#34; target=&#34;_blank&#34;&gt;Announcing: MSVC Conforms to the C++ Standard&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ICC: &lt;a href=&#34;https://software.intel.com/en-us/articles/c17-features-supported-by-intel-c-compiler&#34; target=&#34;_blank&#34;&gt;C++17 Features Supported by Intel C++ Compiler&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href=&#34;#cpp20&#34; id=&#34;cpp20&#34;&gt;C++20言語機能の実装状況&lt;/a&gt;&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#gcc&#34;&gt;GCC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#clang&#34;&gt;Clang&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#icc&#34;&gt;ICC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#visual_cpp&#34;&gt;MSVC&lt;/a&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;P0683R1: &lt;a href=&#34;lang/cpp20/default_member_initializers_for_bit_fields.html&#34;&gt;ビットフィールドのメンバ変数初期化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ビットフィールドメンバ変数のデフォルト値を設定する構文を追加する&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;6.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0409R2: &lt;a href=&#34;lang/cpp20/allow_lambda_capture_equal_this.html&#34;&gt;ラムダ式のキャプチャとして&lt;code&gt;[=, this]&lt;/code&gt;を許可する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;デフォルトコピーキャプチャと&lt;code&gt;this&lt;/code&gt;ポインタのコピーキャプチャを両方指定できるようにする&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;6.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0806R2: &lt;a href=&#34;lang/cpp20/deprecate_implicit_capture_of_this_via_defcopy.html&#34;&gt;&lt;code&gt;[=]&lt;/code&gt;による&lt;code&gt;this&lt;/code&gt;の暗黙のキャプチャを非推奨化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コピーのデフォルトキャプチャでは、&lt;code&gt;this&lt;/code&gt;ポインタをキャプチャされなくする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;2019 Update 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0428R2: &lt;a href=&#34;lang/cpp20/familiar_template_syntax_for_generic_lambdas.html&#34;&gt;ジェネリックラムダのテンプレート構文&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ジェネリックラムダでテンプレートパラメータを定義できるようにする&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0704R1: &lt;a href=&#34;lang/cpp20/fixing_const_qualified_pointers_to_members.html&#34;&gt;&lt;code&gt;const&lt;/code&gt;修飾されたメンバポインタの制限を修正&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.*&lt;/code&gt;演算子での左辺値の&lt;code&gt;const&lt;/code&gt;メンバ関数呼び出しを許可する&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;6.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0306R4: &lt;a href=&#34;lang/cpp20/va_opt.html&#34;&gt;可変引数が空でない場合のトークン置換&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;プリプロセッサの置換で可変引数が空の場合に余計なカンマが付いてしまう問題に対処&lt;/td&gt;
&lt;td&gt;8 (partial, &lt;code&gt;#__VA_OPT__&lt;/code&gt;による文字列化が未サポート)&lt;br /&gt;10 (partial, placemarker token のハンドリング変更なし)&lt;br /&gt;12&lt;/td&gt;
&lt;td&gt;6.0&lt;br /&gt; 9.0 (&lt;a href=&#34;http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1042r1.html&#34; target=&#34;_blank&#34;&gt;p1042&lt;/a&gt;)&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0329R4: &lt;a href=&#34;lang/cpp20/designated_initialization.html&#34;&gt;指示付き初期化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;波カッコによる集成体初期化でメンバ名を指定して初期化できるようにする&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;6.0 (partial)&lt;br /&gt;10&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0734R0: &lt;a href=&#34;lang/cpp20/concepts.html&#34;&gt;コンセプト&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートパラメータに対する制約を行う&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;2021.6&lt;/td&gt;
&lt;td&gt;2019 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0614R1: &lt;a href=&#34;lang/cpp20/range-based_for_statements_with_initializer.html&#34;&gt;初期化式をともなう範囲for文&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;範囲for文スコープで使用する変数の初期化のための構文を追加&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;td&gt;2021.7&lt;/td&gt;
&lt;td&gt;2019 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0588R1: &lt;a href=&#34;lang/cpp20/simplifying_implicit_lambda_capture.html&#34;&gt;暗黙のラムダキャプチャを簡略化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ラムダ式のキャプチャに関する仕様整理&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0846R0: &lt;a href=&#34;lang/cpp20/adl_and_function_templates_that_are_not_visible.html&#34;&gt;関数テンプレートに明示的に型指定した場合にADLで見つからない問題を修正&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;名前空間内の関数テンプレートをテンプレート引数指定かつ非修飾・ADLで正しく呼び出せるよう修正&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0641R2: &lt;a href=&#34;lang/cpp20/resolving_const_mismatch_with_defaulted_copy_constructor.html&#34;&gt;デフォルトのコピーコンストラクタと非&lt;code&gt;const&lt;/code&gt;なコンストラクタが衝突する問題を修正&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;非&lt;code&gt;const&lt;/code&gt;なオブジェクトをとるコンストラクタを定義すると、そのクラスをラップしたクラスのコピーコンストラクタが&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;になってしまう問題を修正&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0859R0: &lt;a href=&#34;lang/cpp20/less_eager_instantiation_of_constexpr_functions.html&#34;&gt;評価されない文脈での定数式評価によって特殊メンバ関数がインスタンス化されることを規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sizeof&lt;/code&gt;や&lt;code&gt;decltype&lt;/code&gt;などの評価されない文脈において定数式評価を行った場合に、ムーブコンストラクタのような特殊メンバ関数が定義されることを規定&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;2019 Update 7 (partial)&lt;br /&gt;2022 Update 1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0515R3: &lt;a href=&#34;lang/cpp20/consistent_comparison.html&#34;&gt;&lt;code&gt;&amp;lt;=&amp;gt;&lt;/code&gt;/&lt;code&gt;==&lt;/code&gt;による比較演算子の自動定義&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;三方比較演算子によって比較演算子の自動生成を行うようにする&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;8.0 (partial)&lt;br /&gt;10&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0692R1: &lt;a href=&#34;lang/cpp20/access_checking_on_specializations.html&#34;&gt;特殊化のアクセスチェック&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0624R2: &lt;a href=&#34;lang/cpp20/default_constructible_and_assignable_stateless_lambdas.html&#34;&gt;状態を持たないラムダ式を、デフォルト構築可能、代入可能とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;キャプチャしていないラムダ式をデフォルト構築・代入可能にする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0767R1: &lt;a href=&#34;lang/cpp20/deprecate_pod.html&#34;&gt;PODを非推奨化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;PODという用語を非推奨化する&lt;/td&gt;
&lt;td&gt;10.1&lt;/td&gt;
&lt;td&gt;21&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0315R4: &lt;a href=&#34;lang/cpp20/wording_for_lambdas_in_unevaluated_contexts.html&#34;&gt;評価されない文脈でのラムダ式&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;評価されない文脈でもラムダ式を書くことができるようにする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;2024.0&lt;/td&gt;
&lt;td&gt;2019 Update 8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0840R2: &lt;a href=&#34;lang/cpp20/language_support_for_empty_objects.html&#34;&gt;空オブジェクトを言語サポート&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;[[no_unique_address]]&lt;/code&gt;属性を導入し、空の型のオブジェクトをほかのオブジェクトと共有する最適化を許可する&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 9 &lt;sup&gt;&lt;a href=&#34;#note-t1-1&#34; id=&#34;note_ref-t1-1&#34;&gt;†1&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0962R1: &lt;a href=&#34;lang/cpp20/relaxing_the_range_for_loop_customization_point_finding_rules.html&#34;&gt;範囲for文がカスタマイゼーションポイントを見つけるルールを緩和&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;begin()&lt;/code&gt;/&lt;code&gt;end()&lt;/code&gt;メンバ関数のどちらかが見つからなかった場合に非メンバ関数の&lt;code&gt;begin()&lt;/code&gt;/&lt;code&gt;end()&lt;/code&gt;を探しにいく&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0969R0: &lt;a href=&#34;lang/cpp20/allow_structured_bindings_to_accessible_members.html&#34;&gt;friend指定された関数内から構造化束縛を使用して非公開メンバ変数にアクセスすることを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;構造化束縛の仕様として公開メンバ変数のみを取り出せるようになっていたが、friend指定された関数からは非公開メンバ変数にもアクセスできるようにする&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0961R1: &lt;a href=&#34;lang/cpp20/relaxing_the_structured_bindings_customization_point_finding_rules.html&#34;&gt;構造化束縛がカスタマイゼーションポイントを見つけるルールを緩和&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;非テンプレートの&lt;code&gt;get()&lt;/code&gt;メンバ関数が見つかった場合は、非メンバ関数の&lt;code&gt;get()&lt;/code&gt;を探しにいく&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0634R3: &lt;a href=&#34;lang/cpp20/down_with_typename.html&#34;&gt;型の文脈で&lt;code&gt;typename&lt;/code&gt;の省略を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;型しか現れない文脈では、依存名を解決するための&lt;code&gt;typename&lt;/code&gt;キーワードを省略できるようにする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;2023.1&lt;/td&gt;
&lt;td&gt;2019 Update 9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0780R2: &lt;a href=&#34;lang/cpp20/allow_pack_expansion_in_lambda_init_capture.html&#34;&gt;ラムダ式の初期化キャプチャでのパック展開を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;[...args = std::move(args)]&lt;/code&gt;のようなキャプチャを許可&lt;/td&gt;
&lt;td&gt;9&lt;br /&gt;10&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.7&lt;/td&gt;
&lt;td&gt;2019 Update 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0479R5: &lt;a href=&#34;lang/cpp20/likely_and_unlikely_attributes.html&#34;&gt;確率が高い分岐と低い分岐を伝える属性 &lt;code&gt;[[likely]]&lt;/code&gt;, &lt;code&gt;[[unlikely]]&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;条件分岐の最適化ヒントを与える属性&lt;/td&gt;
&lt;td&gt;9 (partial, &lt;code&gt;switch&lt;/code&gt; 文のみ可能)&lt;br /&gt; 10&lt;/td&gt;
&lt;td&gt;12.0&lt;/td&gt;
&lt;td&gt;2021.7&lt;/td&gt;
&lt;td&gt;2019 Update 6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0929R2: &lt;a href=&#34;lang/cpp20/checking_for_abstract_class_types.html&#34;&gt;抽象型のチェック&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;関数の宣言段階では、パラメータおよび戻り値型が抽象型かどうかをチェックしないようにする&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;2019 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0732R2: &lt;a href=&#34;lang/cpp20/class_types_in_non-type_template_parameters.html&#34;&gt;非型テンプレートパラメータとしてクラス型を許可する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数式として使用できる型を広く非型テンプレートパラメータとして使用できるようにする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;2022.2 Partial&lt;/td&gt;
&lt;td&gt;2019 Update 6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0722R3: &lt;a href=&#34;lang/cpp20/efficient_sized_delete_for_variable_sized_classes.html&#34;&gt;可変長データを扱うクラスの効率的な&lt;code&gt;delete&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;クラスの&lt;code&gt;delete&lt;/code&gt;演算子が呼び出される前にデストラクタが呼ばれないようにするオプションを追加&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;6.0&lt;/td&gt;
&lt;td&gt;2023.0&lt;/td&gt;
&lt;td&gt;2019 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1064R0: &lt;a href=&#34;lang/cpp20/allow_virtual_function_calls_in_constant_expressions.html&#34;&gt;定数式からの仮想関数の呼び出しを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;仮想関数に&lt;code&gt;constexpr&lt;/code&gt;を付けられない制限を解除&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1327R1: &lt;a href=&#34;lang/cpp20/allowing_dynamic_cast_polymorphic_typeid_in_constant_expressions.html&#34;&gt;定数式での&lt;code&gt;dynamic_cast&lt;/code&gt;、多態的な&lt;code&gt;typeid&lt;/code&gt;を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数式での動的多態を許可&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1002R1: &lt;a href=&#34;lang/cpp20/try-catch_blocks_in_constexpr_functions.html&#34;&gt;constexpr関数内でのtry-catchブロックを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;constexpr関数内でtry-catchブロックを書けるようにする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;td&gt;2023.1&lt;/td&gt;
&lt;td&gt;2019 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1073R3: &lt;a href=&#34;lang/cpp20/immediate_functions.html&#34;&gt;常に定数式評価する&lt;code&gt;consteval&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;consteval&lt;/code&gt;キーワードを追加し、常に定数式評価されるよう指定できるようにする&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1330R0: &lt;a href=&#34;lang/cpp20/changing_the_active_member_of_a_union_inside_constexpr.html&#34;&gt;定数式内での共用体のアクティブメンバの変更を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;共用体メンバの書き換えを定数式内で行えるようにする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2017&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1008R1: &lt;a href=&#34;lang/cpp20/prohibit_aggregates_with_user-declared_constructors.html&#34;&gt;ユーザー宣言したコンストラクタを持つクラスの集成体初期化を禁止&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コンストラクタが&lt;code&gt;delete&lt;/code&gt;／&lt;code&gt;default&lt;/code&gt;宣言されているクラスを、集成体初期化によってコンストラクタ呼び出しを回避して構築できてしまっていた技法を禁止&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0892R2: &lt;a href=&#34;lang/cpp20/explicit_bool.html&#34;&gt;関数を条件付きで&lt;code&gt;explicit&lt;/code&gt;にする構文を追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;explicit(true)&lt;/code&gt;のように&lt;code&gt;explicit&lt;/code&gt;に真理値パラメータを指定できるようにする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1236R1: &lt;a href=&#34;lang/cpp20/signed_integers_are_twos_complement.html&#34;&gt;符号付き整数型が2の補数表現であることを規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;符号付き整数型のビット表現を2の補数に規定する&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2023.0&lt;/td&gt;
&lt;td&gt;2022 Update 14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0482R6: &lt;a href=&#34;lang/cpp20/char8_t.html&#34;&gt;UTF-8エンコーディングされた文字の型として&lt;code&gt;char8_t&lt;/code&gt;を追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;UTF-8エンコードされた文字かどうかでオーバーロード・特殊化をできるようにする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;7 (&lt;code&gt;-fchar8_t&lt;/code&gt;オプションが必要)&lt;br /&gt;8 (&lt;code&gt;-std=c++20&lt;/code&gt;で有効化)&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1094R2: &lt;a href=&#34;lang/cpp20/nested_inline_mamespaces.html&#34;&gt;入れ子名前空間定義でのインライン名前空間&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;namespace ns1::inline ns2::ns3 {}&lt;/code&gt;のように、入れ子名前空間を定義する式にインライン名前空間の指定を含められるようにする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1091R3: &lt;a href=&#34;lang/cpp20/extending_structured_bindings_to_be_more_like_variable_declarations.html&#34;&gt;構造化束縛を拡張して通常の変数宣言のように使用できるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;記憶域指定子として&lt;code&gt;static&lt;/code&gt;と&lt;code&gt;thread_local&lt;/code&gt;の指定を許可&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;8.0 (partial)&lt;br /&gt;16&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1381R1: &lt;a href=&#34;lang/cpp20/reference_capture_of_structured_bindings.html&#34;&gt;構造化束縛した変数の参照キャプチャを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;構造化束縛をした変数は特殊な扱いのためラムダ式で参照キャプチャできない規定となっていたがこれを許可する&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;8.0 (partial)&lt;br /&gt;16&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2017 Update 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0960R3: &lt;a href=&#34;lang/cpp20/allow_initializing_aggregates_from_a_parenthesized_list_of_values.html&#34;&gt;丸カッコの値リストからの集成体初期化を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;T x{1, 2, 3};&lt;/code&gt;と同様に&lt;code&gt;T x(1, 2, 3);&lt;/code&gt;でも集成体初期化できるようにする&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1009R2: &lt;a href=&#34;lang/cpp20/array_size_deduction_in_new-expressions.html&#34;&gt;&lt;code&gt;new&lt;/code&gt;式での配列要素数の推論&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;double* p = new double[]{1,2,3};&lt;/code&gt;を許可&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1041R4: &lt;a href=&#34;lang/cpp20/make_char16t_char32t_string_literals_be_utf16_32.html&#34;&gt;&lt;code&gt;char16_t&lt;/code&gt;と&lt;code&gt;char32_t&lt;/code&gt;の文字・文字列リテラルを、文字コードUTF-16/32に規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;__STDC_UTF_16__&lt;/code&gt;、&lt;code&gt;__STDC_UTF_32__&lt;/code&gt;の定義に関係なく、&lt;code&gt;char16_t&lt;/code&gt;、&lt;code&gt;char32_t&lt;/code&gt;のリテラルをUTF-16/32文字コードに規定する&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;2023.0&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1103R3: &lt;a href=&#34;lang/cpp20/modules.html&#34;&gt;モジュール&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ヘッダファイル・ソースファイル、インクルードに変わる仕組みとしてモジュールを導入する&lt;/td&gt;
&lt;td&gt;11 (&lt;code&gt;-fmodules-ts&lt;/code&gt;が必要)&lt;/td&gt;
&lt;td&gt;8.0 partial (&lt;code&gt;-fmodules&lt;/code&gt;, &lt;code&gt;-fmodules-ts&lt;/code&gt;が必要)&lt;br /&gt;15&lt;/td&gt;
&lt;td&gt;2023.1 (partial)&lt;/td&gt;
&lt;td&gt;2019 Update 8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0912R5: &lt;a href=&#34;lang/cpp20/coroutines.html&#34;&gt;コルーチン&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;関数実行を中断・再開する仕組みとしてコルーチンを導入する&lt;/td&gt;
&lt;td&gt;10 (&lt;code&gt;-fcoroutines&lt;/code&gt;が必要)&lt;br /&gt;11 (&lt;code&gt;-std=c++20&lt;/code&gt;で有効化)&lt;/td&gt;
&lt;td&gt;8.0 (partial)&lt;/td&gt;
&lt;td&gt;2021.4&lt;/td&gt;
&lt;td&gt;2019 Update 8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1161R3: &lt;a href=&#34;lang/cpp20/deprecate_uses_of_the_comma_operator_in_subscripting_expressions.html&#34;&gt;添字演算子内でのカンマ演算子の使用を非推奨化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ar[i, j]&lt;/code&gt;を非推奨化。&lt;code&gt;ar[(i, j)]&lt;/code&gt;はOK&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.6&lt;/td&gt;
&lt;td&gt;2019 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1331R2: &lt;a href=&#34;lang/cpp20/permitting_trivial_default_initialization_in_constexpr_contexts.html&#34;&gt;constexpr関数内でのトリビアルなデフォルト初期化を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;constexpr関数内でのデフォルト初期化を許可し、未初期化値を読むことのみ禁止する&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;10.0&lt;/td&gt;
&lt;td&gt;2022.3&lt;/td&gt;
&lt;td&gt;2019 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0848R3: &lt;a href=&#34;lang/cpp20/conditionally_trivial_special_member_functions.html&#34;&gt;条件付きで特殊メンバ関数をトリビアルに定義するように&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;制約によってトリビアルな特殊メンバ関数と非トリビアルな特殊メンバ関数をオーバーロードできるようにする&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;16 (partial)&lt;br /&gt;19&lt;/td&gt;
&lt;td&gt;2022.3&lt;/td&gt;
&lt;td&gt;2019 Update 8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1301R4: &lt;a href=&#34;lang/cpp20/nodiscard_should_have_a_reason.html&#34;&gt;&lt;code&gt;[[nodiscard]]&lt;/code&gt;属性に理由となる文字列を付加できるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;関数の戻り値を無視してはならない理由を関数宣言に持たせ、警告メッセージに役立てる&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;td&gt;2021.6&lt;/td&gt;
&lt;td&gt;2019 Update 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1099R5: &lt;a href=&#34;lang/cpp20/using_enum.html&#34;&gt;スコープ付き列挙型のusing宣言&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;using enum EnumType;&lt;/code&gt;もしくは&lt;code&gt;using EnumType::enumerator&lt;/code&gt;とすることで、列挙値のスコープ指定を省略できるようにする&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;2023.0&lt;/td&gt;
&lt;td&gt;2019 Update 4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1816R0: &lt;a href=&#34;lang/cpp20/class_template_argument_deduction_for_aggregates.html&#34;&gt;集成体クラステンプレートのテンプレート引数推論&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;クラステンプレートのテンプレート引数推論はコンストラクタ引数から推論されるが、集成体初期化からも推論できるようにする&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;2024.0&lt;/td&gt;
&lt;td&gt;2019 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1668R1: &lt;a href=&#34;lang/cpp20/enabling_constexpr_intrinsics_by_permitting_unevaluated_inline-assembly_in_constexpr_functions.html&#34;&gt;constexpr関数内で未評価のインラインアセンブリを許可することによる組み込み関数のconstexpr有効化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コンパイル時に評価されない場合にconstexpr関数にasm定義を含めることを許可&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;10.0&lt;/td&gt;
&lt;td&gt;2022.3&lt;/td&gt;
&lt;td&gt;2019 Update 9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0388R4: &lt;a href=&#34;lang/cpp20/permit_conversions_to_arrays_of_unknown_bound.html&#34;&gt;要素数不明の配列への変換を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;要素数が判明している配列から、要素数が不明の配列への変換を許可&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;2021.6&lt;/td&gt;
&lt;td&gt;2019 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1143R2: &lt;a href=&#34;lang/cpp20/constinit.html&#34;&gt;コンパイル時初期化を強制する&lt;code&gt;constinit&lt;/code&gt;キーワードを追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;初期化のみコンパイル時におわらせたい場合に使用する&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;10.0&lt;/td&gt;
&lt;td&gt;2022.3&lt;/td&gt;
&lt;td&gt;2019 Update 10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1152R4: &lt;a href=&#34;lang/cpp20/deprecating_volatile.html&#34;&gt;ほとんどの&lt;code&gt;volatile&lt;/code&gt;を非推奨化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;volatile&lt;/code&gt;の有用な機能のみを残し、効果が疑わしい、または壊れている機能を非推奨化する&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;10.0&lt;/td&gt;
&lt;td&gt;2021.6&lt;/td&gt;
&lt;td&gt;2019 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1814R0: &lt;a href=&#34;lang/cpp20/class_template_argument_deduction_for_alias_templates.html&#34;&gt;エイリアステンプレート経由でのクラステンプレートのテンプレート引数推論&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;エイリアステンプレートからクラステンプレートのテンプレート引数を推論できるようにする&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;19 (partial)&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;2019 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0784R7: &lt;a href=&#34;lang/cpp20/more_constexpr_containers.html&#34;&gt;可変サイズをもつコンテナの&lt;code&gt;constexpr&lt;/code&gt;化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;constexpr&lt;/code&gt;記憶域をもつメモリアロケータの存在を考慮することで、可変サイズをもつコンテナをコンパイル時に使用できるようにする&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;10.0&lt;/td&gt;
&lt;td&gt;2021.6&lt;/td&gt;
&lt;td&gt;2019 Update 9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1957R2: &lt;a href=&#34;lang/cpp20/converting_from_pointer_to_bool_should_be_considered_narrowing.html&#34;&gt;ポインタから&lt;code&gt;bool&lt;/code&gt;への変換を縮小変換とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ポインタから&lt;code&gt;bool&lt;/code&gt;値への変換を縮小変換と規定することで、意図しない変換を防止する&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;11.0&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;2019 Update 7&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#note_ref-t1-1&#34; id=&#34;note-t1-1&#34;&gt;&lt;strong&gt;^&lt;/strong&gt;&lt;/a&gt; 不明な属性として無視されなくなっただけで期待する効果は得られない。完全に実装されるまでは、代わりに&lt;code&gt;&lt;a href=&#34;https://devblogs.microsoft.com/cppblog/msvc-cpp20-and-the-std-cpp20-switch/#msvc-extensions-and-abi&#34; target=&#34;_blank&#34;&gt;[[msvc::no_unique_address]]&lt;/a&gt;&lt;/code&gt;を使用できる。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;各処理系のC++20実装状況ページ：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GCC: &lt;a href=&#34;https://gcc.gnu.org/projects/cxx-status.html#cxx20&#34; target=&#34;_blank&#34;&gt;C++20 Support in GCC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Clang: &lt;a href=&#34;http://clang.llvm.org/cxx_status.html&#34; target=&#34;_blank&#34;&gt;C++ Support in Clang&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;libstdc++: &lt;a href=&#34;https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2020&#34; target=&#34;_blank&#34;&gt;C++ 2020 Implementation Status&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;libc++: &lt;a href=&#34;https://libcxx.llvm.org/Status/Cxx20.html&#34; target=&#34;_blank&#34;&gt;libc++ C++20 Status&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Visual C++ (MSVC):&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://learn.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance?view=msvc-170&#34; target=&#34;_blank&#34;&gt;Microsoft C/C++ language conformance by Visual Studio version&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.microsoft.com/ja-jp/cpp/visual-cpp-language-conformance&#34; target=&#34;_blank&#34;&gt;Visual C++ 言語への準拠&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/microsoft/STL/wiki/Changelog&#34; target=&#34;_blank&#34;&gt;次リリース情報(VS2019,2022) - Change log&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ICC: &lt;a href=&#34;https://www.intel.com/content/www/us/en/developer/articles/technical/c20-features-supported-by-intel-cpp-compiler.html&#34; target=&#34;_blank&#34;&gt;C++20 Features Supported by Intel® C++ Compiler&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href=&#34;#cpp23&#34; id=&#34;cpp23&#34;&gt;C++23言語機能の実装状況&lt;/a&gt;&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#gcc&#34;&gt;GCC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#clang&#34;&gt;Clang&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#icc&#34;&gt;ICX&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#visual_cpp&#34;&gt;MSVC&lt;/a&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;P0330R8: &lt;a href=&#34;lang/cpp23/literal_suffix_for_signed_size_t.html&#34;&gt;(符号付き)&lt;code&gt;size_t&lt;/code&gt;リテラルのためのサフィックス&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;42z&lt;/code&gt;/&lt;code&gt;42Z&lt;/code&gt;とすることで&lt;code&gt;size_t&lt;/code&gt;に対応する符号付き整数型のリテラルとする&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2022 Update 13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2290R3: &lt;a href=&#34;lang/cpp23/delimited_escape_sequences.html&#34;&gt;エスケープシーケンスの区切り&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;エスケープシーケンスの範囲を明確にする構文を追加する&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;2023.2&lt;/td&gt;
&lt;td&gt;2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2266R3: &lt;a href=&#34;lang/cpp23/simpler_implicit_move.html&#34;&gt;暗黙的なムーブを簡略化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;参照を返す関数の&lt;code&gt;return&lt;/code&gt;文で暗黙的にムーブされない問題を修正&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0849R8: &lt;a href=&#34;lang/cpp23/auto_cast.html&#34;&gt;&lt;code&gt;auto(x)&lt;/code&gt;による一時オブジェクトへの変換&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;auto(x)&lt;/code&gt;/&lt;code&gt;auto{x}&lt;/code&gt;で、式の値をコピーした一時オブジェクトを得る&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1787R6: &lt;a href=&#34;lang/cpp23/declarations_and_where_to_find_them.html&#34;&gt;スコープと名前探索の仕様整理&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;複雑で不完全になっているスコープと名前探索の仕様を整理し、一部の問題を解決する&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2615R1: &lt;a href=&#34;lang/cpp23/meaningful_exports.html&#34;&gt;無意味なexport宣言を禁止する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;いくつかの不必要な宣言に対するモジュールexportを禁止する&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2360R0: &lt;a href=&#34;lang/cpp23/extend_init_statement_to_allow_alias_declaration.html&#34;&gt;初期化文での型の別名宣言を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;for (using T = int; T e : v) {}&lt;/code&gt;を許可&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2718R0: &lt;a href=&#34;lang/cpp23/lifetime_extension_in_range_based_for_loop.html&#34;&gt;範囲for文が範囲初期化子内で生じた一時オブジェクトを延命することを規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;範囲初期化子内で生じた一時オブジェクトは範囲for文の終わりまで延命される&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2324R2: &lt;a href=&#34;lang/cpp23/labels_at_the_end_of_compound_statements.html&#34;&gt;複合文の末尾へのラベルを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;C互換のため、複合文の末尾でのgoto文のラベルを許可する&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;2023.2&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0847R7: &lt;a href=&#34;lang/cpp23/deducing_this.md.nolink&#34;&gt;自身のオブジェクトを明示的にパラメータとして指定する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;メンバ関数が&lt;code&gt;*this&lt;/code&gt;の型・オブジェクトをパラメータとしてとり、&lt;code&gt;*this&lt;/code&gt;オブジェクトがconst/非const、左辺値/右辺値であるかをメンバ関数内で識別できるようにする&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;2022 Update 2 (partial)&lt;br /&gt;2022 Update 13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1847R4: &lt;a href=&#34;lang/cpp23/make_declaration_order_layout_mandated.html&#34;&gt;アクセス制御の異なるメンバ変数のレイアウトを宣言順に規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;アクセス制御の異なるメンバ変数のレイアウトは並び替えを許可されていたが宣言順に規定する&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;2022&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2128R6: &lt;a href=&#34;lang/cpp23/multidimensional_subscript_operator.html&#34;&gt;添字演算子の多次元サポート&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;operator[](int x, int y, int z)&lt;/code&gt;のように添字演算子のオーバーロードで複数のパラメータをとることを許可&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2022 Update 12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1169R4: &lt;a href=&#34;lang/cpp23/static_operator.html&#34;&gt;&lt;code&gt;this&lt;/code&gt;ポインタをもつ必要のない演算子を&lt;code&gt;static&lt;/code&gt;として宣言できるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;状態をもたないいくつかの演算子を&lt;code&gt;static&lt;/code&gt;として宣言できるようにする&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;2023.2&lt;/td&gt;
&lt;td&gt;2022 Update 14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2201R1: &lt;a href=&#34;lang/cpp23/mixed_string_literal_concatenation.html&#34;&gt;異なる文字エンコーディングをもつ文字列リテラルの連結を不適格とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;auto a = u8&#34;&#34; L&#34;&#34;;&lt;/code&gt;のような異なる文字エンコーディング同士での文字列リテラルの連結を禁止する&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2029R4: &lt;a href=&#34;lang/cpp23/numeric_and_universal_character_escapes_in_character_and_string_literals.html&#34;&gt;文字・文字列リテラル中の数値・ユニバーサルキャラクタのエスケープに関する問題解決&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2362R3: &lt;a href=&#34;lang/cpp23/remove_non_encodable_wide_character_literals_and_multicharacter_wide_character_literals.html&#34;&gt;1ワイド文字に収まらないワイド文字リテラルを禁止する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;エンコード結果として&lt;code&gt;wchar_t&lt;/code&gt;の大きさに収まらないワイド文字リテラルを禁止する&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;2023.2&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2071R2: &lt;a href=&#34;lang/cpp23/named_universal_character_escapes.html&#34;&gt;名前付きユニバーサルキャラクタ名&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;16進数のユニバーサルキャラクタだけでなく、その文字の名前を入力できるようにする&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;2023.2&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2096R2: &lt;a href=&#34;lang/cpp23/generalized_wording_for_partial_specializations.html&#34;&gt;変数テンプレートの部分特殊化を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;変数テンプレートの部分特殊化を許可するために部分特殊化の仕様を汎用化&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2582R1: &lt;a href=&#34;lang/cpp23/class_template_argument_deduction_from_inherited.html&#34;&gt;継承コンストラクタからのクラステンプレート引数の推論&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;継承コンストラクタからもクラステンプレート引数を推論できるようにする&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1938R3: &lt;code&gt;&lt;a href=&#34;lang/cpp23/if_consteval.html&#34;&gt;if consteval&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;コンパイル時の文脈かどうかで分岐させる&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;2022 Update 14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1401R5: &lt;a href=&#34;lang/cpp23/narrowing_contextual_conversions_to_bool.html&#34;&gt;定数式の文脈での&lt;code&gt;bool&lt;/code&gt;への縮小変換を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;if constexpr(flags &amp;amp; Flags::Exec)&lt;/code&gt;や&lt;code&gt;static_assert(N);&lt;/code&gt;を許可&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2022 Update 14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2242R3: &lt;a href=&#34;lang/cpp23/non_literal_variables_in_constexpr_functions.html&#34;&gt;定数式内での非リテラル変数、静的変数・スレッドローカル変数およびgotoとラベルの存在を許可する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コンパイル時に評価されない限り、定数式内に静的変数・スレッドローカル変数およびgoto文とラベルを含むことを許可する&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2022 Update 13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2246R1: &lt;a href=&#34;lang/cpp23/character_encoding_of_diagnostic_text.html&#34;&gt;静的な診断メッセージの文字エンコーディング&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;static_assert&lt;/code&gt;や&lt;code&gt;[[deprecated]]&lt;/code&gt;などの診断メッセージの文字集合に関する要件をなくす&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2022&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2448R2: &lt;a href=&#34;lang/cpp23/relaxing_some_constexpr_restrictions.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;関数が定数実行できない場合でも適格とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;17 (partial)&lt;br /&gt;19&lt;/td&gt;
&lt;td&gt;2024.0 (partial)&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2647R1: &lt;a href=&#34;lang/cpp23/permitting_static_constexpr_variables_in_constexpr_functions.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;関数内での&lt;code&gt;static constexpr&lt;/code&gt;変数を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;constexpr&lt;/code&gt;関数のローカルで定数を定義できるようにする&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;2023.2&lt;/td&gt;
&lt;td&gt;2026 Update 6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2564R3: &lt;a href=&#34;lang/cpp23/consteval_needs_to_propagate_up.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;関数内で&lt;code&gt;consteval&lt;/code&gt;関数を呼び出せない問題を緩和&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;consteval&lt;/code&gt;呼び出しを含む&lt;code&gt;constexpr&lt;/code&gt;関数を条件付きで&lt;code&gt;consteval&lt;/code&gt;関数とみなすようにする&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;2024.0&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1102R2: &lt;a href=&#34;lang/cpp23/down_with_lambda_parens.html&#34;&gt;ラムダ式で&lt;code&gt;()&lt;/code&gt;を省略できる条件を緩和&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;修飾や戻り値型をともなってもパラメータリストが空であれば&lt;code&gt;()&lt;/code&gt;を省略できる&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2022 Update 14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2173R1: &lt;a href=&#34;lang/cpp23/attributes_on_lambda_expressions.html&#34;&gt;ラムダ式に対する属性&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ラムダ式のいくつかの箇所に属性を記述できるようにする&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2022 Update 14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1774R8: &lt;a href=&#34;lang/cpp23/portable_assumptions.html&#34;&gt;コード内容の仮定をコンパイラに伝えるassume属性&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;最適化のために、コードの仮定をコンパイラに伝える属性を標準化する&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2316R2: &lt;a href=&#34;lang/cpp23/consistent_character_literal_encoding.html&#34;&gt;文字リテラルエンコーディングを一貫させる&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;プリプロセッサの条件式での文字リテラルの扱いをC++式と同様にする&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2022&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2334R1: &lt;a href=&#34;lang/cpp23/add_support_for_preprocessing_directives_elifdef_and_elifndef.html&#34;&gt;&lt;code&gt;elif&lt;/code&gt;/&lt;code&gt;elifdef&lt;/code&gt;/&lt;code&gt;elifndef&lt;/code&gt;のサポートを追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#if&lt;/code&gt;/&lt;code&gt;#ifdef&lt;/code&gt;/&lt;code&gt;#ifndef&lt;/code&gt;に対応する複数条件命令のサポートを追加する&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2022 Update 10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2437R1: &lt;a href=&#34;lang/cpp23/warning.html&#34;&gt;&lt;code&gt;#warning&lt;/code&gt;のサポートを追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;多くのC++コンパイラが実装していたプリプロセス時の警告&lt;code&gt;#warning message&lt;/code&gt;を正式サポート&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;2023.2&lt;/td&gt;
&lt;td&gt;2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2295R6: &lt;a href=&#34;lang/cpp23/support_for_utf8_as_a_portable_source_file_encoding.html&#34;&gt;汎用的なソースコードのエンコーディングとしてUTF-8をサポート&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;すべてのコンパイラはUTF-8文字コードのソースコードをサポートしなければならない&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;2023.2&lt;/td&gt;
&lt;td&gt;2019 Update 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2223R2: &lt;a href=&#34;lang/cpp23/trimming_whitespaces_before_line_splicing.html&#34;&gt;行末スペースを無視するよう規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;行末が「&lt;code&gt;\ &lt;/code&gt;」でおわっていた場合にMSVCは行の継続をしない実装になっていたため動作を共通化するため仕様を規定&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;2022.2&lt;/td&gt;
&lt;td&gt;2026&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;各処理系のC++23実装状況ページ：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GCC: &lt;a href=&#34;https://gcc.gnu.org/projects/cxx-status.html#cxx23&#34; target=&#34;_blank&#34;&gt;C++23 Support in GCC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Clang: &lt;a href=&#34;https://clang.llvm.org/cxx_status.html#cxx23&#34; target=&#34;_blank&#34;&gt;C++23 implementation status&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Visual C++ (MSVC):&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://learn.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance?view=msvc-170&#34; target=&#34;_blank&#34;&gt;Microsoft C/C++ language conformance by Visual Studio version&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://learn.microsoft.com/en-us/cpp/overview/cpp-conformance-improvements?view=msvc-170&#34; target=&#34;_blank&#34;&gt;C++ Conformance improvements, behavior changes, and bug fixes in Visual Studio 2022&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://devblogs.microsoft.com/cppblog/msvc-compiler-updates-in-visual-studio-2022-version-17-13/&#34; target=&#34;_blank&#34;&gt;C++ Language Updates in MSVC in Visual Studio 2022 17.13&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://devblogs.microsoft.com/cppblog/msvc-compiler-language-updates-in-visual-studio-2022-version-17-12/&#34; target=&#34;_blank&#34;&gt;MSVC Compiler Language Updates in Visual Studio 2022 version 17.12&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://devblogs.microsoft.com/cppblog/c-language-updates-in-msvc-in-visual-studio-2022-17-14/&#34; target=&#34;_blank&#34;&gt;C++ Language Updates in MSVC in Visual Studio 2022 17.14&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://learn.microsoft.com/en-us/cpp/overview/msvc-conformance-improvements&#34; target=&#34;_blank&#34;&gt;C/C++ Conformance improvements, behavior changes, and bug fixes in Microsoft C++ (MSVC) Build Tools&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ICX: &lt;a href=&#34;https://www.intel.com/content/www/us/en/developer/articles/technical/c23-features-supported-by-intel-c-compiler.html&#34; target=&#34;_blank&#34;&gt;C++23 Features Supported by Intel® C++ Compiler&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href=&#34;#cpp26&#34; id=&#34;cpp26&#34;&gt;C++26言語機能の実装状況&lt;/a&gt;&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#gcc&#34;&gt;GCC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#clang&#34;&gt;Clang&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#icc&#34;&gt;ICX&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#visual_cpp&#34;&gt;MSVC&lt;/a&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;P2752R3: &lt;a href=&#34;lang/cpp26/static_storage_for_braced_initializers.html&#34;&gt;&lt;code&gt;std::initializer_list&lt;/code&gt;の配列を静的記憶域に配置する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;std::vector v = {1, 2, 3};&lt;/code&gt;のような初期化で初期化子リストを静的記憶域に配置することで無駄なコピーをなくす&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2169R4: &lt;a href=&#34;lang/cpp26/nice_placeholder_with_no_name.html&#34;&gt;宣言のみで使用しない変数の名前として&lt;code&gt;_&lt;/code&gt;をサポート&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;変数名&lt;code&gt;_&lt;/code&gt;は暗黙で&lt;code&gt;[[maybe_unused]]&lt;/code&gt;が指定される&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1854R4: &lt;a href=&#34;lang/cpp26/making_non-encodable_string_literals_ill-formed.html&#34;&gt;文字列リテラルの文字エンコーディング失敗を不適格とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;文字列リテラルのエンコーディング時に文字表現が失われる場合にコンパイルエラーにする&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2361R6: &lt;a href=&#34;lang/cpp26/unevaluated_strings.html&#34;&gt;コンパイル時にのみ使用される文字列の扱いを明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;static_assert&lt;/code&gt;や&lt;code&gt;[[deprecated]]&lt;/code&gt;などで使用されるコンパイル時の文字列について、文字コードの指定を禁止し、実行時エンコーディングが行われないことを規定&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2552R3: &lt;a href=&#34;lang/cpp26/on_the_ignorability_of_standard_attributes.html&#34;&gt;属性の無視性を見直し&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;構文として適格な属性のみを無視できるようにし、そうでない属性の使用を&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;とする&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2738R1: &lt;a href=&#34;lang/cpp26/constexpr_cast_from_voidptr.html&#34;&gt;定数式での&lt;code&gt;void*&lt;/code&gt;からポインタ型へのキャストを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;型消去のために&lt;code&gt;void*&lt;/code&gt;からポインタ型へのキャストを許可する&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2741R3: &lt;a href=&#34;lang/cpp26/user-generated_static_assert_messages.html&#34;&gt;&lt;code&gt;static_assert&lt;/code&gt;の診断メッセージにユーザーが生成した文字列の指定を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;constexpr&lt;/code&gt;な&lt;code&gt;S.size()&lt;/code&gt;と&lt;code&gt;S.data()&lt;/code&gt;メンバ関数をもつオブジェクトをコンパイル時文字列として指定できるようにする&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2558R2: &lt;a href=&#34;lang/cpp26/add_atsign_dollar_graveaccent_to_the_basic_character_set.html&#34;&gt;基本文字集合に@、$、`を追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;C言語との互換性のためにこれらの文字を基本文字集合に追加&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2662R3: &lt;a href=&#34;lang/cpp26/pack_indexing.html&#34;&gt;パラメータパックへのインデックスアクセスを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;可変引数テンプレートのパラメータパックに添字アクセスできるようにする&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2864R2: &lt;a href=&#34;lang/cpp26/remove_deprecated_arithmetic_conversion_on_enumerations.html&#34;&gt;非推奨となっていた列挙値から算術型への暗黙変換を削除&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;C++20から非推奨となっていた列挙値への算術演算で算術型に暗黙変換される仕様を削除&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2748R5: &lt;a href=&#34;lang/cpp26/disallow_binding_a_returned_glvalue_to_a_temporary.html&#34;&gt;返却された左辺値から暗黙変換された一時オブジェクトが参照に束縛されることを禁止する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;寿命切れの変数によって引き起こされるバグを防止する&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3106R1: &lt;a href=&#34;lang/cpp26/clarifying_rules_for_brace_elision_in_aggregate_initialization.html&#34;&gt;要素数不明の配列を集成体初期化する規則を明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;配列要素の集成体初期化で&lt;code&gt;{}&lt;/code&gt;が省略された場合の矛盾していた規定を修正&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0609R3: &lt;a href=&#34;lang/cpp26/attributes_for_structured_bindings.html&#34;&gt;構造化束縛への属性を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;auto [a, b [[maybe_unused]], c] = f();&lt;/code&gt;のように構造化束縛の要素に対して属性を付加できるようにする&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3034R1: &lt;a href=&#34;lang/cpp26/module_declarations_shouldnt_be_macros.html&#34;&gt;モジュール宣言でのモジュール名のマクロ展開を禁止する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;export module MACRO_NAME;&lt;/code&gt;を禁止&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2809R3: &lt;a href=&#34;lang/cpp26/trivial_infinite_loops_are_not_undefined_behavior.html&#34;&gt;空の無限ループは未定義動作ではないと規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;並行プログラムの進行保証などを考慮して空の無限ループを未定義動作ではないものとする&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2795R5: &lt;a href=&#34;lang/cpp26/erroneous_behavior_for_uninitialized_reads.html&#34;&gt;未初期化変数の読み取りをエラー性動作とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;初期化されていない自動変数の読み取りの安全性を規定する&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2573R2: &lt;a href=&#34;lang/cpp26/delete_reason.html&#34;&gt;関数宣言を削除する理由を指定できるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;f() = delete(&#34;reason&#34;);&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2893R3: &lt;a href=&#34;lang/cpp26/variadic_friends.html&#34;&gt;可変引数テンプレートで&lt;code&gt;friend&lt;/code&gt;宣言をできるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;クラステンプレートの可変引数テンプレートでまとめて&lt;code&gt;friend&lt;/code&gt;宣言できるようにする&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2747R2: &lt;a href=&#34;lang/cpp26/constexpr_placement_new.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;配置&lt;code&gt;new&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数式の文脈での配置&lt;code&gt;new&lt;/code&gt;を許可&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3144R2: &lt;a href=&#34;lang/cpp26/deleting_a_pointer_to_an_incomplete_type_should_be_ill-formed.html&#34;&gt;不完全型へのポインタに対する&lt;code&gt;delete&lt;/code&gt;を不適格とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;未定義動作を引き起こす操作をコンパイルエラーとする&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2963R3: &lt;a href=&#34;lang/cpp26/ordering_of_constraints_involving_fold_expressions.html&#34;&gt;制約式内での畳み込み式の順序付け&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;畳み込み式を含む制約の包摂関係を認識できるようにし、オーバーロード解決の曖昧さを解消する&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P0963R3: &lt;a href=&#34;lang/cpp26/structured_binding_declaration_as_a_condition.html&#34;&gt;条件式での構造化束縛の使用を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;式全体を&lt;code&gt;bool&lt;/code&gt;値に変換できる場合に条件式で構造化束縛を使用できることとする&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;21&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2686R5: &lt;a href=&#34;lang/cpp26/constexpr_structured_bindings_and_references_to_constexpr_variables.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;構造化束縛の許可と、&lt;code&gt;constexpr&lt;/code&gt;参照の制限緩和&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数式に対する構造化束縛を許可し、関連して&lt;code&gt;constexpr&lt;/code&gt;参照の制限を緩和して自動変数も参照できるようにする&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3068R6: &lt;a href=&#34;lang/cpp26/allowing_exception_throwing_in_constant-evaluation.html&#34;&gt;定数評価での例外送出を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数式の文脈での例外の送出と捕捉を許可&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2865R6: &lt;a href=&#34;lang/cpp26/remove_deprecated_array_comparisons.html&#34;&gt;非推奨だった組み込み配列の比較を削除&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;C++20で非推奨となっていた配列比較を削除&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1061R10: &lt;a href=&#34;lang/cpp26/structured_bindings_can_introduce_a_pack.html&#34;&gt;構造化束縛でパックを導入できるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;タプルを分解する際に複数の変数をパックとして宣言できるようにする。&lt;code&gt;auto [a, ...xs] = f();&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3176R0: &lt;a href=&#34;lang/cpp26/the_oxford_variadic_comma.html&#34;&gt;先行するカンマのない省略記号を非推奨化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;void f(int, ...);&lt;/code&gt;はOK。&lt;code&gt;void f(int...);&lt;/code&gt;は非推奨&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3074R7: &lt;a href=&#34;lang/cpp26/trivial_unions.html&#34;&gt;共用体の特殊メンバ関数のトリビアル化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;非トリビアルな型をメンバにもつ共用体のデフォルトコンストラクタとデストラクタをトリビアルにし、未初期化ストレージとして使用可能にする&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2900R14: &lt;a href=&#34;lang/cpp26/contracts.html&#34;&gt;契約プログラミングをサポートする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;関数の事前条件、事後条件、不変条件を記述できるようにする&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2841R7: &lt;a href=&#34;lang/cpp26/concept_and_variable-template_template-parameters.html&#34;&gt;コンセプトと変数テンプレートをテンプレート引数として渡せるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートテンプレートパラメータとして、クラステンプレートやエイリアステンプレートに加え、コンセプトと変数テンプレートも渡せるようにする&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1967R14: &lt;a href=&#34;lang/cpp26/embed.html&#34;&gt;ファイルを読み込む&lt;code&gt;#embed&lt;/code&gt;命令を追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;バイナリファイルをインクルードするメカニズム。&lt;code&gt;#include&lt;/code&gt;とちがって読み出しサイズなどの柔軟な指定ができる&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3618R0: &lt;a href=&#34;lang/cpp26/allow_attaching_main_to_the_global_module.html&#34;&gt;&lt;code&gt;main&lt;/code&gt;関数をグローバルモジュールに含められるようにする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;main&lt;/code&gt;関数に&lt;code&gt;extern &#34;C++&#34;&lt;/code&gt;を指定できるようにすることで名前付きモジュールに含められるようにする&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;21&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2996R13: &lt;a href=&#34;lang/cpp26/reflection.html&#34;&gt;静的リフレクション&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;リフレクション演算子&lt;code&gt;^^&lt;/code&gt;と&lt;code&gt;std::meta::info&lt;/code&gt;型によりコンパイル時にさまざまな情報を取得できる&lt;/td&gt;
&lt;td&gt;16 (&lt;code&gt;-freflection&lt;/code&gt; オプション指定)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P1306R5: &lt;a href=&#34;lang/cpp26/expansion_statements.html&#34;&gt;コンパイル時のタプルやリストを展開処理する&lt;code&gt;template for&lt;/code&gt;文&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;タプル・構造体・Range・パラメータパックなどの各要素に対してコンパイル時に文を展開する&lt;code&gt;template for&lt;/code&gt;文を追加&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3533R2: &lt;a href=&#34;lang/cpp26/constexpr_virtual_inheritance.html&#34;&gt;&lt;code&gt;constexpr&lt;/code&gt;仮想継承を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数式の文脈での仮想継承を許可&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2843R3: &lt;a href=&#34;lang/cpp26/preprocessing_is_never_undefined.html&#34;&gt;プリプロセッサ仕様での「未定義動作」を不適格 (診断不要) に変更&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;プリプロセッサとレキサーの文脈での「未定義動作」用語を&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt; (診断不要) に変更&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3868R1: &lt;a href=&#34;lang/cpp26/allow_line_before_module_declarations.html&#34;&gt;モジュール宣言より前での&lt;code&gt;#line&lt;/code&gt;ディレクティブの使用を許可する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;モジュール宣言より前での&lt;code&gt;#line&lt;/code&gt;ディレクティブの使用を禁止していたのは過度な制限だった&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P4136R2: &lt;a href=&#34;lang/cpp26/line_is_not_in_line_with_existing_implementation.html&#34;&gt;&lt;code&gt;#line&lt;/code&gt;ディレクティブの制約を現実の実装に合わせて緩和する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#line 0&lt;/code&gt;や&lt;code&gt;#line 2147483648&lt;/code&gt;のような行番号指定を&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;としていたが、条件付きサポートとして許可する&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P4004R1: &lt;a href=&#34;lang/cpp26/reconsider_partial_ordering_of_variadic_templates.html&#34;&gt;可変引数テンプレートの半順序を再検討する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;可変引数テンプレートの部分特殊化の半順序ルールを再検討して、より一貫したルールにする&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3865R3: &lt;a href=&#34;lang/cpp26/class_template_argument_deduction_for_type_template_template_parameters.html&#34;&gt;テンプレートテンプレートパラメータに対するクラステンプレートパラメータ引数推論&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートテンプレートパラメータからクラステンプレート引数を推論できるようにクラステンプレートのテンプレート引数推論を拡張する&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3726R2: &lt;a href=&#34;lang/cpp26/adjustments_to_union_lifetime_rules.md.nolink&#34;&gt;共用体の生存期間ルールの調整&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;union&lt;/code&gt;メンバの活性化や生存期間に関する規則を整理して&lt;code&gt;constexpr&lt;/code&gt;評価などの一貫性を改善する&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P4143R0: &lt;a href=&#34;lang/cpp26/constant_evaluation_when.md.nolink&#34;&gt;定数評価の開始・終了タイミングを明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;定数評価がどのタイミングで開始・終了するかを明確化し、constexprコンテキストの規則を整える&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P4149R1: &lt;a href=&#34;lang/cpp26/define_immediate_context.md.nolink&#34;&gt;「immediate context」の定義を明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;SFINAEにおける「immediate context」の用語を厳密に定義し、置換失敗の範囲を明確にする&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3769R1: &lt;a href=&#34;lang/cpp26/clarifying_placement_new_deallocation.html&#34;&gt;配置newの解放処理を明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;配置&lt;code&gt;new&lt;/code&gt;で確保したメモリの解放処理の取り扱いに関するルールを明確化する&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;各処理系のC++26実装状況ページ：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GCC: &lt;a href=&#34;https://gcc.gnu.org/projects/cxx-status.html#cxx26&#34; target=&#34;_blank&#34;&gt;C++26 Support in GCC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Clang:&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://clang.llvm.org/cxx_status.html#cxx26&#34; target=&#34;_blank&#34;&gt;C++2c implementation status&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://libcxx.llvm.org/Status/Cxx26.html&#34; target=&#34;_blank&#34;&gt;libc++ C++26 Status&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Visual C++ (MSVC):&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://learn.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance?view=msvc-170&#34; target=&#34;_blank&#34;&gt;Microsoft C/C++ language conformance by Visual Studio version&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://learn.microsoft.com/en-us/cpp/overview/cpp-conformance-improvements?view=msvc-170&#34; target=&#34;_blank&#34;&gt;C++ Conformance improvements, behavior changes, and bug fixes in Visual Studio 2022&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href=&#34;#cpp29&#34; id=&#34;cpp29&#34;&gt;C++29言語機能の実装状況&lt;/a&gt;&lt;/h2&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#gcc&#34;&gt;GCC&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#clang&#34;&gt;Clang&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#icc&#34;&gt;ICX&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href=&#34;implementation.html#visual_cpp&#34;&gt;MSVC&lt;/a&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;P3596R3: &lt;a href=&#34;lang/cpp29/undefined_behavior_and_ifndr_annexes.html&#34;&gt;未定義動作とIFNDRの一覧を規格の付録に追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コア言語で明示的に規定されているすべての未定義動作と、診断不要で&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt; (IFNDR) となるすべての規則を、安定した名前・説明・コード例付きで列挙する参考情報の付録を追加する&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2287R6: &lt;a href=&#34;lang/cpp29/designated-initializers_for_base_classes.html&#34;&gt;基底クラスのメンバ変数に対する指示付き初期化を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;B{.a=1, .b=2}&lt;/code&gt;のように、集成体の指示付き初期化で基底クラスのメンバ変数を直接指定できるようにする。基底クラス部分を初期化する指示なし初期化子との混在も許可する&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2953R5: &lt;a href=&#34;lang/cpp29/adding_restrictions_to_defaulted_assignment_operator_functions.html&#34;&gt;default定義できる代入演算子のシグネチャを制限&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;A&amp;amp; operator=(const A&amp;amp;) &amp;amp;&amp;amp; = default&lt;/code&gt;のような右辺値修飾やCV修飾された代入演算子のdefault定義を&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;とする。これらの代入演算子を自分で定義することは引き続きできる&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3899R3: &lt;a href=&#34;lang/cpp29/clarify_the_behavior_of_floating-point_overflow.html&#34;&gt;浮動小数点演算のオーバーフローと無限大・NaNの扱いを明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;無限大を表現できる浮動小数点型では、オーバーフローは未定義動作ではなく無限大を生成すると規定する。オーバーフローやNaNを新たに生成する演算は定数式にならず、無限大・NaNの伝播は定数式として扱える&lt;/td&gt;
&lt;td&gt;15 (partial)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3668R4: &lt;a href=&#34;lang/cpp29/defaulting_postfix_increment_and_decrement_operations.html&#34;&gt;後置インクリメント・デクリメント演算のdefault定義&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;後置&lt;code&gt;++&lt;/code&gt;／&lt;code&gt;--&lt;/code&gt;を&lt;code&gt;= default&lt;/code&gt;で定義（前置版から自動生成）できるようにする&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2434R5: &lt;a href=&#34;lang/cpp29/nondeterministic_pointer_provenance.html&#34;&gt;整数からポインタへの変換とポインタの由来の扱いを規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;整数からポインタへの変換では、その整数へ変換できるポインタ値のうち、プログラムの動作が定義される値が選択されると規定する&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3347R6: &lt;a href=&#34;lang/cpp29/invalid_pointer_operations.html&#34;&gt;無効なポインタ値の読み書き・コピーを定義された動作とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;無効なポインタ値の使用のうち、間接参照は未定義動作、比較などは処理系定義のままとし、読み込み・書き込み・コピーなどそれ以外の操作を定義された動作とする&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3658R1: &lt;a href=&#34;lang/cpp29/adjust_identifier_following_new_Unicode_recommendations.html&#34;&gt;数学互換記法の文字を識別子として許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Unicodeの新しい勧告に従い、&lt;code&gt;∇f&lt;/code&gt;や&lt;code&gt;x²&lt;/code&gt;のような数学記法の文字（ID_Compat_Math_Start／Continueプロパティを持つ文字）を識別子に使用できるようにする&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3950R1: &lt;a href=&#34;lang/cpp29/return_value_and_return_void_are_not_mutually_exclusive.html&#34;&gt;コルーチンのpromise型で&lt;code&gt;return_value&lt;/code&gt;と&lt;code&gt;return_void&lt;/code&gt;の両方の宣言を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;1つのコルーチン内に、値をともなう&lt;code&gt;co_return&lt;/code&gt;文とともなわない&lt;code&gt;co_return&lt;/code&gt;文を混在させられるようにする&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3733R1: &lt;a href=&#34;lang/cpp29/more_named_universal_character_escapes.html&#34;&gt;名前付きユニバーサルキャラクタ名で使用できる別名を拡張&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;\N{…}&lt;/code&gt;に指定できる文字名の別名の分類制限を撤廃し、&lt;code&gt;\N{NBSP}&lt;/code&gt;のような略称 (abbreviation) なども使用できるようにする&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;23&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3847R1: &lt;a href=&#34;lang/cpp29/lexical_order_for_lambdas.html&#34;&gt;ラムダ式のキャプチャが書かれた順に初期化されることを保証&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;明示的なキャプチャに対応するクロージャ型のメンバ変数が、キャプチャを書いた順に宣言・初期化され、逆順に破棄されることを保証する&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2243R0: &lt;a href=&#34;lang/cpp29/language_linkage_for_templates.html&#34;&gt;extern &#34;C&#34;の中でのテンプレートの宣言を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートがC言語リンケージを持つことを禁止する規定を削除し、&lt;code&gt;extern &#34;C&#34;&lt;/code&gt;の中でテンプレートを宣言できるようにする。C言語リンケージの関数ポインタ型を、テンプレートパラメータに依存する形で書けるようになる&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3424R2: &lt;a href=&#34;lang/cpp29/deallocation_functions_with_throwing_exception_specification_are_ill_formed.html&#34;&gt;例外を送出しうる例外指定をもつ解放関数を不適格とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;operator delete&lt;/code&gt;などの解放関数に、&lt;code&gt;noexcept(false)&lt;/code&gt;のような例外を送出しうる例外指定を付けることを&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;とする。解放関数からの例外送出による未定義動作へ到達する経路を、宣言の時点で排除する&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3822R2: &lt;a href=&#34;lang/cpp29/conditional_noexcept_specifiers_in_compound_requirements.html&#34;&gt;requires式の複合要件で条件付き&lt;code&gt;noexcept&lt;/code&gt;指定を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;requires式の複合要件で、&lt;code&gt;{ 式 } noexcept(定数式)&lt;/code&gt;形式の条件付き&lt;code&gt;noexcept&lt;/code&gt;指定を書けるようにする&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3097R3: &lt;a href=&#34;lang/cpp29/contracts_for_virtual_functions.html&#34;&gt;仮想関数への事前条件・事後条件の指定を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;C++26で&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;とされていた、仮想関数への事前条件&lt;code&gt;pre&lt;/code&gt;・事後条件&lt;code&gt;post&lt;/code&gt;の指定を許可する。仮想関数呼び出しでは、静的に選択された関数と実際に呼び出される関数の両方のアサーションが評価される&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P4101R1: &lt;a href=&#34;lang/cpp29/consteval-only_values.html&#34;&gt;consteval-only型の規則をconsteval-only値の規則へ置き換え&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;リフレクションが実行時へ漏れることを防ぐ規則を、型ベースから値ベースへ変更する&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P2414R12: &lt;a href=&#34;lang/cpp29/pointer_lifetime-end_zap_proposed_solutions.html&#34;&gt;アトミック操作とvolatileアクセスでの無効なポインタ値の扱いを規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;アトミックポインタの操作やvolatileアクセスの結果が無効なポインタ値となる場合、整数への往復変換を経た有効なポインタ値になると規定する。解放と並行してポインタを扱うロックフリーアルゴリズムを定義された動作にする&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3670R4: &lt;a href=&#34;lang/cpp29/pack_indexing_for_template_names.html&#34;&gt;テンプレートテンプレートパラメータのパックへのインデックスアクセスを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートテンプレートパラメータのパックに&lt;code&gt;TT...[N]&lt;/code&gt;形式でインデックスアクセスできるようにする&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;24&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P3540R3: &lt;a href=&#34;lang/cpp29/embed_offset_parameter.html&#34;&gt;&lt;code&gt;#embed&lt;/code&gt;に&lt;code&gt;offset&lt;/code&gt;パラメータを追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#embed&lt;/code&gt;のパラメータとして、リソースの先頭から指定した要素数を読み飛ばす&lt;code&gt;offset&lt;/code&gt;を追加する&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;</content>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>コルーチン [P0912R5] -- C++29 : 「コルーチンのpromise型で`return_value`と`return_void`の両方の宣言を許可」を追加 (close #1686)</title>
      <link href="https://cpprefjp.github.io/lang/cpp20/coroutines.html"/>
      <id>00fc71857bd3f4e905d1bbcc91c2ff2a5cb14005:lang/cpp20/coroutines.md</id>
      <updated>2026-09-07T11:43:54+09:00</updated>
      
        <summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/lang/cpp20/coroutines.md b/lang/cpp20/coroutines.md
index 1ddc63f5d..0256bf41c 100644
--- a/lang/cpp20/coroutines.md
+++ b/lang/cpp20/coroutines.md
@@ -196,6 +196,8 @@ final-suspend :
 
 Promise型のスコープにおいて、非修飾な`return_void`および`return_value`の探索が行われる。両方が見つかった場合、プログラムは不適格となる。
 
+- C++29 : この制限は削除され、[両方を宣言できるようになった](/lang/cpp29/return_value_and_return_void_are_not_mutually_exclusive.md)
+
 コルーチン呼び出しのglvalue結果またはprvalue結果オブジェクトを初期化するために、式 &amp;lt;code&amp;gt;_promise_&amp;lt;/code&amp;gt;`.get_return_object()`が使われる。
 `get_return_object`呼び出しは高々1回であり、`initial_suspend`呼び出しよりも前に順序付けられる。
 
@@ -622,6 +624,7 @@ C++20コルーチンに関するキーワードは、いずれも接頭辞`co_`
 ## &amp;lt;a id=&amp;#34;relative-page&amp;#34; href=&amp;#34;#relative-page&amp;#34;&amp;gt;関連項目&amp;lt;/a&amp;gt;
 - C++20 [`&amp;lt;coroutine&amp;gt;`](/reference/coroutine.md)
 - C++23 [`&amp;lt;generator&amp;gt;`](/reference/generator.md)
+- [C++29 コルーチンのpromise型で`return_value`と`return_void`の両方の宣言を許可](/lang/cpp29/return_value_and_return_void_are_not_mutually_exclusive.md)
 
 
 ## 参照
&lt;/code&gt;&lt;/pre&gt;</summary>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>C++29 -- C++29 : 「コルーチンのpromise型で`return_value`と`return_void`の両方の宣言を許可」を追加 (close #1686)</title>
      <link href="https://cpprefjp.github.io/lang/cpp29.html"/>
      <id>00fc71857bd3f4e905d1bbcc91c2ff2a5cb14005:lang/cpp29.md</id>
      <updated>2026-09-07T11:43:54+09:00</updated>
      
        <content type="html">&lt;h1 itemprop=&#34;name&#34;&gt;&lt;span class=&#34;token&#34;&gt;C++29&lt;/span&gt;&lt;/h1&gt;
&lt;div itemprop=&#34;articleBody&#34;&gt;&lt;h2&gt;概要&lt;/h2&gt;
&lt;p&gt;C++29とは、2029年中に改訂される予定の、C++バージョンの通称である。&lt;/p&gt;
&lt;p&gt;このバージョンは、策定中のためC++2dと呼ばれることがある。「(2020年代の4つ目のバージョンが) 202d年にリリースされる」という伏せ字として「d」が使われているが、3年周期に次のバージョンが策定されることが決まっているため、伏せ字になっている年数がずれることはない。&lt;/p&gt;
&lt;h2&gt;言語機能&lt;/h2&gt;
&lt;h3&gt;変数&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/clarify_the_behavior_of_floating-point_overflow.html&#34;&gt;浮動小数点演算のオーバーフローと無限大・NaNの扱いを明確化&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;無限大を表現できる浮動小数点型では、オーバーフローは未定義動作ではなく無限大を生成すると規定する。オーバーフローやNaNを新たに生成する演算は定数式にならず、無限大・NaNの伝播は定数式として扱える&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;文字列&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/more_named_universal_character_escapes.html&#34;&gt;名前付きユニバーサルキャラクタ名で使用できる別名を拡張&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;\N{…}&lt;/code&gt;に指定できる文字名の別名の分類制限を撤廃し、&lt;code&gt;\N{NBSP}&lt;/code&gt;のような略称 (abbreviation) なども使用できるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;制御構文&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/return_value_and_return_void_are_not_mutually_exclusive.html&#34;&gt;コルーチンのpromise型で&lt;code&gt;return_value&lt;/code&gt;と&lt;code&gt;return_void&lt;/code&gt;の両方の宣言を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;1つのコルーチン内に、値をともなう&lt;code&gt;co_return&lt;/code&gt;文とともなわない&lt;code&gt;co_return&lt;/code&gt;文を混在させられるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;関数&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/lexical_order_for_lambdas.html&#34;&gt;ラムダ式のキャプチャが書かれた順に初期化されることを保証&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;明示的なキャプチャに対応するクロージャ型のメンバ変数が、キャプチャを書いた順に宣言・初期化され、逆順に破棄されることを保証する&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/deallocation_functions_with_throwing_exception_specification_are_ill_formed.html&#34;&gt;例外を送出しうる例外指定をもつ解放関数を不適格とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;operator delete&lt;/code&gt;などの解放関数に、&lt;code&gt;noexcept(false)&lt;/code&gt;のような例外を送出しうる例外指定を付けることを&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;とする。解放関数からの例外送出による未定義動作へ到達する経路を、宣言の時点で排除する&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;クラス&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/designated-initializers_for_base_classes.html&#34;&gt;基底クラスのメンバ変数に対する指示付き初期化を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;B{.a=1, .b=2}&lt;/code&gt;のように、集成体の指示付き初期化で基底クラスのメンバ変数を直接指定できるようにする。基底クラス部分を初期化する指示なし初期化子との混在も許可する&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/defaulting_postfix_increment_and_decrement_operations.html&#34;&gt;後置インクリメント・デクリメント演算のdefault定義&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;後置&lt;code&gt;++&lt;/code&gt;／&lt;code&gt;--&lt;/code&gt;を&lt;code&gt;= default&lt;/code&gt;で定義（前置版から自動生成）できるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/adding_restrictions_to_defaulted_assignment_operator_functions.html&#34;&gt;default定義できる代入演算子のシグネチャを制限&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;A&amp;amp; operator=(const A&amp;amp;) &amp;amp;&amp;amp; = default&lt;/code&gt;のような右辺値修飾やCV修飾された代入演算子のdefault定義を&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;とする。これらの代入演算子を自分で定義することは引き続きできる&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/contracts_for_virtual_functions.html&#34;&gt;仮想関数への事前条件・事後条件の指定を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;C++26で&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;とされていた、仮想関数への事前条件&lt;code&gt;pre&lt;/code&gt;・事後条件&lt;code&gt;post&lt;/code&gt;の指定を許可する。仮想関数呼び出しでは、静的に選択された関数と実際に呼び出される関数の両方のアサーションが評価される&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;テンプレート&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/language_linkage_for_templates.html&#34;&gt;extern &#34;C&#34;の中でのテンプレートの宣言を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートがC言語リンケージを持つことを禁止する規定を削除し、&lt;code&gt;extern &#34;C&#34;&lt;/code&gt;の中でテンプレートを宣言できるようにする。C言語リンケージの関数ポインタ型を、テンプレートパラメータに依存する形で書けるようになる&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/conditional_noexcept_specifiers_in_compound_requirements.html&#34;&gt;requires式の複合要件で条件付き&lt;code&gt;noexcept&lt;/code&gt;指定を許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;requires式の複合要件で、&lt;code&gt;{ 式 } noexcept(定数式)&lt;/code&gt;形式の条件付き&lt;code&gt;noexcept&lt;/code&gt;指定を書けるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/pack_indexing_for_template_names.html&#34;&gt;テンプレートテンプレートパラメータのパックへのインデックスアクセスを許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;テンプレートテンプレートパラメータのパックに&lt;code&gt;TT...[N]&lt;/code&gt;形式でインデックスアクセスできるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;定数式&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/consteval-only_values.html&#34;&gt;consteval-only型の規則をconsteval-only値の規則へ置き換え&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;リフレクションが実行時へ漏れることを防ぐ規則を、型ベースから値ベースへ変更する&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;並行・並列処理&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/nondeterministic_pointer_provenance.html&#34;&gt;整数からポインタへの変換とポインタの由来の扱いを規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;整数からポインタへの変換では、その整数へ変換できるポインタ値のうち、プログラムの動作が定義される値が選択されると規定する&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/invalid_pointer_operations.html&#34;&gt;無効なポインタ値の読み書き・コピーを定義された動作とする&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;無効なポインタ値の使用のうち、間接参照は未定義動作、比較などは処理系定義のままとし、読み込み・書き込み・コピーなどそれ以外の操作を定義された動作とする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/pointer_lifetime-end_zap_proposed_solutions.html&#34;&gt;アトミック操作とvolatileアクセスでの無効なポインタ値の扱いを規定&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;アトミックポインタの操作やvolatileアクセスの結果が無効なポインタ値となる場合、整数への往復変換を経た有効なポインタ値になると規定する。解放と並行してポインタを扱うロックフリーアルゴリズムを定義された動作にする&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;プリプロセッサ&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/embed_offset_parameter.html&#34;&gt;&lt;code&gt;#embed&lt;/code&gt;に&lt;code&gt;offset&lt;/code&gt;パラメータを追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#embed&lt;/code&gt;のパラメータとして、リソースの先頭から指定した要素数を読み飛ばす&lt;code&gt;offset&lt;/code&gt;を追加する&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;未定義動作&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/undefined_behavior_and_ifndr_annexes.html&#34;&gt;未定義動作とIFNDRの一覧を規格の付録に追加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;コア言語で明示的に規定されているすべての未定義動作と、診断不要で&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt; (IFNDR) となるすべての規則を、安定した名前・説明・コード例付きで列挙する参考情報の付録を追加する&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;ソースコード&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;言語機能&lt;/th&gt;
&lt;th&gt;説明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp29/adjust_identifier_following_new_Unicode_recommendations.html&#34;&gt;数学互換記法の文字を識別子として許可&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Unicodeの新しい勧告に従い、&lt;code&gt;∇f&lt;/code&gt;や&lt;code&gt;x²&lt;/code&gt;のような数学記法の文字（ID_Compat_Math_Start／Continueプロパティを持つ文字）を識別子に使用できるようにする&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;ライブラリ更新の概要&lt;/h2&gt;
&lt;h3&gt;整数&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;任意定義だった&lt;code&gt;&lt;a href=&#34;../reference/cstdint/intptr_t.html&#34;&gt;std::intptr_t&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/cstdint/uintptr_t.html&#34;&gt;std::uintptr_t&lt;/a&gt;&lt;/code&gt;型を必須定義とする&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;文字列&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/format/format.html&#34;&gt;std::format()&lt;/a&gt;&lt;/code&gt;関数での浮動小数点数の規定の出力形式を修正&lt;ul&gt;
&lt;li&gt;これまでの既定書式が最短文字数を基準としていたため、&lt;code&gt;100000.0&lt;/code&gt;→&lt;code&gt;&#34;1e+05&#34;&lt;/code&gt;なのに&lt;code&gt;120000.0&lt;/code&gt;→&lt;code&gt;&#34;120000&#34;&lt;/code&gt;と一貫していない出力になっていたのを修正&lt;/li&gt;
&lt;li&gt;また、大きな値で&lt;code&gt;1234567890123456774144&lt;/code&gt;のような無意味な桁（garbage digits）がでる問題について、固定表記か指数表記かの切り替え基準を「値の大きさ（指数範囲 &lt;code&gt;[10⁻⁴, 10ⁿ)&lt;/code&gt;）」に変更して修正した&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;ビット操作&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/bit.html&#34;&gt;&amp;lt;bit&amp;gt;&lt;/a&gt;&lt;/code&gt;に、以下のビット操作関数を追加&lt;ul&gt;
&lt;li&gt;ビット列の並びを反転する&lt;code&gt;&lt;a href=&#34;../reference/bit/bit_reverse.html&#34;&gt;std::bit_reverse()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;li&gt;指定した下位ビットパターンを繰り返す&lt;code&gt;&lt;a href=&#34;../reference/bit/bit_repeat.html&#34;&gt;std::bit_repeat()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;li&gt;指定したマスクで立っている一のビットを下位に詰める&lt;code&gt;&lt;a href=&#34;../reference/bit/bit_compress.html&#34;&gt;std::bit_compress()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;li&gt;下位ビットを指定したマスクが立っている位置へ展開する&lt;code&gt;&lt;a href=&#34;../reference/bit/bit_expand.html&#34;&gt;std::bit_expand()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;li&gt;未定義動作にならないビットシフト&lt;code&gt;&lt;a href=&#34;../reference/bit/shl.html&#34;&gt;std::shl()&lt;/a&gt;&lt;/code&gt;関数と&lt;code&gt;&lt;a href=&#34;../reference/bit/shr.html&#34;&gt;std::shr()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;コンテナ&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/map/map.html&#34;&gt;std::map&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/unordered_map/unordered_map.html&#34;&gt;std::unordered_map&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/flat_map/flat_map.html&#34;&gt;std::flat_map&lt;/a&gt;&lt;/code&gt;クラスに、&lt;code&gt;&lt;a href=&#34;../reference/optional/optional.html&#34;&gt;std::optional&lt;/a&gt;&amp;lt;要素への参照&amp;gt;&lt;/code&gt;を返す検索メンバ関数&lt;code&gt;lookup()&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ranges/view_interface.html&#34;&gt;std::ranges::view_interface&lt;/a&gt;&lt;/code&gt;クラスに、境界チェック付きでランダムアクセスをするメンバ関数&lt;code&gt;&lt;a href=&#34;../reference/ranges/view_interface/at.html&#34;&gt;at()&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/mdspan/mdspan.html&#34;&gt;std::mdspan&lt;/a&gt;&lt;/code&gt;クラス向けのアルゴリズムとして&lt;code&gt;&lt;a href=&#34;../reference/mdspan/copy.md.nolink&#34;&gt;std::copy()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/mdspan/fill.md.nolink&#34;&gt;std::fill()&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;メモリ&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory.html&#34;&gt;&amp;lt;memory&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダに、ポインタのタグ付けを行う&lt;code&gt;&lt;a href=&#34;../reference/memory/pointer_tag_pair.md.nolink&#34;&gt;std::pointer_tag_pair&lt;/a&gt;&lt;/code&gt;クラスとその関連機能を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;エラーハンドリング&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/system_error/error_code.html&#34;&gt;std::error_code&lt;/a&gt;&lt;/code&gt;クラスのオブジェクトを文字列化する際の、カテゴリ名のエンコーディングの問題を修正し、&lt;code&gt;&lt;a href=&#34;../reference/format/format.html&#34;&gt;std::format()&lt;/a&gt;&lt;/code&gt;用の&lt;code&gt;formatter&lt;/code&gt;特殊化を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;並行・並列&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/thread/thread.html&#34;&gt;std::thread&lt;/a&gt;&lt;/code&gt;クラスと&lt;code&gt;&lt;a href=&#34;../reference/thread/jthread.html&#34;&gt;std::jthread&lt;/a&gt;&lt;/code&gt;クラスに、スレッド名とスタックサイズを設定する機能を追加&lt;/li&gt;
&lt;li&gt;SIMDデータ用に連番を生成する&lt;code&gt;&lt;a href=&#34;../reference/simd/iota.html&#34;&gt;std::simd::iota&lt;/a&gt;&lt;/code&gt;変数テンプレートを追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/bit.html&#34;&gt;&amp;lt;bit&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダと同様に、&lt;code&gt;&lt;a href=&#34;../reference/simd.html&#34;&gt;&amp;lt;simd&amp;gt;&lt;/a&gt;&lt;/code&gt;ヘッダにも、以下のビット操作関数を追加&lt;ul&gt;
&lt;li&gt;ビット列の並びを反転する&lt;code&gt;&lt;a href=&#34;../reference/simd/bit_reverse.html&#34;&gt;std::simd::bit_reverse()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;li&gt;指定した下位ビットパターンを繰り返す&lt;code&gt;&lt;a href=&#34;../reference/simd/bit_repeat.html&#34;&gt;std::simd::bit_repeat()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;li&gt;指定したマスクで立っている一のビットを下位に詰める&lt;code&gt;&lt;a href=&#34;../reference/simd/bit_compress.html&#34;&gt;std::simd::bit_compress()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;li&gt;下位ビットを指定したマスクが立っている位置へ展開する&lt;code&gt;&lt;a href=&#34;../reference/simd/bit_expand.html&#34;&gt;std::simd::bit_expand()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;li&gt;未定義動作にならないビットシフト&lt;code&gt;&lt;a href=&#34;../reference/simd/shl.html&#34;&gt;std::simd::shl()&lt;/a&gt;&lt;/code&gt;関数と&lt;code&gt;&lt;a href=&#34;../reference/simd/shr.html&#34;&gt;std::simd::shr()&lt;/a&gt;&lt;/code&gt;関数&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/hazard_pointer.html&#34;&gt;&amp;lt;hazard_pointer&amp;gt;&lt;/a&gt;&lt;/code&gt;に、複数のハザードポインタをまとめて構築・破棄する&lt;code&gt;&lt;a href=&#34;../reference/hazard_pointer/make_hazard_pointer_batch.html&#34;&gt;std::make_hazard_pointer_batch()&lt;/a&gt;&lt;/code&gt;関数と&lt;code&gt;&lt;a href=&#34;../reference/hazard_pointer/clear_hazard_pointer_batch.html&#34;&gt;std::clear_hazard_pointer_batch()&lt;/a&gt;&lt;/code&gt;関数を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;非推奨化&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/iostream.html&#34;&gt;&amp;lt;iostream&amp;gt;&lt;/a&gt;&lt;/code&gt;において、&lt;code&gt;signed char&lt;/code&gt; / &lt;code&gt;unsigned char&lt;/code&gt;の入出力を非推奨化。&lt;code&gt;&lt;a href=&#34;../reference/cstdint/int8_t.html&#34;&gt;std::int8_t&lt;/a&gt;&lt;/code&gt; / &lt;code&gt;&lt;a href=&#34;../reference/cstdint/uint8_t.html&#34;&gt;std::uint8_t&lt;/a&gt;&lt;/code&gt;の別名として扱われるこれらの型の入出力で、整数型であることを期待して予期せぬ結果を招く可能性があった&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>機能テストマクロ -- C++29 : 「コルーチンのpromise型で`return_value`と`return_void`の両方の宣言を許可」を追加 (close #1686)</title>
      <link href="https://cpprefjp.github.io/lang/cpp29/feature_test_macros.html"/>
      <id>00fc71857bd3f4e905d1bbcc91c2ff2a5cb14005:lang/cpp29/feature_test_macros.md</id>
      <updated>2026-09-07T11:43:54+09:00</updated>
      
        <content type="html">&lt;h1 itemprop=&#34;name&#34;&gt;&lt;span class=&#34;token&#34;&gt;機能テストマクロ&lt;/span&gt;&lt;span class=&#34;cpp cpp29&#34; title=&#34;C++29で追加&#34;&gt;(C++29)&lt;/span&gt;&lt;/h1&gt;
&lt;div itemprop=&#34;articleBody&#34;&gt;&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;このページはC++29に採用された言語機能の変更を解説しています。&lt;/p&gt;
&lt;p&gt;のちのC++規格でさらに変更される場合があるため&lt;a href=&#34;#relative-page&#34;&gt;関連項目&lt;/a&gt;を参照してください。&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;h2&gt;概要&lt;/h2&gt;
&lt;h3&gt;言語&lt;/h3&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;マクロ名&lt;/th&gt;
&lt;th&gt;値&lt;/th&gt;
&lt;th&gt;機能&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_concepts&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202606L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;conditional_noexcept_specifiers_in_compound_requirements.html&#34;&gt;requires式の複合要件で条件付き&lt;code&gt;noexcept&lt;/code&gt;指定を許可&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_consteval&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202606L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;consteval-only_values.html&#34;&gt;consteval-only型の規則をconsteval-only値の規則へ置き換え&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_contracts&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202606L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;contracts_for_virtual_functions.html&#34;&gt;仮想関数への事前条件・事後条件の指定を許可&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_impl_coroutine&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202606L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;return_value_and_return_void_are_not_mutually_exclusive.html&#34;&gt;コルーチンのpromise型で&lt;code&gt;return_value&lt;/code&gt;と&lt;code&gt;return_void&lt;/code&gt;の両方の宣言を許可&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_designated_initializers&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202606L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;designated-initializers_for_base_classes.html&#34;&gt;基底クラスのメンバ変数に対する指示付き初期化を許可&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_named_character_escapes&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202606L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;more_named_universal_character_escapes.html&#34;&gt;名前付きユニバーサルキャラクタ名で使用できる別名を拡張&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_pack_indexing&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202606L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;pack_indexing_for_template_names.html&#34;&gt;テンプレートテンプレートパラメータのパックへのインデックスアクセスを許可&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_pp_embed&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202606L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;embed_offset_parameter.html&#34;&gt;&lt;code&gt;#embed&lt;/code&gt;に&lt;code&gt;offset&lt;/code&gt;パラメータを追加&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;ライブラリ&lt;/h3&gt;
&lt;p&gt;ライブラリの機能テストマクロは全て&lt;code&gt;&lt;a href=&#34;../../reference/version.html&#34;&gt;&amp;lt;version&amp;gt;&lt;/a&gt;&lt;/code&gt;でも提供される。&lt;/p&gt;
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;マクロ名&lt;/th&gt;
&lt;th&gt;値&lt;/th&gt;
&lt;th&gt;機能&lt;/th&gt;
&lt;th&gt;ヘッダ&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_hazard_pointer&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202606L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/hazard_pointer.html&#34;&gt;&amp;lt;hazard_pointer&amp;gt;&lt;/a&gt;&lt;/code&gt;に、複数のハザードポインタをまとめて構築・破棄する&lt;code&gt;&lt;a href=&#34;../../reference/hazard_pointer/make_hazard_pointer_batch.html&#34;&gt;std::make_hazard_pointer_batch()&lt;/a&gt;&lt;/code&gt;関数と&lt;code&gt;&lt;a href=&#34;../../reference/hazard_pointer/clear_hazard_pointer_batch.html&#34;&gt;std::clear_hazard_pointer_batch()&lt;/a&gt;&lt;/code&gt;関数を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/hazard_pointer.html&#34;&gt;&amp;lt;hazard_pointer&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_simd&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202606L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/simd.html&#34;&gt;&amp;lt;simd&amp;gt;&lt;/a&gt;&lt;/code&gt;に、SIMDデータ用の連番を生成する&lt;code&gt;&lt;a href=&#34;../../reference/simd/iota.html&#34;&gt;std::simd::iota&lt;/a&gt;&lt;/code&gt;変数テンプレートなどを追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/simd.html&#34;&gt;&amp;lt;simd&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_simd_bitops&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202607L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/simd.html&#34;&gt;&amp;lt;simd&amp;gt;&lt;/a&gt;&lt;/code&gt;に、ビット列を操作する&lt;code&gt;&lt;a href=&#34;../../reference/simd/bit_reverse.html&#34;&gt;bit_reverse()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../../reference/simd/bit_repeat.html&#34;&gt;bit_repeat()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../../reference/simd/bit_compress.html&#34;&gt;bit_compress()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../../reference/simd/bit_expand.html&#34;&gt;bit_expand()&lt;/a&gt;&lt;/code&gt;関数と、未定義動作にならないシフト&lt;code&gt;&lt;a href=&#34;../../reference/simd/shl.html&#34;&gt;shl()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../../reference/simd/shr.html&#34;&gt;shr()&lt;/a&gt;&lt;/code&gt;関数を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/simd.html&#34;&gt;&amp;lt;simd&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_to_chars&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202606L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/charconv/to_chars.html&#34;&gt;std::to_chars()&lt;/a&gt;&lt;/code&gt;の浮動小数点数に対する既定表現を、値の範囲によって固定小数表記と指数表記を選択するよう変更&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/charconv.html&#34;&gt;&amp;lt;charconv&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;__cpp_lib_view_interface&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;202606L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/ranges/view_interface.html&#34;&gt;std::ranges::view_interface&lt;/a&gt;&lt;/code&gt;に、範囲チェックをともなって要素へアクセスする&lt;code&gt;&lt;a href=&#34;../../reference/ranges/view_interface/at.html&#34;&gt;at()&lt;/a&gt;&lt;/code&gt;メンバ関数を追加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;../../reference/ranges.html&#34;&gt;&amp;lt;ranges&amp;gt;&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;参照&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations&#34; target=&#34;_blank&#34;&gt;SD-FeatureTest: Feature-Test Macros and Policies - isocpp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3950r1.pdf&#34; target=&#34;_blank&#34;&gt;P3950R1 &lt;code&gt;return_value&lt;/code&gt; &amp;amp; &lt;code&gt;return_void&lt;/code&gt; Are Not Mutually Exclusive&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_impl_coroutine&lt;/code&gt;が&lt;code&gt;202606L&lt;/code&gt;に更新された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p4101r1.html&#34; target=&#34;_blank&#34;&gt;P4101R1 Consteval-only Values for C++26&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_consteval&lt;/code&gt;が&lt;code&gt;202606L&lt;/code&gt;に更新された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3540r3.html&#34; target=&#34;_blank&#34;&gt;P3540R3 &lt;code&gt;#embed&lt;/code&gt; offset parameter&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_pp_embed&lt;/code&gt;が&lt;code&gt;202606L&lt;/code&gt;に更新された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p2287r6.html&#34; target=&#34;_blank&#34;&gt;P2287R6 Designated-initializers for Base Classes&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_designated_initializers&lt;/code&gt;が&lt;code&gt;202606L&lt;/code&gt;に更新された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3733r1.html&#34; target=&#34;_blank&#34;&gt;P3733R1 More named universal character escapes&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_named_character_escapes&lt;/code&gt;が&lt;code&gt;202606L&lt;/code&gt;に更新された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3097r3.pdf&#34; target=&#34;_blank&#34;&gt;P3097R3 Contracts for C++: Virtual functions&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_contracts&lt;/code&gt;が&lt;code&gt;202606L&lt;/code&gt;に更新された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3822r2.html&#34; target=&#34;_blank&#34;&gt;P3822R2 Conditional noexcept specifiers in compound requirements&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_concepts&lt;/code&gt;が&lt;code&gt;202606L&lt;/code&gt;に更新された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3670r4.pdf&#34; target=&#34;_blank&#34;&gt;P3670R4 Pack Indexing for Template Names&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_pack_indexing&lt;/code&gt;が&lt;code&gt;202606L&lt;/code&gt;に更新された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3428r4.pdf&#34; target=&#34;_blank&#34;&gt;P3428R4 Hazard Pointer Batches&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_lib_hazard_pointer&lt;/code&gt;が&lt;code&gt;202606L&lt;/code&gt;に更新された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3319r6.pdf&#34; target=&#34;_blank&#34;&gt;P3319R6 Add an iota object for simd (and more)&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_lib_simd&lt;/code&gt;が&lt;code&gt;202606L&lt;/code&gt;に更新された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3772r2.html&#34; target=&#34;_blank&#34;&gt;P3772R2 std::simd overloads for bit permutations&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_lib_simd_bitops&lt;/code&gt;が追加された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3793r2.html&#34; target=&#34;_blank&#34;&gt;P3793R2 Better shifting&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_lib_simd_bitops&lt;/code&gt;が追加された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3505r4.html&#34; target=&#34;_blank&#34;&gt;P3505R4 Fix the default floating-point representation in &lt;code&gt;std::format&lt;/code&gt;&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_lib_to_chars&lt;/code&gt;が&lt;code&gt;202606L&lt;/code&gt;に更新された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3052r2.html&#34; target=&#34;_blank&#34;&gt;P3052R2 &lt;code&gt;view_interface::at()&lt;/code&gt;&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;C++29で&lt;code&gt;__cpp_lib_view_interface&lt;/code&gt;が追加された&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>コルーチンのpromise型でreturn_valueとreturn_voidの両方の宣言を許可 [P3950R1] -- C++29 : 「コルーチンのpromise型で`return_value`と`return_void`の両方の宣言を許可」を追加 (close #1686)</title>
      <link href="https://cpprefjp.github.io/lang/cpp29/return_value_and_return_void_are_not_mutually_exclusive.html"/>
      <id>00fc71857bd3f4e905d1bbcc91c2ff2a5cb14005:lang/cpp29/return_value_and_return_void_are_not_mutually_exclusive.md</id>
      <updated>2026-09-07T11:43:54+09:00</updated>
      
        <summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/lang/cpp29/return_value_and_return_void_are_not_mutually_exclusive.md b/lang/cpp29/return_value_and_return_void_are_not_mutually_exclusive.md
new file mode 100644
index 000000000..cbd18245f
--- /dev/null
+++ b/lang/cpp29/return_value_and_return_void_are_not_mutually_exclusive.md
@@ -0,0 +1,95 @@
+# コルーチンのpromise型で`return_value`と`return_void`の両方の宣言を許可 [P3950R1]
+* cpp29[meta cpp]
+
+&amp;lt;!-- start lang caution --&amp;gt;
+
+このページはC++29に採用された言語機能の変更を解説しています。
+
+のちのC++規格でさらに変更される場合があるため[関連項目](#relative-page)を参照してください。
+
+&amp;lt;!-- last lang caution --&amp;gt;
+
+## 概要
+C++29では、コルーチンのpromise型が`return_value`と`return_void`の両方のメンバ関数を宣言できるようになる。これによって、1つのコルーチンの本体に、値をともなう`co_return v;`と値をともなわない`co_return;`の両方の文を書けるようになる。
+
+```cpp
+task f(bool b) {
+  if (b) {
+    co_return 42;  // promise.return_value(42)の呼び出し
+  }
+  co_return;       // promise.return_void()の呼び出し
+}
+```
+
+C++26までは、promise型のスコープでの名前`return_void`と`return_value`の探索が両方とも宣言を見つけた場合、プログラムは不適格と規定されていた。この制限は名前の探索にもとづいていたため、両方の関数が同時にオーバーロード解決可能になることがないよう制約 (`requires`) を付けた宣言であっても、宣言が存在するだけで不適格となり、ジェネリックなpromise型の実装方法を不必要に制限していた。
+
+
+## 仕様
+- promise型が`return_value`と`return_void`の両方を宣言した場合にプログラムを不適格とする規定が削除される
+- コルーチン本体の終端到達の規定が、名前探索ではなくオーバーロード解決にもとづいて定義し直される
+    - `p.return_void()`のオーバーロード解決が成功する場合、コルーチン本体の終端到達はオペランドなしの`co_return`と等価である
+    - そうでない場合、コルーチン本体の終端到達は未定義動作である
+- 機能テストマクロ`__cpp_impl_coroutine`の値が`202606L`に更新される
+
+
+## 例
+```cpp
+#include &amp;lt;coroutine&amp;gt;
+#include &amp;lt;iostream&amp;gt;
+
+struct task {
+  struct promise_type {
+    task get_return_object() { return {}; }
+    std::suspend_never initial_suspend() { return {}; }
+    std::suspend_never final_suspend() noexcept { return {}; }
+    void unhandled_exception() {}
+
+    // C++26までは、この2つを同時に宣言するとプログラムが不適格だった
+    void return_void() {
+      std::cout &amp;lt;&amp;lt; &amp;#34;void&amp;#34; &amp;lt;&amp;lt; std::endl;
+    }
+    void return_value(int x) {
+      std::cout &amp;lt;&amp;lt; &amp;#34;value: &amp;#34; &amp;lt;&amp;lt; x &amp;lt;&amp;lt; std::endl;
+    }
+  };
+};
+
+task f(bool b) {
+  if (b) {
+    co_return 42;
+  }
+  co_return;
+}
+
+int main() {
+  f(true);
+  f(false);
+}
+```
+* std::suspend_never[link /reference/coroutine/suspend_never.md]
+
+このコードはC++29の規則のもとでは適格だが、2026年9月時点でこの変更を実装した処理系はない（GCC・Clang・MSVCのいずれも「promise型が`return_value`と`return_void`の両方を宣言している」というエラーになる）。
+
+### 出力
+```
+value: 42
+void
+```
+
+
+## この機能が必要になった背景・経緯
+`return_value`と`return_void`の同時宣言の禁止は、コルーチンが導入される前の初期の提案（N4499）から存在していた規定である。初期の設計にはコルーチンの「最終的な型 (eventual type)」という概念があり、戻り値の型を1つに定める必要があったが、この概念は最終的な仕様からは削除されており、禁止だけが残っていた。
+
+コルーチンの本体は通常の関数の本体とは異なり、promiseオブジェクトと対話するためのプロトコルへ書き換えられるものであるため、「関数の戻り値は1つの型で1通り」という通常の関数の性質に合わせる必然性はない。特にC++26で導入された[`std::execution`](/reference/execution.md)の完了シグネチャは、値をともなわない完了`set_value_t()`と値をともなう完了`set_value_t(T...)`の混在を表現できる。promise型はメンバ関数テンプレートによって複数の型の`co_return`を異なる完了シグネチャへ対応付けられるが、値をともなわない完了だけは`return_void`を宣言できないために特別なタグ型を受け取るといった回避策が必要で、コルーチンが`std::execution`の表現力に追いつけない状態だった。
+
+同じ目的の提案（P1713R0）は2019年のケルン会議で合意に至らなかったが、`std::execution`の採用という新しい状況を受けて本提案が再提案され、採択された。
+
+
+## &amp;lt;a id=&amp;#34;relative-page&amp;#34; href=&amp;#34;#relative-page&amp;#34;&amp;gt;関連項目&amp;lt;/a&amp;gt;
+- [C++20 コルーチン](/lang/cpp20/coroutines.md)
+
+
+## 参照
+- [P3950R1 `return_value` &amp;amp; `return_void` Are Not Mutually Exclusive](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3950r1.pdf)
+- [P1713R0 Allowing both `co_return;` and `co_return value;` in the same coroutine](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1713r0.pdf)
+    - 同じ目的の以前の提案。2019年のケルン会議で合意に至らなかった
&lt;/code&gt;&lt;/pre&gt;</summary>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
</feed>