<?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-07-01T04:14:45.173326</updated>
  <id>da5b29e1-86bb-4434-8cf5-c18206eaa106</id>

  
    <entry>
      <title>コンパイラの実装状況 -- C++23 : 「文字・文字列リテラル中の数値・ユニバーサルキャラクタのエスケープに関する問題解決」を追加 (close #1031)</title>
      <link href="https://cpprefjp.github.io/implementation-status.html"/>
      <id>8b9733eef729a01ce3c3b031403cfec3a62c6cd2:implementation-status.md</id>
      <updated>2026-07-01T13:09:46+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;/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 (Lnux/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;P1787R6: &lt;a href=&#34;lang/cpp23/declarations_and_where_to_find_them.md.nolink&#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;&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;&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.md.nolink&#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.md.nolink&#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/Format.html&#34; target=&#34;_blank&#34;&gt;libc++ Format 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;/div&gt;</content>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>char16_tとchar32_t [N2249] -- C++23 : 「文字・文字列リテラル中の数値・ユニバーサルキャラクタのエスケープに関する問題解決」を追加 (close #1031)</title>
      <link href="https://cpprefjp.github.io/lang/cpp11/char16_32.html"/>
      <id>8b9733eef729a01ce3c3b031403cfec3a62c6cd2:lang/cpp11/char16_32.md</id>
      <updated>2026-07-01T13:09:46+09:00</updated>
      
        <summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/lang/cpp11/char16_32.md b/lang/cpp11/char16_32.md
index 98fbcd9d3..780d3c100 100644
--- a/lang/cpp11/char16_32.md
+++ b/lang/cpp11/char16_32.md
@@ -142,6 +142,7 @@ int main()
 - [ostream `operator&amp;lt;&amp;lt;`](/reference/ostream/basic_ostream/op_ostream_free.md)
 - [C++23 名前付きユニバーサルキャラクタ名](/lang/cpp23/named_universal_character_escapes.md)
 - [C++23 エスケープシーケンスの区切り](/lang/cpp23/delimited_escape_sequences.md)
+- [C++26 文字・文字列リテラル中の数値・ユニバーサルキャラクタのエスケープに関する問題解決](/lang/cpp23/numeric_and_universal_character_escapes_in_character_and_string_literals.md)
 
 ## 参照
 - [WG14 N1040 Extensions for the programming language C to support new character data types](http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1040.pdf)
&lt;/code&gt;&lt;/pre&gt;</summary>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>C++23 -- C++23 : 「文字・文字列リテラル中の数値・ユニバーサルキャラクタのエスケープに関する問題解決」を追加 (close #1031)</title>
      <link href="https://cpprefjp.github.io/lang/cpp23.html"/>
      <id>8b9733eef729a01ce3c3b031403cfec3a62c6cd2:lang/cpp23.md</id>
      <updated>2026-07-01T13:09:46+09:00</updated>
      
        <content type="html">&lt;h1 itemprop=&#34;name&#34;&gt;&lt;span class=&#34;token&#34;&gt;C++23&lt;/span&gt;&lt;/h1&gt;
&lt;div itemprop=&#34;articleBody&#34;&gt;&lt;h2&gt;概要&lt;/h2&gt;
&lt;p&gt;C++23とは、2023年中に改訂され、ISO/IEC 14882:2024で標準規格化されたC++バージョンの通称である。&lt;/p&gt;
&lt;p&gt;このバージョンは、策定中のためC++2bと呼ばれることがある。「(C++20である2020年の次の) 202b年にリリースされる」という伏せ字として「b」が使われているが、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;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;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;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;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;これらに加えて、ライブラリ機能として拡張浮動小数点数型が定義された。&lt;code&gt;&lt;a href=&#34;../reference/stdfloat.html&#34;&gt;&amp;lt;stdfloat&amp;gt;&lt;/a&gt;&lt;/code&gt;を参照。&lt;/p&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;cpp23/declarations_and_where_to_find_them.md.nolink&#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;cpp23/meaningful_exports.html&#34;&gt;無意味なexport宣言を禁止する&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;いくつかの不必要な宣言に対するモジュールexportを禁止する&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;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;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;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;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;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;/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;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;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp23/make_declaration_order_layout_mandated.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;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;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;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;/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;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;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp23/delimited_escape_sequences.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;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;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;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;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp23/named_universal_character_escapes.html&#34;&gt;名前付きユニバーサルキャラクタ名&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;16進数のユニバーサルキャラクタだけでなく、その文字の名前を入力できるようにする&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;cpp23/generalized_wording_for_partial_specializations.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;cpp23/class_template_argument_deduction_from_inherited.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;code&gt;&lt;a href=&#34;cpp23/if_consteval.html&#34;&gt;if consteval&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;コンパイル時の文脈かどうかで分岐させる&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;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;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;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;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;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;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;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;code&gt;constexpr&lt;/code&gt;指定することを許可する&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;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;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;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;/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;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;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp23/attributes_on_lambda_expressions.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;cpp23/portable_assumptions.html&#34;&gt;コード内容の仮定をコンパイラに伝えるassume属性&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;cpp23/consistent_character_literal_encoding.html&#34;&gt;文字リテラルエンコーディングを一貫させる&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;プリプロセッサの条件式での文字リテラルの扱いをC++式と同様にする&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;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;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;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;/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;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;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;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;/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;cpp23/predefined_macros.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;cpp23/update_normative_reference_to_posix.html&#34;&gt;参照するPOSIX規格を更新&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;新しいPOSIX規格の機能を標準C++が参照していたため、参照するPOSIX規格のバージョンを更新&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;C++標準ライブラリ全体のモジュールとして&lt;code&gt;&lt;a href=&#34;../module/std.html&#34;&gt;std&lt;/a&gt;&lt;/code&gt;、C互換ライブラリ全体のモジュールとして&lt;code&gt;&lt;a href=&#34;../module/std.compat.html&#34;&gt;std.compat&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&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;/li&gt;
&lt;li&gt;CとC++の間でのアトミック操作の相互運用のため、C互換ライブラリとして&lt;code&gt;&lt;a href=&#34;../reference/stdatomic.h.html&#34;&gt;&amp;lt;stdatomic.h&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;外部から提供されるメモリバッファでストリーム処理を行うライブラリとして&lt;code&gt;&lt;a href=&#34;../reference/spanstream.html&#34;&gt;&amp;lt;spanstream&amp;gt;&lt;/a&gt;&lt;/code&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;/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;/li&gt;
&lt;li&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;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;/li&gt;
&lt;li&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;/li&gt;
&lt;li&gt;コルーチンによるRangeの生成をサポートする&lt;code&gt;&lt;a href=&#34;../reference/generator.html&#34;&gt;&amp;lt;generator&amp;gt;&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;拡張浮動小数点数のライブラリとして&lt;code&gt;&lt;a href=&#34;../reference/stdfloat.html&#34;&gt;&amp;lt;stdfloat&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/stack/stack.html&#34;&gt;std::stack&lt;/a&gt;&lt;/code&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;auto v = std::vector(v, alloc);&lt;/code&gt;のようなアロケータ引数をともなう場合のクラステンプレートのテンプレート引数推論が動作しなかったため、各コンテナクラスのコンストラクタにおけるアロケータパラメータの型を&lt;code&gt;const Allocator&amp;amp;&lt;/code&gt;から&lt;code&gt;const &lt;a href=&#34;../reference/type_traits/type_identity.html&#34;&gt;std::type_identity_t&lt;/a&gt;&amp;lt;Allocator&amp;gt;&amp;amp;&lt;/code&gt;に修正し、コンテナアダプタの推論補助の制約を修正&lt;/li&gt;
&lt;li&gt;N要素のメモリアロケート時にアロケータが実際にどれくらいのメモリを確保したかを得られるインタフェースとして、&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/allocator.html&#34;&gt;std::allocator&lt;/a&gt;&lt;/code&gt;クラスに、&lt;code&gt;&lt;a href=&#34;../reference/memory/allocator/allocate_at_least.html&#34;&gt;allocate_at_least()&lt;/a&gt;&lt;/code&gt;メンバ関数を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/allocator_traits.html&#34;&gt;std::allocator_traits&lt;/a&gt;&lt;/code&gt;クラスに、&lt;code&gt;&lt;a href=&#34;../reference/memory/allocator_traits/allocate_at_least.html&#34;&gt;allocate_at_least()&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/utility/pair.html&#34;&gt;std::pair&lt;/a&gt;&lt;/code&gt;の転送コンストラクタにデフォルトテンプレート引数を追加することで、&lt;code&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/erase.html&#34;&gt;std::map::erase()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/map/map/extract.html&#34;&gt;std::map::extract()&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.html&#34;&gt;&amp;lt;ranges&amp;gt;&lt;/a&gt;&lt;/code&gt;に、複数の範囲を綴じ合わせる&lt;code&gt;&lt;a href=&#34;../reference/ranges/zip_view.html&#34;&gt;std::views::zip&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&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/ranges/cartesian_product_view.html&#34;&gt;std::views::cartesian_product&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;Rangeから任意のコンテナに変換するRangeアダプタ&lt;code&gt;&lt;a href=&#34;../reference/ranges/to.html&#34;&gt;std::ranges::to()&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;Rangeから任意のコンテナに変換するために、可変長のコンテナ (&lt;code&gt;&lt;a href=&#34;../reference/array/array.html&#34;&gt;std::array&lt;/a&gt;&lt;/code&gt;以外) に、以下の機能を追加：&lt;ul&gt;
&lt;li&gt;Rangeから変換するコンストラクタ&lt;/li&gt;
&lt;li&gt;Rangeを挿入する&lt;code&gt;insert_range()&lt;/code&gt;メンバ関数&lt;/li&gt;
&lt;li&gt;Rangeを先頭に追加する&lt;code&gt;prepend_range()&lt;/code&gt;メンバ関数&lt;/li&gt;
&lt;li&gt;Rangeを末尾に追加する&lt;code&gt;append_range()&lt;/code&gt;メンバ関数&lt;/li&gt;
&lt;li&gt;Rangeを代入する&lt;code&gt;assign_range()&lt;/code&gt;メンバ関数&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ユーザー定義のRangeアダプタがパイプライン演算子 &lt;code&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/ranges/range_adaptor_closure.html&#34;&gt;std::ranges::range_adaptor_closure&lt;/a&gt;&lt;/code&gt;クラスを追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ranges.html&#34;&gt;&amp;lt;ranges&amp;gt;&lt;/a&gt;&lt;/code&gt;に、Rangeを連結させる&lt;code&gt;&lt;a href=&#34;../reference/ranges/join_with_view.html&#34;&gt;join_with&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;Rangeを指定の大きさで分割する&lt;code&gt;&lt;a href=&#34;../reference/ranges/chunk_view.html&#34;&gt;std::views::chunk&lt;/a&gt;&lt;/code&gt;と、Rangeを指定の大きさの隣接要素で分割する&lt;code&gt;&lt;a href=&#34;../reference/ranges/slide_view.html&#34;&gt;std::views::slide&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;Rangeを条件一致する間の要素で分割する&lt;code&gt;&lt;a href=&#34;../reference/ranges/chunk_by_view.html&#34;&gt;std::views::chunk_by&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ranges.html&#34;&gt;&amp;lt;ranges&amp;gt;&lt;/a&gt;&lt;/code&gt;に、Rangeを等間隔からなるRangeに変換する&lt;code&gt;&lt;a href=&#34;../reference/ranges/stride_view.html&#34;&gt;std::views::stride&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ranges.html&#34;&gt;&amp;lt;ranges&amp;gt;&lt;/a&gt;&lt;/code&gt;に、Rangeをムーブするための&lt;code&gt;&lt;a href=&#34;../reference/ranges/as_rvalue_view.html&#34;&gt;std::views::as_rvalue&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ranges.html&#34;&gt;&amp;lt;ranges&amp;gt;&lt;/a&gt;&lt;/code&gt;に、指定した値をN回繰り返すRangeを生成する&lt;code&gt;&lt;a href=&#34;../reference/ranges/repeat_view.html&#34;&gt;std::views::repeat&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/ranges.html&#34;&gt;&amp;lt;ranges&amp;gt;&lt;/a&gt;&lt;/code&gt;に、Rangeをインデックス付きでループさせる&lt;code&gt;&lt;a href=&#34;../reference/ranges/enumerate_view.html&#34;&gt;std::views::enumerate&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/algorithm.html&#34;&gt;&amp;lt;algorithm&amp;gt;&lt;/a&gt;&lt;/code&gt;に、範囲の先頭が指定した範囲と合致するかを判定する&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_starts_with.html&#34;&gt;std::ranges::starts_with()&lt;/a&gt;&lt;/code&gt;、範囲の末尾が指定した範囲と合致するかを判定する&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_ends_with.html&#34;&gt;std::ranges::ends_with()&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;に、要素を左シフトさせるRangeアルゴリズム&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_shift_left.html&#34;&gt;std::ranges::shift_left()&lt;/a&gt;&lt;/code&gt;、要素を右シフトさせるRangeアルゴリズム&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_shift_right.html&#34;&gt;std::ranges::shift_right()&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;ul&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/ranges_find_last_if.html&#34;&gt;std::ranges::find_last_if()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_find_last_if_not.html&#34;&gt;std::ranges::find_last_if_not()&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.html&#34;&gt;&amp;lt;algorithm&amp;gt;&lt;/a&gt;&lt;/code&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;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_contains_subrange.html&#34;&gt;std::ranges::contains_subrange&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;ul&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_left_first.html&#34;&gt;std::ranges::fold_left_first()&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_fold_right_last.html&#34;&gt;std::ranges::fold_right_last()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_fold_left_with_iter.html&#34;&gt;std::ranges::fold_left_with_iter()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/algorithm/ranges_fold_left_first_with_iter.html&#34;&gt;std::ranges::fold_left_first_with_iter()&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/numeric.html&#34;&gt;&amp;lt;numeric&amp;gt;&lt;/a&gt;&lt;/code&gt;に、連番を生成するRangeアルゴリズム&lt;code&gt;&lt;a href=&#34;../reference/numeric/ranges_iota.html&#34;&gt;std::ranges::iota()&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/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;contains()&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&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;std::string s = nullptr;&lt;/code&gt;のような文字列オブジェクトに&lt;code&gt;nullptr&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;&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/cstddef/nullptr_t.html&#34;&gt;nullptr_t&lt;/a&gt;&lt;/code&gt;をとるコンストラクタをdelete定義として追加&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;クラスに、resize時に任意の初期化を行う&lt;code&gt;&lt;a href=&#34;../reference/string/basic_string/resize_and_overwrite.html&#34;&gt;resize_and_overwrite()&lt;/a&gt;&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/basic_string/substr.html&#34;&gt;substr()&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;関数でRange・コンテナ、&lt;code&gt;&lt;a href=&#34;../reference/tuple/tuple.html&#34;&gt;std::tuple&lt;/a&gt;&lt;/code&gt;、&lt;code&gt;&lt;a href=&#34;../reference/utility/pair.html&#34;&gt;std::pair&lt;/a&gt;&lt;/code&gt;を出力できるよう、&lt;code&gt;&lt;a href=&#34;../reference/format/formatter.html&#34;&gt;std::formatter&lt;/a&gt;&lt;/code&gt;に特殊化を追加&lt;ul&gt;
&lt;li&gt;Range・シーケンスコンテナは&lt;code&gt;[1, 2, 3]&lt;/code&gt;、&lt;code&gt;[&#34;hello&#34;, &#34;world&#34;]&lt;/code&gt;、&lt;code&gt;[&#39;a&#39;, &#39;b&#39;, &#39;c&#39;]&lt;/code&gt;のように出力される&lt;/li&gt;
&lt;li&gt;連想コンテナの場合、&lt;code&gt;std::map&amp;lt;int, int&amp;gt;{{1, 2}, {3, 4}}&lt;/code&gt;は&lt;code&gt;{1: 2, 3: 4}&lt;/code&gt;のように出力され、&lt;code&gt;std::set&amp;lt;int&amp;gt;{1, 2, 3}&lt;/code&gt;は&lt;code&gt;{1, 2, 3}&lt;/code&gt;のように出力される&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/tuple/tuple.html&#34;&gt;std::tuple&lt;/a&gt;&lt;/code&gt;、&lt;code&gt;&lt;a href=&#34;../reference/utility/pair.html&#34;&gt;std::pair&lt;/a&gt;&lt;/code&gt;は&lt;code&gt;(1, 2)&lt;/code&gt;のように出力される&lt;/li&gt;
&lt;/ul&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;code&gt;&#34;?&#34;&lt;/code&gt;」を追加。これは文字・文字列を引用符で囲み、エスケープシーケンスをエスケープする&lt;ul&gt;
&lt;li&gt;ただし、Range・コンテナ中の文字・文字列はデフォルトでエスケープされる&lt;/li&gt;
&lt;li&gt;&lt;code&gt;format(&#34;{:?}&#34;, &#34;h\tello&#34;)&lt;/code&gt;は&lt;code&gt;&#34;h\tello&#34;&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/ostream/basic_ostream.html&#34;&gt;std::basic_ostream&lt;/a&gt;&lt;/code&gt;クラスの&lt;code&gt;&lt;a href=&#34;../reference/ostream/basic_ostream/op_ostream.html&#34;&gt;operator&amp;lt;&amp;lt;&lt;/a&gt;&lt;/code&gt;に、&lt;code&gt;const volatile void*&lt;/code&gt;をとるオーバーロードを追加&lt;/li&gt;
&lt;li&gt;ファイルを開く際のオプションとして、排他モードを表す&lt;code&gt;&lt;a href=&#34;../reference/ios/ios_base/type-openmode.html&#34;&gt;noreplace&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/functional/invoke.html&#34;&gt;std::invoke()&lt;/a&gt;&lt;/code&gt;の戻り値型を指定するバージョンである&lt;code&gt;&lt;a href=&#34;../reference/functional/invoke_r.html&#34;&gt;std::invoke_r()&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&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/move_only_function.html&#34;&gt;std::move_only_function&lt;/a&gt;&lt;/code&gt;クラスを追加&lt;/li&gt;
&lt;li&gt;ユーザー定義のRangeアダプタがパイプライン演算子 &lt;code&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;/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;に、レガシーC関数からスマートポインタへの直接出力をサポートする、スマートポインタアダプタ&lt;code&gt;&lt;a href=&#34;../reference/memory/out_ptr.html&#34;&gt;std::out_ptr&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/memory/inout_ptr.html&#34;&gt;std::inout_ptr&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/unique_ptr.html&#34;&gt;std::unique_ptr&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/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_as.html&#34;&gt;std::start_lifetime_as()&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/memory/start_lifetime_as_array.html&#34;&gt;std::start_lifetime_as_array()&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/bit/byteswap.html&#34;&gt;std::byteswap()&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/variant/visit.html&#34;&gt;std::visit()&lt;/a&gt;&lt;/code&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.html&#34;&gt;std::variant&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/to_underlying.html&#34;&gt;std::to_underlying()&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;const&lt;/code&gt;性と参照修飾で引数を転送する&lt;code&gt;&lt;a href=&#34;../reference/utility/forward_like.html&#34;&gt;std::forward_like()&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;クラスにモナド操作としてメンバ関数&lt;code&gt;&lt;a href=&#34;../reference/optional/optional/and_then.html&#34;&gt;and_then()&lt;/a&gt;&lt;/code&gt;、&lt;code&gt;&lt;a href=&#34;../reference/optional/optional/transform.html&#34;&gt;transform()&lt;/a&gt;&lt;/code&gt;、&lt;code&gt;&lt;a href=&#34;../reference/optional/optional/or_else.html&#34;&gt;or_else()&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;li&gt;到達しないパスであることを表明する関数&lt;code&gt;&lt;a href=&#34;../reference/utility/unreachable.html&#34;&gt;std::unreachable()&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;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/typeinfo/type_info.html&#34;&gt;std::type_info&lt;/a&gt;&lt;/code&gt;クラスの&lt;code&gt;&lt;a href=&#34;../reference/typeinfo/type_info/op_equal.html&#34;&gt;operator==&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/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_scoped_enum.html&#34;&gt;std::is_scoped_enum&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;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/type_traits/reference_constructs_from_temporary.html&#34;&gt;std::reference_constructs_from_temporary&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/type_traits/reference_converts_from_temporary.html&#34;&gt;std::reference_converts_from_temporary&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/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_implicit_lifetime.html&#34;&gt;std::is_implicit_lifetime&lt;/a&gt;&lt;/code&gt;を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;C互換ライブラリ&lt;/h3&gt;
&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/cmath.html&#34;&gt;&amp;lt;cmath&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/type_traits/aligned_storage.html&#34;&gt;std::aligned_storage&lt;/a&gt;&lt;/code&gt;と&lt;code&gt;&lt;a href=&#34;../reference/type_traits/aligned_union.html&#34;&gt;std::aligned_union&lt;/a&gt;&lt;/code&gt;を非推奨化。これらの機能は未定義動作を引き起こし、間違った保証が行われ、よくないAPI設計が行われていたため、非推奨とする&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/type_traits/aligned_storage.html&#34;&gt;std::aligned_storage&lt;/a&gt;&lt;/code&gt;の代わりに&lt;code&gt;alignas(T) &lt;a href=&#34;../reference/cstddef/byte.html&#34;&gt;std::byte&lt;/a&gt;[sizeof(T)];&lt;/code&gt;を使用することを推奨する&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/type_traits/aligned_union.html&#34;&gt;std::aligned_union&lt;/a&gt;&lt;/code&gt;の代わりに&lt;code&gt;alignas(Ts...) &lt;a href=&#34;../reference/cstddef/byte.html&#34;&gt;std::byte&lt;/a&gt;[&lt;a href=&#34;../reference/algorithm/max.html&#34;&gt;std::max&lt;/a&gt;({sizeof(Ts)...})];&lt;/code&gt;を使用することを推奨する&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&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;code&gt;&lt;a href=&#34;../reference/type_traits/true_type.html&#34;&gt;true_type&lt;/a&gt;&lt;/code&gt;となっている。状態をもつユーザー定義のアロケータ型でこのメンバ型の上書きを忘れることでバグが埋め込まれてしまっていたため誤用防止のために非推奨とする&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/limits.html&#34;&gt;&amp;lt;limits&amp;gt;&lt;/a&gt;&lt;/code&gt;の以下の非正規化数に関する機能を非推奨化。これらの機能は必ずしもコンパイル時に決まらない可能性のある値であり有用でないため、非推奨とする&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/limits/numeric_limits.html&#34;&gt;std::numeric_limits&lt;/a&gt;::&lt;a href=&#34;../reference/limits/numeric_limits/has_denorm.html&#34;&gt;has_denorm&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/limits/numeric_limits.html&#34;&gt;std::numeric_limits&lt;/a&gt;::&lt;a href=&#34;../reference/limits/numeric_limits/has_denorm_loss.html&#34;&gt;has_denorm_loss&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/limits/float_denorm_style.html&#34;&gt;std::float_denorm_style&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;ul&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/declare_reachable.html&#34;&gt;std::declare_reachable()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/undeclare_reachable.html&#34;&gt;std::undeclare_reachable()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/declare_no_pointers.html&#34;&gt;std::declare_no_pointers()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/undeclare_no_pointers.html&#34;&gt;std::undeclare_no_pointers()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/get_pointer_safety.html&#34;&gt;std::get_pointer_safety()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;a href=&#34;../reference/memory/pointer_safety.html&#34;&gt;std::pointer_safety&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;cpp11/predefined_macros.html&#34;&gt;&lt;code&gt;__STDCPP_STRICT_POINTER_SAFETY__&lt;/code&gt;マクロ&lt;/a&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;ul&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;/li&gt;
&lt;li&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;/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;/li&gt;
&lt;li&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;/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;&lt;/li&gt;
&lt;li&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;/li&gt;
&lt;li&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;/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>文字・文字列リテラル中の数値・ユニバーサルキャラクタのエスケープに関する問題解決 [P2029R4] -- C++23 : 「文字・文字列リテラル中の数値・ユニバーサルキャラクタのエスケープに関する問題解決」を追加 (close #1031)</title>
      <link href="https://cpprefjp.github.io/lang/cpp23/numeric_and_universal_character_escapes_in_character_and_string_literals.html"/>
      <id>8b9733eef729a01ce3c3b031403cfec3a62c6cd2:lang/cpp23/numeric_and_universal_character_escapes_in_character_and_string_literals.md</id>
      <updated>2026-07-01T13:09:46+09:00</updated>
      
        <summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/lang/cpp23/numeric_and_universal_character_escapes_in_character_and_string_literals.md b/lang/cpp23/numeric_and_universal_character_escapes_in_character_and_string_literals.md
new file mode 100644
index 000000000..22c23f56f
--- /dev/null
+++ b/lang/cpp23/numeric_and_universal_character_escapes_in_character_and_string_literals.md
@@ -0,0 +1,60 @@
+# 文字・文字列リテラル中の数値・ユニバーサルキャラクタのエスケープに関する問題解決 [P2029R4]
+* cpp23[meta cpp]
+
+&amp;lt;!-- start lang caution --&amp;gt;
+
+このページはC++23に採用された言語機能の変更を解説しています。
+
+のちのC++規格でさらに変更される場合があるため[関連項目](#relative-page)を参照してください。
+
+&amp;lt;!-- last lang caution --&amp;gt;
+
+## 概要
+文字リテラル・文字列リテラル中の数値エスケープ (8進エスケープ`\ooo`、16進エスケープ`\xhh`) およびユニバーサルキャラクタ名 (`\u`、`\U`) の仕様には、いくつかの曖昧さや欠陥があった。この変更は、それらをコア言語の問題を解決する。主な内容は以下：
+
+- 数値エスケープを`u8`/`u`/`U`文字リテラルでも使用できることを明確化する
+- 数値エスケープは、リテラルの文字エンコーディングへの変換対象とならず、コードユニットの値を直接指定する
+    - たとえば`u8&amp;#34;\xc3\x80&amp;#34;`は、2バイトのコードユニット列`0xC3, 0x80`をそのまま表す (`0xC3`や`0x80`を個別のコードポイントとみなしてUTF-8に再エンコードするわけではない)
+- 複数のコードユニットを必要とする文字は、文字リテラルには書けないが文字列リテラルには書けることを明確化する
+    - 文字リテラルにそのような文字を指定した場合は「非エンコード文字リテラル (non-encodable character literal) 」となり、条件付きサポートで型は`int`となる。
+- 範囲外の数値エスケープの動作を規定する
+    - 通常の文字・文字列リテラルおよびワイド文字・文字列リテラルにおいて、数値エスケープが指定する値がコードユニット型の表現範囲を超える場合、その値が対応する符号なし型の範囲に収まるなら整数変換と同様にコードユニットを初期化し、そうでなければ不適格とする
+
+これらの仕様はGCCやClangの既存の実装に沿ったものであり、主にMicrosoft Visual C++の`u8`リテラルにおける数値エスケープの扱いに影響する。
+
+
+## 例
+```cpp example
+#include &amp;lt;cstddef&amp;gt;
+
+int main()
+{
+  // u8文字列リテラル中の16進エスケープは、UTF-8のコードユニット値を直接指定する
+  // (ソースのコードポイントとして再エンコードされない)
+  constexpr const char8_t a[] = u8&amp;#34;\xc3\x80&amp;#34;; // バイト列 0xC3, 0x80
+  static_assert(sizeof(a) == 3);
+  static_assert(a[0] == 0xC3 &amp;amp;&amp;amp; a[1] == 0x80 &amp;amp;&amp;amp; a[2] == u8&amp;#39;\0&amp;#39;);
+
+  // これはU+00C0 (À) のUTF-8エンコーディングと一致する
+  constexpr const char8_t b[] = u8&amp;#34;À&amp;#34;;
+  static_assert(sizeof(b) == sizeof(a));
+  static_assert(b[0] == a[0] &amp;amp;&amp;amp; b[1] == a[1]);
+
+  // 16進・8進エスケープはu8/u/U文字リテラルでも使用できる
+  static_assert(u8&amp;#39;\x41&amp;#39; == u8&amp;#39;A&amp;#39;);
+}
+```
+
+### 出力
+```
+```
+
+
+## &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++23 名前付きユニバーサルキャラクタ名](named_universal_character_escapes.md)
+- [C++11 `char16_t`と`char32_t`](/lang/cpp11/char16_32.md)
+
+
+## 参照
+- [P2029R4 Proposed resolution for core issues 411, 1656, and 2333; numeric and universal character escapes in character and string literals](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2029r4.html)
+    - CWG 411、CWG 1656、CWG 2333を解決するものとして、数値エスケープとユニバーサルキャラクタ名の仕様を整理した
&lt;/code&gt;&lt;/pre&gt;</summary>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>コンパイラの実装状況 -- C++26 : 「テンプレートテンプレートパラメータに対するクラステンプレートパラメータ引数推論」を追加 (close #1626)</title>
      <link href="https://cpprefjp.github.io/implementation-status.html"/>
      <id>8a7bf3872290d39782721687010245dd5cba262c:implementation-status.md</id>
      <updated>2026-06-29T13:56:43+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;/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 (Lnux/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;P1787R6: &lt;a href=&#34;lang/cpp23/declarations_and_where_to_find_them.md.nolink&#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.md.nolink&#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;&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;&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.md.nolink&#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.md.nolink&#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/Format.html&#34; target=&#34;_blank&#34;&gt;libc++ Format 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;/div&gt;</content>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>クラステンプレートのテンプレート引数推論 [P0091R3] -- C++26 : 「テンプレートテンプレートパラメータに対するクラステンプレートパラメータ引数推論」を追加 (close #1626)</title>
      <link href="https://cpprefjp.github.io/lang/cpp17/type_deduction_for_class_templates.html"/>
      <id>8a7bf3872290d39782721687010245dd5cba262c:lang/cpp17/type_deduction_for_class_templates.md</id>
      <updated>2026-06-29T13:56:43+09:00</updated>
      
        <summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/lang/cpp17/type_deduction_for_class_templates.md b/lang/cpp17/type_deduction_for_class_templates.md
index 58b994566..2c46132c1 100644
--- a/lang/cpp17/type_deduction_for_class_templates.md
+++ b/lang/cpp17/type_deduction_for_class_templates.md
@@ -291,6 +291,7 @@ int main()
 - [C++20 集成体クラステンプレートのテンプレート引数推論](/lang/cpp20/class_template_argument_deduction_for_aggregates.md)
 - [C++20 エイリアステンプレート経由でのクラステンプレートのテンプレート引数推論](/lang/cpp20/class_template_argument_deduction_for_alias_templates.md)
 - [C++23 継承コンストラクタからのクラステンプレート引数の推論](/lang/cpp23/class_template_argument_deduction_from_inherited.md)
+- [C++26 テンプレートテンプレートパラメータに対するクラステンプレートパラメータ引数推論](/lang/cpp26/class_template_argument_deduction_for_type_template_template_parameters.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 : 「テンプレートテンプレートパラメータに対するクラステンプレートパラメータ引数推論」を追加 (close #1626)</title>
      <link href="https://cpprefjp.github.io/lang/cpp26.html"/>
      <id>8a7bf3872290d39782721687010245dd5cba262c:lang/cpp26.md</id>
      <updated>2026-06-29T13:56:43+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.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;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/clarifying_placement_new_deallocation.md.nolink&#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.md.nolink&#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.md.nolink&#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.md.nolink&#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.md.nolink&#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/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/system_encoded_string.html&#34;&gt;system_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_system_encoded_string.html&#34;&gt;generic_system_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;std::monostate&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/system_encoded_string.html&#34;&gt;system_encoded_string()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/filesystem/path/generic_system_encoded_string.html&#34;&gt;generic_system_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>テンプレートテンプレートパラメータに対するクラステンプレートパラメータ引数推論 [P3865R3] -- C++26 : 「テンプレートテンプレートパラメータに対するクラステンプレートパラメータ引数推論」を追加 (close #1626)</title>
      <link href="https://cpprefjp.github.io/lang/cpp26/class_template_argument_deduction_for_type_template_template_parameters.html"/>
      <id>8a7bf3872290d39782721687010245dd5cba262c:lang/cpp26/class_template_argument_deduction_for_type_template_template_parameters.md</id>
      <updated>2026-06-29T13:56:43+09:00</updated>
      
        <summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/lang/cpp26/class_template_argument_deduction_for_type_template_template_parameters.md b/lang/cpp26/class_template_argument_deduction_for_type_template_template_parameters.md
new file mode 100644
index 000000000..34298245c
--- /dev/null
+++ b/lang/cpp26/class_template_argument_deduction_for_type_template_template_parameters.md
@@ -0,0 +1,84 @@
+# テンプレートテンプレートパラメータに対するクラステンプレートパラメータ引数推論 [P3865R3]
+* cpp26[meta cpp]
+
+&amp;lt;!-- start lang caution --&amp;gt;
+
+このページはC++26に採用される見込みの言語機能の変更を解説しています。
+
+のちのC++規格でさらに変更される場合があるため[関連項目](#relative-page)を参照してください。
+
+&amp;lt;!-- last lang caution --&amp;gt;
+
+## 概要
+クラステンプレートのテンプレート引数推論 (CTAD, class template argument deduction) を、テンプレートテンプレートパラメータでも使用できるようにする。
+
+C++23までは、テンプレートテンプレートパラメータに対してテンプレート引数推論を行えるかが規格上は規定されていなかった。実際にはC++23の[`std::ranges::to()`](/reference/ranges/to.md)関数がこの機能に依存しており、すべての主要なコンパイラもテンプレートテンプレートパラメータのテンプレート引数推論を行えるよう実装されていた。C++26では、これを欠陥報告 (DR) として修正し、テンプレートテンプレートパラメータに対するクラステンプレートのテンプレート引数推論を正式に許可する。欠陥扱いであったため、この機能はC++23時点で使用できることが期待できる。
+
+```cpp
+template &amp;lt;typename T&amp;gt;
+struct C {
+  C(T);
+};
+
+template &amp;lt;template &amp;lt;typename&amp;gt; class X&amp;gt;
+void f()
+{
+  X x(1); // xの型はC&amp;lt;int&amp;gt;と推論される
+}
+
+template void f&amp;lt;C&amp;gt;();
+```
+
+
+## 仕様
+テンプレートテンプレートパラメータに対するプレースホルダーの推論は、そのテンプレートテンプレートパラメータを、同じテンプレートパラメータをもつ「テンプレートテンプレート引数を表すエイリアステンプレート」に置き換えたものとして行われる。
+
+これはエイリアステンプレートに対するCTADと同じ仕組みであり、単純にテンプレートテンプレート引数を代入する方式とは異なる。この方式によって、以下の2点が保証される。
+
+- テンプレートテンプレートパラメータに指定されたデフォルトテンプレート引数が尊重される
+- テンプレートテンプレートパラメータの名前では書けない型は推論されない (不適格となる)
+
+### テンプレートテンプレートパラメータの名前で書けない型は推論されない
+```cpp
+template &amp;lt;typename... T&amp;gt;
+struct C {
+  C(T...);
+};
+
+template &amp;lt;template &amp;lt;typename&amp;gt; class X&amp;gt;
+void f()
+{
+  X x1{1};    // OK: C&amp;lt;int&amp;gt;と推論される
+  X x2{1, 2}; // エラー: C&amp;lt;int, int&amp;gt;はXの名前では書けないため、推論に失敗する
+}
+
+template void f&amp;lt;C&amp;gt;();
+```
+
+`X`は型パラメータを1つだけとるため、`C&amp;lt;int, int&amp;gt;`のような型は`X`の名前では表現できない。そのため`x2`の推論は不適格となる。これはエイリアステンプレートに対するCTADと同様の「推論可能性 (deducible) 」の制約による。
+
+
+### デフォルトテンプレート引数が尊重される
+```cpp
+template &amp;lt;typename T = int&amp;gt;
+struct C {
+  C(int);
+};
+
+template &amp;lt;template &amp;lt;typename = long&amp;gt; class X&amp;gt;
+void f()
+{
+  X x{1}; // xの型はC&amp;lt;long&amp;gt;と推論される (Xのデフォルト引数longが使われる)
+}
+
+template void f&amp;lt;C&amp;gt;();
+```
+
+
+## &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++17 クラステンプレートのテンプレート引数推論](/lang/cpp17/type_deduction_for_class_templates.md)
+- [`std::ranges::to`](/reference/ranges/to.md)
+
+
+## 参照
+- [P3865R3 Class template argument deduction (CTAD) for type template template parameters](https://open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3865r3.pdf)
&lt;/code&gt;&lt;/pre&gt;</summary>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>コンパイラの実装状況 -- C++26 : 「#lineディレクティブの制約を現実の実装に合わせて緩和する」を追加 (close #1624)</title>
      <link href="https://cpprefjp.github.io/implementation-status.html"/>
      <id>fa9799831290ba062f97e7e85646ce47e1b98e91:implementation-status.md</id>
      <updated>2026-06-25T15:15:02+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;/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 (Lnux/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;P1787R6: &lt;a href=&#34;lang/cpp23/declarations_and_where_to_find_them.md.nolink&#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.md.nolink&#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;&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;&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.md.nolink&#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.md.nolink&#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.md.nolink&#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/Format.html&#34; target=&#34;_blank&#34;&gt;libc++ Format 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;/div&gt;</content>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>C++26 -- C++26 : 「#lineディレクティブの制約を現実の実装に合わせて緩和する」を追加 (close #1624)</title>
      <link href="https://cpprefjp.github.io/lang/cpp26.html"/>
      <id>fa9799831290ba062f97e7e85646ce47e1b98e91:lang/cpp26.md</id>
      <updated>2026-06-25T15:15:02+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.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;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&#34;cpp26/clarifying_placement_new_deallocation.md.nolink&#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.md.nolink&#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.md.nolink&#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.md.nolink&#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.md.nolink&#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.md.nolink&#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/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/system_encoded_string.html&#34;&gt;system_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_system_encoded_string.html&#34;&gt;generic_system_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;std::monostate&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/system_encoded_string.html&#34;&gt;system_encoded_string()&lt;/a&gt;&lt;/code&gt;・&lt;code&gt;&lt;a href=&#34;../reference/filesystem/path/generic_system_encoded_string.html&#34;&gt;generic_system_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>#lineディレクティブの制約を現実の実装に合わせて緩和する [P4136R2] -- C++26 : 「#lineディレクティブの制約を現実の実装に合わせて緩和する」を追加 (close #1624)</title>
      <link href="https://cpprefjp.github.io/lang/cpp26/line_is_not_in_line_with_existing_implementation.html"/>
      <id>fa9799831290ba062f97e7e85646ce47e1b98e91:lang/cpp26/line_is_not_in_line_with_existing_implementation.md</id>
      <updated>2026-06-25T15:15:02+09:00</updated>
      
        <summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/lang/cpp26/line_is_not_in_line_with_existing_implementation.md b/lang/cpp26/line_is_not_in_line_with_existing_implementation.md
new file mode 100644
index 000000000..171b69344
--- /dev/null
+++ b/lang/cpp26/line_is_not_in_line_with_existing_implementation.md
@@ -0,0 +1,39 @@
+# `#line`ディレクティブの制約を現実の実装に合わせて緩和する [P4136R2]
+* cpp26[meta cpp]
+
+&amp;lt;!-- start lang caution --&amp;gt;
+
+このページはC++26に採用される見込みの言語機能の変更を解説しています。
+
+のちのC++規格でさらに変更される場合があるため[関連項目](#relative-page)を参照してください。
+
+&amp;lt;!-- last lang caution --&amp;gt;
+
+## 概要
+`#line`ディレクティブは、後続のソース行の行番号を指定する。
+
+```cpp
+#line 100 &amp;#34;foo.cpp&amp;#34;
+// 以降の行は、ファイル名&amp;#34;foo.cpp&amp;#34;の100行目から始まるものとして扱われる
+```
+
+C++26より前までは、行番号として`0`もしくは`2147483647`より大きい値を指定することが不適格と規定されていたが、これは現実の実装の振る舞いと合致していなかった。
+
+C++26では、`[1, 2147483647]`の範囲外の行番号指定を、不適格ではなく「条件付きサポート (conditionally-supported)」とする。条件付きサポートとは、その指定を実装がサポートするかどうかが実装定義であり、サポートしない場合は診断 (コンパイルエラー) が必要となる、ことを意味する。
+
+```cpp
+#line 0          // 条件付きサポート (C++26より前では不適格)
+#line 2147483648 // 条件付きサポート (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 プリプロセッサ仕様での「未定義動作」を不適格 (診断不要) に変更](preprocessing_is_never_undefined.md)
+- [C++26 モジュール宣言より前での`#line`ディレクティブの使用を許可する](allow_line_before_module_declarations.md)
+
+
+## 参照
+- [P2843R3 Preprocessing is never undefined](https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p2843r3.pdf)
+- [P4136R2 `#line` is not in line with existing implementation](https://open-std.org/jtc1/sc22/wg21/docs/papers/2026/p4136r2.pdf)
&lt;/code&gt;&lt;/pre&gt;</summary>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>プリプロセッサ仕様での「未定義動作」を不適格 (診断不要) に変更 [P2843R3] -- C++26 : 「#lineディレクティブの制約を現実の実装に合わせて緩和する」を追加 (close #1624)</title>
      <link href="https://cpprefjp.github.io/lang/cpp26/preprocessing_is_never_undefined.html"/>
      <id>fa9799831290ba062f97e7e85646ce47e1b98e91:lang/cpp26/preprocessing_is_never_undefined.md</id>
      <updated>2026-06-25T15:15:02+09:00</updated>
      
        <content type="html">&lt;h1 itemprop=&#34;name&#34;&gt;&lt;span class=&#34;token&#34;&gt;プリプロセッサ仕様での「未定義動作」を不適格 (診断不要) に変更 [P2843R3]&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;p&gt;C++26では、プリプロセッサおよびレキサーの仕様において「未定義動作 (undefined behavior)」と規定されていたすべてのケースを「&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;、診断不要 (ill-formed, no diagnostic required; IFNDR)」に変更する。&lt;/p&gt;
&lt;p&gt;さらに、各ケースを個別に分析し、多くのケースで診断 (コンパイルエラー) を要求するか、適格なプログラムとして受理するよう仕様を改善する。&lt;/p&gt;
&lt;p&gt;未定義動作は本来、適格なプログラムの実行時の動作に対する概念である。プリプロセッサはソースコードをコンパイル前に変換する処理であり、実行時の動作ではないため、「未定義動作」という用語は不適切であった。&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt; (診断不要) への変更は、コンパイラの振る舞いを実質的に変えるものではないが、仕様の正確性を向上させる。&lt;/p&gt;
&lt;h2&gt;変更の対象&lt;/h2&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;C++23までの規定&lt;/th&gt;
&lt;th&gt;C++26での変更&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;defined&lt;/code&gt;演算子のマクロ展開による生成&lt;/td&gt;
&lt;td&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;code&gt;#include&lt;/code&gt;ディレクティブのマクロ展開後の不正な形式&lt;/td&gt;
&lt;td&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;/td&gt;
&lt;td&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;code&gt;#&lt;/code&gt;演算子の結果が不正な文字列リテラル&lt;/td&gt;
&lt;td&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;code&gt;##&lt;/code&gt;演算子の結果が不正なプリプロセッシングトークン&lt;/td&gt;
&lt;td&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;code&gt;#line&lt;/code&gt;ディレクティブの範囲外の値 (0や2147483647超)&lt;/td&gt;
&lt;td&gt;未定義動作&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;line_is_not_in_line_with_existing_implementation.html&#34;&gt;条件付きサポート&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;定義済みマクロ名の&lt;code&gt;#define&lt;/code&gt;/&lt;code&gt;#undef&lt;/code&gt;&lt;/td&gt;
&lt;td&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;code&gt;#define&lt;/code&gt;&lt;/td&gt;
&lt;td&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;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;「&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt; (診断不要)」は、そのプログラムが規格に適合しないことを意味するが、コンパイラが診断メッセージ (エラーや警告) を出す義務はない。「&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;」は、コンパイラが診断メッセージを出す義務がある。&lt;/p&gt;
&lt;h2&gt;参照&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p2843r3.pdf&#34; target=&#34;_blank&#34;&gt;P2843R3 Preprocessing is never undefined&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://open-std.org/jtc1/sc22/wg21/docs/papers/2026/p4136r2.pdf&#34; target=&#34;_blank&#34;&gt;P4136R2 &lt;code&gt;#line&lt;/code&gt; is not in line with existing implementation&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;本提案で&lt;a class=&#34;cpprefjp-defined-word&#34;&gt;不適格&lt;/a&gt;に変更した&lt;code&gt;#line&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>機能テストマクロ -- function_ref : 二重の間接呼び出しを回避する仕様変更に対応 (close #1636)</title>
      <link href="https://cpprefjp.github.io/lang/cpp26/feature_test_macros.html"/>
      <id>c5bbec933ed52bf8edc7e5a9493971f1857a0b4c:lang/cpp26/feature_test_macros.md</id>
      <updated>2026-06-24T11:55:06+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;202502L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;trivial_unions.html&#34;&gt;共用体の特殊メンバ関数のトリビアル化&lt;/a&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;202506L&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;/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;/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;/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_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.md.nolink&#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.md.nolink&#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.md.nolink&#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.md.nolink&#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;202412L&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;__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;202506L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;データ並列ライブラリとして、&lt;code&gt;&lt;a href=&#34;../../reference/simd.md.nolink&#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.md.nolink&#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.md.nolink&#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.md.nolink&#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.md.nolink&#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.md.nolink&#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_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;202411L&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;/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;/ul&gt;&lt;/div&gt;</content>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>function_ref -- function_ref : 二重の間接呼び出しを回避する仕様変更に対応 (close #1636)</title>
      <link href="https://cpprefjp.github.io/reference/functional/function_ref.html"/>
      <id>c5bbec933ed52bf8edc7e5a9493971f1857a0b4c:reference/functional/function_ref.md</id>
      <updated>2026-06-24T11:55:06+09:00</updated>
      
        <summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/reference/functional/function_ref.md b/reference/functional/function_ref.md
index 76f7db38d..756c1b93f 100644
--- a/reference/functional/function_ref.md
+++ b/reference/functional/function_ref.md
@@ -119,3 +119,5 @@ int main()
 ## 参照
 - [P0792R14 `function_ref`: a type-erased callable reference](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p0792r14.html)
 - [P3774R1 Rename `std::nontype`, and make it broadly useful](https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3774r1.html)
+- [P3961R1 Less double indirection in `function_ref` (RU-220)](https://open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3961r1.html)
+    - 別の`function_ref`から構築する際の二重の間接呼び出しを回避するよう、コンストラクタと代入演算子の仕様を変更した
&lt;/code&gt;&lt;/pre&gt;</summary>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>operator= -- function_ref : 二重の間接呼び出しを回避する仕様変更に対応 (close #1636)</title>
      <link href="https://cpprefjp.github.io/reference/functional/function_ref/op_assign.html"/>
      <id>c5bbec933ed52bf8edc7e5a9493971f1857a0b4c:reference/functional/function_ref/op_assign.md</id>
      <updated>2026-06-24T11:55:06+09:00</updated>
      
        <summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/reference/functional/function_ref/op_assign.md b/reference/functional/function_ref/op_assign.md
index 089778da8..57250a84e 100644
--- a/reference/functional/function_ref/op_assign.md
+++ b/reference/functional/function_ref/op_assign.md
@@ -18,6 +18,7 @@ template&amp;lt;class T&amp;gt; function_ref&amp;amp; operator=(T) = delete; // (2)
 ## テンプレートパラメータ制約
 - (2) : 以下の制約をみたすとき、代入演算子はdelete宣言される
     - `T`が`function_ref`と同一型ではなく、かつ
+    - 説明専用の`is-convertible-from-specialization&amp;lt;T&amp;gt;`（[コンストラクタ](op_constructor.md)を参照）が`false`であり、かつ
     - [`is_pointer_v`](/reference/type_traits/is_pointer.md)`&amp;lt;T&amp;gt;`が`false`であり、かつ
     - `T`が[`constant_arg_t`](/reference/utility/constant_arg_t.md)の特殊化でないこと
 
@@ -73,3 +74,5 @@ int main()
 ## 参照
 - [P0792R14 `function_ref`: a type-erased callable reference](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p0792r14.html)
 - [P3774R1 Rename `std::nontype`, and make it broadly useful](https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3774r1.html)
+- [P3961R1 Less double indirection in `function_ref` (RU-220)](https://open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3961r1.html)
+    - delete宣言される代入演算子(2)の制約に、説明専用の`is-convertible-from-specialization`の条件を追加した
&lt;/code&gt;&lt;/pre&gt;</summary>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>コンストラクタ -- function_ref : 二重の間接呼び出しを回避する仕様変更に対応 (close #1636)</title>
      <link href="https://cpprefjp.github.io/reference/functional/function_ref/op_constructor.html"/>
      <id>c5bbec933ed52bf8edc7e5a9493971f1857a0b4c:reference/functional/function_ref/op_constructor.md</id>
      <updated>2026-06-24T11:55:06+09:00</updated>
      
        <summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/reference/functional/function_ref/op_constructor.md b/reference/functional/function_ref/op_constructor.md
index 55801d20d..c7ffd3349 100644
--- a/reference/functional/function_ref/op_constructor.md
+++ b/reference/functional/function_ref/op_constructor.md
@@ -32,6 +32,16 @@ constexpr function_ref(const function_ref&amp;amp;) noexcept = default;  // (6)
 
 `function_ref`オブジェクトは、説明専用のメンバ変数`thunk-ptr`と`bound-entity`を保持する。
 
+また、説明専用の変数テンプレート`is-convertible-from-specialization&amp;lt;F&amp;gt;`を次のように定義する。型`F`が、あるCV修飾 *cv2* とnoexcept例外指定 *noex2* に対する`function_ref&amp;lt;R(Args...) /*cv2*/ noexcept(/*noex2*/)&amp;gt;`の特殊化を表す場合、`is-convertible-from-specialization&amp;lt;F&amp;gt;`は次の値と等しい :
+
+```cpp
+is_convertible_v&amp;lt;R(&amp;amp;)(Args...) noexcept(/*noex2*/), R(&amp;amp;)(Args...) noexcept(/*noex*/)&amp;gt; &amp;amp;&amp;amp;
+is_convertible_v&amp;lt;int /*cv*/&amp;amp;, int /*cv2*/&amp;amp;&amp;gt;
+```
+* is_convertible_v[link /reference/type_traits/is_convertible.md]
+
+そうでない場合、`is-convertible-from-specialization&amp;lt;F&amp;gt;`は`false`である。
+
 
 ## テンプレートパラメータ制約
 `function_ref`クラステンプレートパラメータのCV修飾子 *cv* に応じて
@@ -63,8 +73,9 @@ constexpr function_ref(const function_ref&amp;amp;) noexcept = default;  // (6)
 
 - (1) : `bound-entity`を`f`で、`thunk-ptr`を説明専用の関数`thunk`へのアドレスで初期化する。
     - [関数呼び出し`thunk(bound-entity, call-args...)`](op_call.md)は[`invoke_r`](/reference/functional/invoke_r.md)`&amp;lt;R&amp;gt;(f, call-args...)`と等価。
-- (2) : `bound-entity`を[`addressof`](/reference/memory/addressof.md)`(f)`で、`thunk-ptr`を説明専用の関数`thunk`へのアドレスで初期化する。
+- (2) : `is-convertible-from-specialization&amp;lt;`[`remove_cv_t`](/reference/type_traits/remove_cv.md)`&amp;lt;T&amp;gt;&amp;gt;`が`false`の場合、`bound-entity`を[`addressof`](/reference/memory/addressof.md)`(f)`で、`thunk-ptr`を説明専用の関数`thunk`へのアドレスで初期化する。
     - [関数呼び出し`thunk(bound-entity, call-args...)`](op_call.md)は[`invoke_r`](/reference/functional/invoke_r.md)`&amp;lt;R&amp;gt;(static_cast&amp;lt;/*cv*/ T&amp;amp;&amp;gt;(f), call-args...)`と等価。
+    - `is-convertible-from-specialization&amp;lt;`[`remove_cv_t`](/reference/type_traits/remove_cv.md)`&amp;lt;T&amp;gt;&amp;gt;`が`true`の場合（`f`が互換するシグニチャ・CV修飾をもつ`function_ref`の特殊化であるとき）、`bound-entity`を`f`の`bound-entity`の値で、`thunk-ptr`を`f`の`thunk-ptr`の値で初期化する。これにより、`function_ref`から別の`function_ref`を構築する際に、本来不要な二重の間接呼び出しが回避される。
 - (3) : `bound-entity`を未規定オブジェクトへのポインタまたはヌルポインタで、`thunk-ptr`を説明専用の関数`thunk`へのアドレスで初期化する。
     - [関数呼び出し`thunk(bound-entity, call-args...)`](op_call.md)は[`invoke_r`](/reference/functional/invoke_r.md)`&amp;lt;R&amp;gt;(f, call-args...)`と等価。
 - (4) : `bound-entity`を[`addressof`](/reference/memory/addressof.md)`(obj)`で、`thunk-ptr`を説明専用の関数`thunk`へのアドレスで初期化する。
@@ -160,3 +171,5 @@ int main()
 ## 参照
 - [P0792R14 `function_ref`: a type-erased callable reference](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p0792r14.html)
 - [P3774R1 Rename `std::nontype`, and make it broadly useful](https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3774r1.html)
+- [P3961R1 Less double indirection in `function_ref` (RU-220)](https://open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3961r1.html)
+    - 別の`function_ref`から構築する際の二重の間接呼び出しを回避するため、説明専用の`is-convertible-from-specialization`を追加し、(2)のコンストラクタの効果を変更した
&lt;/code&gt;&lt;/pre&gt;</summary>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
    <entry>
      <title>indirect -- indirect : pImplイディオムへの言及・サンプルコードを追加</title>
      <link href="https://cpprefjp.github.io/reference/memory/indirect.html"/>
      <id>224ccb4fb1682908d79483c4bffdbbe527b931ab:reference/memory/indirect.md</id>
      <updated>2026-06-24T11:35:51+09:00</updated>
      
        <summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/reference/memory/indirect.md b/reference/memory/indirect.md
index 50bd4fd58..554671804 100644
--- a/reference/memory/indirect.md
+++ b/reference/memory/indirect.md
@@ -31,6 +31,8 @@ namespace std {
 
 これらの性質によって、`std::indirect`クラスのオブジェクトはクラスのメンバとして保持するのに適しており、コンパイラによる特殊メンバ関数の自動生成と協調して動作する。
 
+とくに、pImplイディオム（実装クラスへのポインタをメンバとしてもち、実装詳細をヘッダから隠蔽してソースファイル側で行う手法）の実装に適している。実装クラスを不完全型のまま`std::indirect`型でメンバ変数として保持すると、生のポインタや[`std::unique_ptr`](unique_ptr.md)で実装した場合とは異なり、値のコピー（実装クラスのディープコピー）と`const`の伝播がともに自動的に正しく行われる。
+
 所有オブジェクトを持たない状態を「無効値状態 (valueless state)」と呼ぶ。`std::indirect`オブジェクトが無効値状態になるのは、ムーブ後に空となった場合のみである。無効値状態のオブジェクトに対する`operator*`や`operator-&amp;gt;`の呼び出しは未定義動作を引き起こす。無効値状態かどうかは[`valueless_after_move()`](indirect/valueless_after_move.md)メンバ関数で判定できる。
 
 派生型のオブジェクトを多態的に保持したい場合は、[`std::polymorphic`](polymorphic.md)クラスを使用する。
@@ -116,6 +118,7 @@ namespace std {
 
 
 ## 例
+### 基本的な使い方
 ```cpp example
 #include &amp;lt;cassert&amp;gt;
 #include &amp;lt;memory&amp;gt;
@@ -143,6 +146,53 @@ int main()
 ```
 ```
 
+### pImplイディオムでの使用
+実装クラスを不完全型のまま`std::indirect`で保持することで、値の意味論をもつpImplを簡潔に実装できる。コピー・ムーブ・デストラクタはコンパイラが生成し、`const`メンバ関数からは実装クラスにも`const`が伝播する。
+
+```cpp example
+#include &amp;lt;cassert&amp;gt;
+#include &amp;lt;memory&amp;gt;
+
+// ヘッダ相当: 実装クラスImplは前方宣言のみ（不完全型）
+class Widget {
+  class Impl;
+  std::indirect&amp;lt;Impl&amp;gt; impl_;
+public:
+  Widget(int x);
+  int value() const;
+  void set(int x);
+  // コピー・ムーブ・デストラクタはコンパイラが生成する
+};
+
+// 実装相当: ここでImplが完全型になる
+class Widget::Impl {
+public:
+  int v;
+  Impl(int x) : v(x) {}
+};
+
+Widget::Widget(int x) : impl_{std::in_place, x} {}
+int Widget::value() const { return impl_-&amp;gt;v; } // constが伝播する
+void Widget::set(int x) { impl_-&amp;gt;v = x; }
+
+int main()
+{
+  Widget a{42};
+  assert(a.value() == 42);
+
+  Widget b = a;            // 値のコピー（Implがディープコピーされる）
+  b.set(10);
+  assert(a.value() == 42); // aは影響を受けない
+  assert(b.value() == 10);
+}
+```
+* std::indirect[color ff0000]
+* std::in_place[link /reference/utility/in_place_t.md]
+
+### 出力
+```
+```
+
 
 ## バージョン
 ### 言語
&lt;/code&gt;&lt;/pre&gt;</summary>
      
      <author>
        <name>Akira Takahashi</name>
        <email>faithandbrave@gmail.com</email>
      </author>
    </entry>
  
</feed>