164164
165165 < p class ="text-right "> < small >
166166 最終更新日時(UTC):
167- < span itemprop ="datePublished " content ="2026-05-14T07 :32:57 ">
168- 2026年05月14日 07時32分57秒
167+ < span itemprop ="datePublished " content ="2026-05-26T10 :32:06 ">
168+ 2026年05月26日 10時32分06秒
169169 </ span >
170170 < br />
171171 < span itemprop ="author " itemscope itemtype ="http://schema.org/Person ">
172- < span itemprop ="name "> Akira Takahashi </ span >
172+ < span itemprop ="name "> equal-l2 </ span >
173173 </ span >
174174 が更新
175175 </ small > </ p >
@@ -982,7 +982,7 @@ <h2><a href="#cpp17" id="cpp17">C++17言語機能の実装状況</a></h2>
982982< td > </ td >
983983< td > 8</ td >
984984< td > 5.0</ td >
985- < td > No </ td >
985+ < td > - </ td >
986986< td > 2017 Update 7</ td >
987987</ tr >
988988< tr >
@@ -997,7 +997,7 @@ <h2><a href="#cpp17" id="cpp17">C++17言語機能の実装状況</a></h2>
997997< td > P0522R0: < a href ="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0522r0.html " target ="_blank "> テンプレートテンプレート引数のマッチングにおいて、互換性のあるテンプレートを除外</ a > </ td >
998998< td > </ td >
999999< td > 7</ td >
1000- < td > 4 (partial)</ td >
1000+ < td > 4 (partial)< br /> 19 < /td >
10011001< td > 19.1</ td >
10021002< td > 2017 Update 5</ td >
10031003</ tr >
@@ -1048,8 +1048,8 @@ <h2><a href="#cpp20" id="cpp20">C++20言語機能の実装状況</a></h2>
10481048< td > P0806R2: < a href ="lang/cpp20/deprecate_implicit_capture_of_this_via_defcopy.html "> < code > [=]</ code > による< code > this</ code > の暗黙のキャプチャを非推奨化</ a > </ td >
10491049< td > コピーのデフォルトキャプチャでは、< code > this</ code > ポインタをキャプチャされなくする</ td >
10501050< td > 9</ td >
1051- < td > </ td >
1052- < td > </ td >
1051+ < td > - </ td >
1052+ < td > No </ td >
10531053< td > 2019 Update 2</ td >
10541054</ tr >
10551055< tr >
@@ -1071,7 +1071,7 @@ <h2><a href="#cpp20" id="cpp20">C++20言語機能の実装状況</a></h2>
10711071< tr >
10721072< td > P0306R4: < a href ="lang/cpp20/va_opt.html "> 可変引数が空でない場合のトークン置換</ a > </ td >
10731073< td > プリプロセッサの置換で可変引数が空の場合に余計なカンマが付いてしまう問題に対処</ td >
1074- < td > 8 (partial, < code > #__VA_OPT__</ code > による文字列化が未サポート)</ td >
1074+ < td > 8 (partial, < code > #__VA_OPT__</ code > による文字列化が未サポート)< br /> 10 (partial, placemarker token のハンドリング変更なし) < br /> 12 < /td >
10751075< td > 6.0< br /> 9.0 (< a href ="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1042r1.html " target ="_blank "> p1042</ a > )</ td >
10761076< td > 2021.4</ td >
10771077< td > 2019 Update 5</ td >
@@ -1129,8 +1129,8 @@ <h2><a href="#cpp20" id="cpp20">C++20言語機能の実装状況</a></h2>
11291129< td > < code > sizeof</ code > や< code > decltype</ code > などの評価されない文脈において定数式評価を行った場合に、ムーブコンストラクタのような特殊メンバ関数が定義されることを規定</ td >
11301130< td > 9</ td >
11311131< td > 8</ td >
1132- < td > </ td >
1133- < td > Partial in 2019 Update 7</ td >
1132+ < td > No </ td >
1133+ < td > 2019 Update 7 (partial) < br /> 2022 Update 1 </ td >
11341134</ tr >
11351135< tr >
11361136< td > P0515R3: < a href ="lang/cpp20/consistent_comparison.html "> < code > <=></ code > /< code > ==</ code > による比較演算子の自動定義</ a > </ td >
@@ -1159,8 +1159,8 @@ <h2><a href="#cpp20" id="cpp20">C++20言語機能の実装状況</a></h2>
11591159< tr >
11601160< td > P0767R1: < a href ="lang/cpp20/deprecate_pod.html "> PODを非推奨化</ a > </ td >
11611161< td > PODという用語を非推奨化する</ td >
1162- < td > </ td >
1163- < td > </ td >
1162+ < td > 10.1 </ td >
1163+ < td > 21 </ td >
11641164< td > 2021.4</ td >
11651165< td > 2019 Update 5</ td >
11661166</ tr >
@@ -1232,8 +1232,8 @@ <h2><a href="#cpp20" id="cpp20">C++20言語機能の実装状況</a></h2>
12321232< td > P0929R2: < a href ="lang/cpp20/checking_for_abstract_class_types.html "> 抽象型のチェック</ a > </ td >
12331233< td > 関数の宣言段階では、パラメータおよび< a class ="cpprefjp-defined-word " data-desc ="関数呼び出し式の評価結果となるオブジェクト・値 "> 戻り値</ a > 型が抽象型かどうかをチェックしないようにする</ td >
12341234< td > 11</ td >
1235- < td > </ td >
1236- < td > </ td >
1235+ < td > - </ td >
1236+ < td > No </ td >
12371237< td > 2019 Update 5</ td >
12381238</ tr >
12391239< tr >
@@ -1320,7 +1320,7 @@ <h2><a href="#cpp20" id="cpp20">C++20言語機能の実装状況</a></h2>
13201320< td > P0482R6: < a href ="lang/cpp20/char8_t.html "> UTF-8エンコーディングされた文字の型として< code > char8_t</ code > を追加</ a > </ td >
13211321< td > UTF-8エンコードされた文字かどうかで< a class ="cpprefjp-defined-word " data-desc ="同名の関数を異なる引数・テンプレート・制約などで複数定義すること。または同名の関数の集合 "> オーバーロード</ a > ・特殊化をできるようにする</ td >
13221322< td > 9</ td >
1323- < td > 7 (< code > -fchar8_t</ code > オプションが必要)</ td >
1323+ < td > 7 (< code > -fchar8_t</ code > オプションが必要)< br /> 8 ( < code > -std=c++20 </ code > で有効化) < /td >
13241324< td > 2021.4</ td >
13251325< td > 2019 Update 2</ td >
13261326</ tr >
@@ -1336,23 +1336,23 @@ <h2><a href="#cpp20" id="cpp20">C++20言語機能の実装状況</a></h2>
13361336< td > P1091R3: < a href ="lang/cpp20/extending_structured_bindings_to_be_more_like_variable_declarations.html "> 構造化束縛を拡張して通常の変数宣言のように使用できるようにする</ a > </ td >
13371337< td > 記憶域指定子として< code > static</ code > と< code > thread_local</ code > の指定を許可</ td >
13381338< td > 10</ td >
1339- < td > 8.0 (partial)</ td >
1339+ < td > 8.0 (partial)< br /> 16 < /td >
13401340< td > 2021.4</ td >
13411341< td > 2019 Update 4</ td >
13421342</ tr >
13431343< tr >
13441344< td > P1381R1: < a href ="lang/cpp20/reference_capture_of_structured_bindings.html "> 構造化束縛した変数の参照キャプチャを許可</ a > </ td >
13451345< td > 構造化束縛をした変数は特殊な扱いのためラムダ式で参照キャプチャできない規定となっていたがこれを許可する</ td >
13461346< td > 8</ td >
1347- < td > 8.0 (partial)</ td >
1347+ < td > 8.0 (partial)< br /> 16 < /td >
13481348< td > 2021.4</ td >
13491349< td > 2017 Update 3</ td >
13501350</ tr >
13511351< tr >
13521352< td > P0960R3: < a href ="lang/cpp20/allow_initializing_aggregates_from_a_parenthesized_list_of_values.html "> 丸カッコの値リストからの集成体初期化を許可</ a > </ td >
13531353< td > < code > T x{1, 2, 3};</ code > と同様に< code > T x(1, 2, 3);</ code > でも集成体初期化できるようにする</ td >
13541354< td > 10</ td >
1355- < td > No </ td >
1355+ < td > 16 </ td >
13561356< td > 2021.4</ td >
13571357< td > 2019 Update 8</ td >
13581358</ tr >
@@ -1376,14 +1376,14 @@ <h2><a href="#cpp20" id="cpp20">C++20言語機能の実装状況</a></h2>
13761376< td > P1103R3: < a href ="lang/cpp20/modules.html "> モジュール</ a > </ td >
13771377< td > ヘッダファイル・ソースファイル、インクルードに変わる仕組みとしてモジュールを導入する</ td >
13781378< td > 11 (< code > -fmodules-ts</ code > が必要)</ td >
1379- < td > 15 < br /> 8.0 partial (< code > -fmodules</ code > , < code > -fmodules-ts</ code > が必要)</ td >
1380- < td > 2023.1 (Partial )</ td >
1379+ < td > 8.0 partial (< code > -fmodules</ code > , < code > -fmodules-ts</ code > が必要)< br /> 15 </ td >
1380+ < td > 2023.1 (partial )</ td >
13811381< td > 2019 Update 8</ td >
13821382</ tr >
13831383< tr >
13841384< td > P0912R5: < a href ="lang/cpp20/coroutines.html "> コルーチン</ a > </ td >
13851385< td > 関数実行を中断・再開する仕組みとしてコルーチンを導入する</ td >
1386- < td > 10 (< code > -fcoroutines</ code > が必要)</ td >
1386+ < td > 10 (< code > -fcoroutines</ code > が必要)< br /> 11 ( < code > -std=c++20 </ code > で有効化) < /td >
13871387< td > 8.0 (partial)</ td >
13881388< td > 2021.4</ td >
13891389< td > 2019 Update 8</ td >
@@ -1408,7 +1408,7 @@ <h2><a href="#cpp20" id="cpp20">C++20言語機能の実装状況</a></h2>
14081408< td > P0848R3: < a href ="lang/cpp20/conditionally_trivial_special_member_functions.html "> 条件付きで特殊メンバ関数をトリビアルに定義するように</ a > </ td >
14091409< td > 制約によってトリビアルな特殊メンバ関数と非トリビアルな特殊メンバ関数を< a class ="cpprefjp-defined-word " data-desc ="同名の関数を異なる引数・テンプレート・制約などで複数定義すること。または同名の関数の集合 "> オーバーロード</ a > できるようにする</ td >
14101410< td > 10</ td >
1411- < td > 16 Partial (consepts 未実装部あり) </ td >
1411+ < td > 16 (partial) < br /> 19 </ td >
14121412< td > 2022.3</ td >
14131413< td > 2019 Update 8</ td >
14141414</ tr >
@@ -1432,7 +1432,7 @@ <h2><a href="#cpp20" id="cpp20">C++20言語機能の実装状況</a></h2>
14321432< td > P1816R0: < a href ="lang/cpp20/class_template_argument_deduction_for_aggregates.html "> 集成体クラステンプレートのテンプレート引数推論</ a > </ td >
14331433< td > クラステンプレートのテンプレート引数推論はコンストラクタ引数から推論されるが、集成体初期化からも推論できるようにする</ td >
14341434< td > 10</ td >
1435- < td > No </ td >
1435+ < td > 17 </ td >
14361436< td > 2024.0</ td >
14371437< td > 2019 Update 7</ td >
14381438</ tr >
@@ -1472,8 +1472,8 @@ <h2><a href="#cpp20" id="cpp20">C++20言語機能の実装状況</a></h2>
14721472< td > P1814R0: < a href ="lang/cpp20/class_template_argument_deduction_for_alias_templates.html "> エイリアステンプレート経由でのクラステンプレートのテンプレート引数推論</ a > </ td >
14731473< td > エイリアステンプレートからクラステンプレートのテンプレート引数を推論できるようにする</ td >
14741474< td > 10</ td >
1475+ < td > 19 (partial)</ td >
14751476< td > No</ td >
1476- < td > </ td >
14771477< td > 2019 Update 7</ td >
14781478</ tr >
14791479< tr >
@@ -1489,7 +1489,7 @@ <h2><a href="#cpp20" id="cpp20">C++20言語機能の実装状況</a></h2>
14891489< td > ポインタから< code > bool</ code > 値への変換を縮小変換と規定することで、意図しない変換を防止する</ td >
14901490< td > 10</ td >
14911491< td > 11.0</ td >
1492- < td > </ td >
1492+ < td > - </ td >
14931493< td > 2019 Update 7</ td >
14941494</ tr >
14951495</ tbody >
@@ -1551,18 +1551,18 @@ <h2><a href="#cpp23" id="cpp23">C++23言語機能の実装状況</a></h2>
15511551< tr >
15521552< td > P1787R6: < span href ="https://cpprefjp.github.io/lang/cpp23/declarations_and_where_to_find_them.md.nolink "> スコープと名前ルックアップの仕様整理</ span > </ td >
15531553< td > 複雑で不完全になっているスコープと名前ルックアップの仕様を整理し、一部の問題を解決する</ td >
1554+ < td > No</ td >
15541555< td > -</ td >
15551556< td > -</ td >
1556- < td > -</ td >
1557- < td > -</ td >
1557+ < td > Yes</ td >
15581558</ tr >
15591559< tr >
15601560< td > P2615R1: < a href ="lang/cpp23/meaningful_exports.html "> 無意味なexport宣言を禁止する</ a > </ td >
15611561< td > いくつかの不必要な宣言に対するモジュールexportを禁止する</ td >
1562+ < td > 15</ td >
1563+ < td > 17</ td >
15621564< td > -</ td >
1563- < td > -</ td >
1564- < td > -</ td >
1565- < td > -</ td >
1565+ < td > 2026</ td >
15661566</ tr >
15671567< tr >
15681568< td > P2360R0: < a href ="lang/cpp23/extend_init_statement_to_allow_alias_declaration.html "> 初期化文での型の別名宣言を許可</ a > </ td >
@@ -1575,7 +1575,7 @@ <h2><a href="#cpp23" id="cpp23">C++23言語機能の実装状況</a></h2>
15751575< tr >
15761576< td > P2718R0: < a href ="lang/cpp23/lifetime_extension_in_range_based_for_loop.html "> 範囲for文が範囲初期化子内で生じた一時オブジェクトを延命することを規定</ a > </ td >
15771577< td > 範囲初期化子内で生じた一時オブジェクトは範囲for文の終わりまで延命される</ td >
1578- < td > - </ td >
1578+ < td > 15 </ td >
15791579< td > 20</ td >
15801580< td > -</ td >
15811581< td > -</ td >
@@ -1586,15 +1586,15 @@ <h2><a href="#cpp23" id="cpp23">C++23言語機能の実装状況</a></h2>
15861586< td > 13</ td >
15871587< td > 16</ td >
15881588< td > 2023.2</ td >
1589- < td > - </ td >
1589+ < td > No </ td >
15901590</ tr >
15911591< tr >
15921592< td > P0847R7: < span href ="https://cpprefjp.github.io/lang/cpp23/deducing_this.md.nolink "> 自身のオブジェクトを明示的にパラメータとして指定する</ span > </ td >
15931593< td > メンバ関数が< code > *this</ code > の型・オブジェクトをパラメータとしてとり、< code > *this</ code > オブジェクトがconst/非const、左辺値/右辺値であるかをメンバ関数内で識別できるようにする</ td >
1594- < td > - </ td >
1594+ < td > 14 </ td >
15951595< td > 18</ td >
1596- < td > - </ td >
1597- < td > 2022 Update 2 (partial)</ td >
1596+ < td > No </ td >
1597+ < td > 2022 Update 2 (partial)< br /> 2022 Update 13 < /td >
15981598</ tr >
15991599< tr >
16001600< td > P1847R4: < a href ="lang/cpp23/make_declaration_order_layout_mandated.html "> アクセス制御の異なるメンバ変数のレイアウトを宣言順に規定</ a > </ td >
@@ -1634,23 +1634,23 @@ <h2><a href="#cpp23" id="cpp23">C++23言語機能の実装状況</a></h2>
16341634< td > -</ td >
16351635< td > -</ td >
16361636< td > -</ td >
1637- < td > - </ td >
1637+ < td > No </ td >
16381638</ tr >
16391639< tr >
16401640< td > P2362R3: < a href ="lang/cpp23/remove_non_encodable_wide_character_literals_and_multicharacter_wide_character_literals.html "> 1ワイド文字に収まらないワイド文字リテラルを禁止する</ a > </ td >
16411641< td > エンコード結果として< code > wchar_t</ code > の大きさに収まらないワイド文字リテラルを禁止する</ td >
16421642< td > 13</ td >
16431643< td > 14</ td >
16441644< td > 2023.2</ td >
1645- < td > - </ td >
1645+ < td > No </ td >
16461646</ tr >
16471647< tr >
16481648< td > P2071R2: < a href ="lang/cpp23/named_universal_character_escapes.html "> 名前付きユニバーサルキャラクタ名</ a > </ td >
16491649< td > 16進数のユニバーサルキャラクタだけでなく、その文字の名前を入力できるようにする</ td >
16501650< td > 13</ td >
16511651< td > 15</ td >
16521652< td > 2023.2</ td >
1653- < td > - </ td >
1653+ < td > No </ td >
16541654</ tr >
16551655< tr >
16561656< td > P2096R2: < a href ="lang/cpp23/generalized_wording_for_partial_specializations.html "> 変数テンプレートの部分特殊化を許可</ a > </ td >
@@ -1663,10 +1663,10 @@ <h2><a href="#cpp23" id="cpp23">C++23言語機能の実装状況</a></h2>
16631663< tr >
16641664< td > P2582R1: < a href ="lang/cpp23/class_template_argument_deduction_from_inherited.html "> 継承コンストラクタからのクラステンプレート引数の推論</ a > </ td >
16651665< td > 継承コンストラクタからもクラステンプレート引数を推論できるようにする</ td >
1666- < td > - </ td >
1667- < td > - </ td >
1668- < td > - </ td >
1669- < td > - </ td >
1666+ < td > 14 </ td >
1667+ < td > No </ td >
1668+ < td > No </ td >
1669+ < td > No </ td >
16701670</ tr >
16711671< tr >
16721672< td > P1938R3: < code > < a href ="lang/cpp23/if_consteval.html "> if consteval</ a > </ code > </ td >
@@ -1696,30 +1696,30 @@ <h2><a href="#cpp23" id="cpp23">C++23言語機能の実装状況</a></h2>
16961696< td > P2246R1: < a href ="lang/cpp23/character_encoding_of_diagnostic_text.html "> 静的な診断メッセージの文字エンコーディング</ a > </ td >
16971697< td > < code > static_assert</ code > や< code > [[deprecated]]</ code > などの< a class ="cpprefjp-defined-word " data-desc ="診断情報。コンパイルエラーや警告。処理系がプログラム翻訳時に提供する情報の総称 " href ="implementation-compliance.html#dfn-diagnostic-message "> 診断メッセージ</ a > の文字集合に関する要件をなくす</ td >
16981698< td > 16</ td >
1699- < td > yes </ td >
1699+ < td > Yes </ td >
17001700< td > 2022.2</ td >
17011701< td > 2022</ td >
17021702</ tr >
17031703< tr >
17041704< td > P2448R2: < a href ="lang/cpp23/relaxing_some_constexpr_restrictions.html "> < code > constexpr</ code > 関数が定数実行できない場合でも適格とする</ a > </ td >
17051705< td > </ td >
17061706< td > 13</ td >
1707- < td > 17 (partial)</ td >
1707+ < td > 17 (partial)< br /> 19 < /td >
17081708< td > 2024.0 (partial)</ td >
1709- < td > - </ td >
1709+ < td > No </ td >
17101710</ tr >
17111711< tr >
17121712< td > P2647R1: < a href ="lang/cpp23/permitting_static_constexpr_variables_in_constexpr_functions.html "> < code > constexpr</ code > 関数内での< code > static constexpr</ code > 変数を許可</ a > </ td >
17131713< td > < code > constexpr</ code > 関数のローカルで定数を定義できるようにする</ td >
17141714< td > 13</ td >
17151715< td > 16</ td >
17161716< td > 2023.2</ td >
1717- < td > - </ td >
1717+ < td > 2026 Update 6 </ td >
17181718</ tr >
17191719< tr >
17201720< td > P2564R3: < a href ="lang/cpp23/consteval_needs_to_propagate_up.html "> < code > constexpr</ code > 関数内で< code > consteval</ code > 関数を呼び出せない問題を緩和</ a > </ td >
17211721< td > < code > consteval</ code > 呼び出しを含む< code > constexpr</ code > 関数を条件付きで< code > consteval</ code > 関数とみなすようにする</ td >
1722- < td > - </ td >
1722+ < td > 14 </ td >
17231723< td > 17</ td >
17241724< td > 2024.0</ td >
17251725< td > -</ td >
@@ -1745,14 +1745,14 @@ <h2><a href="#cpp23" id="cpp23">C++23言語機能の実装状況</a></h2>
17451745< td > 最適化のために、コードの仮定をコンパイラに伝える属性を標準化する</ td >
17461746< td > 13</ td >
17471747< td > 19</ td >
1748- < td > - </ td >
1749- < td > - </ td >
1748+ < td > No </ td >
1749+ < td > No </ td >
17501750</ tr >
17511751< tr >
17521752< td > P2316R2: < a href ="lang/cpp23/consistent_character_literal_encoding.html "> 文字リテラルエンコーディングを一貫させる</ a > </ td >
17531753< td > プリプロセッサの条件式での文字リテラルの扱いをC++式と同様にする</ td >
1754- < td > yes </ td >
1755- < td > yes </ td >
1754+ < td > Yes </ td >
1755+ < td > Yes </ td >
17561756< td > 2022.2</ td >
17571757< td > 2022</ td >
17581758</ tr >
@@ -1767,8 +1767,8 @@ <h2><a href="#cpp23" id="cpp23">C++23言語機能の実装状況</a></h2>
17671767< tr >
17681768< td > P2437R1: < a href ="lang/cpp23/warning.html "> < code > #warning</ code > のサポートを追加</ a > </ td >
17691769< td > 多くのC++コンパイラが実装していたプリプロセス時の警告< code > #warning message</ code > を正式サポート</ td >
1770- < td > yes </ td >
1771- < td > yes </ td >
1770+ < td > Yes </ td >
1771+ < td > Yes </ td >
17721772< td > 2023.2</ td >
17731773< td > 2026</ td >
17741774</ tr >
@@ -1800,6 +1800,7 @@ <h2><a href="#cpp23" id="cpp23">C++23言語機能の実装状況</a></h2>
18001800< li > < a href ="https://devblogs.microsoft.com/cppblog/msvc-compiler-updates-in-visual-studio-2022-version-17-13/ " target ="_blank "> C++ Language Updates in MSVC in Visual Studio 2022 17.13</ a > </ li >
18011801< li > < a href ="https://devblogs.microsoft.com/cppblog/msvc-compiler-language-updates-in-visual-studio-2022-version-17-12/ " target ="_blank "> MSVC Compiler Language Updates in Visual Studio 2022 version 17.12</ a > </ li >
18021802< li > < a href ="https://devblogs.microsoft.com/cppblog/c-language-updates-in-msvc-in-visual-studio-2022-17-14/ " target ="_blank "> C++ Language Updates in MSVC in Visual Studio 2022 17.14</ a > </ li >
1803+ < li > < a href ="https://learn.microsoft.com/en-us/cpp/overview/msvc-conformance-improvements " target ="_blank "> C/C++ Conformance improvements, behavior changes, and bug fixes in Microsoft C++ (MSVC) Build Tools</ a > </ li >
18031804</ ul >
18041805</ li >
18051806< li > ICX: < a href ="https://www.intel.com/content/www/us/en/developer/articles/technical/c23-features-supported-by-intel-c-compiler.html " target ="_blank "> C++23 Features Supported by Intel® C++ Compiler</ a > </ li >
0 commit comments