Skip to content
Akira Takahashi edited this page Jan 25, 2024 · 303 revisions

C++20の対応状況

参照記事

Editor's Report

言語機能の提案文書への対応

paper タイトル 対応状況(空 or 完了 or 対応しない or 担当名)
P0683R1 ビットフィールドのメンバ変数初期化 完了
P0704R1 const修飾されたメンバポインタの制限を修正 完了
P0409R2 ラムダ式のキャプチャとして[=, this]を許可する 完了
P0306R4 可変引数が空でない場合のトークン置換 完了
P0329R4 指示付き初期化 完了
P0428R2 ジェネリックラムダのテンプレート構文 完了
P0734R0 Wording Paper, C++ extensions for Concepts 完了
P0614R1 初期化式をともなう範囲for文 完了
P0588R1 暗黙のラムダキャプチャを簡略化 完了
P0846R0 関数テンプレートに明示的に型指定した場合にADLで見つからない問題を修正 完了
P0641R2 デフォルトのコピーコンストラクタと非constなコンストラクタが衝突する問題を修正 完了
P0859R0 評価されない文脈での定数式評価によって特殊メンバ関数がインスタンス化されることを規定 完了
P0515R3 一貫性ある比較 完了
P0857R0 ラムダ式の制約 完了
P0692R1 特殊化のアクセスチェック 完了
P0624R2 状態を持たないラムダ式を、デフォルト構築可能、代入可能とする 完了
P0767R1 PODを非推奨化 完了
P0315R4 評価されない文脈でのラムダ式 完了
P0840R2 空オブジェクトを言語サポート 完了
P0962R1 範囲for文がカスタマイゼーションポイントを見つけるルールを緩和 完了
P0969R0 friend指定された関数内から構造化束縛を使用して非公開メンバ変数にアクセスすることを許可 完了
P0961R1 構造化束縛がカスタマイゼーションポイントを見つけるルールを緩和 完了
P0634R3 型の文脈でtypenameの省略を許可 完了
P0780R2 ラムダ式の初期化キャプチャでのパック展開を許可 完了
P0479R5 確率が高い分岐と低い分岐を伝える属性 [[likely]], [[unlikely]] 完了
P0905R1 宇宙船演算子に対称性をもたせる (n4740でwording changeあり) 完了
P0806R2 [=]によるthisの暗黙のキャプチャを非推奨化 完了
P1042R1 __VA_OPT__の仕様を明確化
P0929R2 抽象型のチェック 完了
P0732R2 非型テンプレートパラメータとしてクラス型を許可する 完了
P1025R1 Unicode標準への参照を更新 完了
P0528R3 アトミックなcompare and exchangeでpadding bitが正しく動作するようにする
P0722R3 可変長データを扱うクラスの効率的なdelete
P1064R0 定数式からの仮想関数の呼び出しを許可 完了
P1008R1 ユーザー宣言したコンストラクタを持つクラスの集成体初期化を禁止 完了
P1120R0 <=>演算子と他の比較演算子との一貫性を改善 完了
P0542R5 契約に基づくプログラミング 完了
P0941R2 機能テストマクロ
P0892R2 コンストラクタを条件付きでexplicitにする構文を追加 完了
P0668R5 Revising the C++ memory model
P0982R1 Weaken release sequences
P1084R2 Today's return-type-requirements Are Insufficient 完了
P1289R1 Access control in contract conditions
P1002R1 constexpr関数内でのtry-catchブロックを許可 完了
P1327R1 定数式でのdynamic_cast、多態的なtypeidを許可 完了
P1236R1 符号付き整数型が2の補数表現であることを規定 完了
P0482R6 UTF-8エンコーディングされた文字の型としてchar8_tを追加 完了
P1353R0 Missing feature test macros
P1073R3 即時関数 完了
P0595R2 std::is_constant_evaluated() 完了
P1141R2 Yet another approach for constrained declarations 途中かもしれないので要確認
P1094R2 入れ子名前空間定義でのインライン名前空間 完了
P1330R0 定数式内での共用体のアクティブメンバの変更を許可 完了
P1286R2 Contra CWG DR1778
P1091R3 構造化束縛を拡張して通常の変数宣言のように使用できるようにする 完了
P1381R1 構造化束縛したビットフィールドの参照キャプチャ 完了
P1041R4 char16_tchar32_tの文字・文字列リテラルを、文字コードUTF-16/32に規定 完了
P1139R2 ISO 10646 (Unicode) 関係の文言を編集レベルで修正 対応なし
P1323R2 事後条件の契約は、戻り値の型を推論する関数宣言には付けられないことを規定
P0960R3 丸カッコの値リストからの集成体初期化を許可 完了
P1009R2 new式での配列要素数の推論 完了
P1103R3 モジュール 完了
P1185R2 <=> != == 完了
P0912R5 コルーチン 完了
P1161R3 Deprecate uses of the comma operator in subscripting expressions 完了
P1331R2 Permitting trivial default initialization in constexpr contexts 完了
P0735R1 Interaction of memory_order_consume with release sequences
P0848R3 Conditionally trivial special member functions
P1186R3 When do you actually use <=>? 完了
P1301R4 [[nodiscard("should have a reason")]] 完了
P1099R5 using enum 完了
P1630R1 Spaceship needs a tune-up 完了
P1616R1 Using unconstrained template template parameters with constrained templates
P1816R0 Class template argument deduction for aggregates 完了
P1668R1 Enabling constexpr intrinsics by permitting unevaluated inline assembly in constexpr functions 完了
P1766R1 Mitigating minor modules maladies (DR) 完了
P1811R0 Relaxing redefinition restrictions for re-exportation robustness 完了
P0388R4 Permit conversions to arrays of unknown bound 完了
P1823R0 Remove contracts 完了
P1143R2 Adding the constinit keyword 完了
P1452R2 On the non-uniform semantics of return-type-requirements 完了
P1152R4 Deprecating volatile 完了
P1771R1 [[nodiscard]] for constructors (DR) 完了
P1814R0 Class template argument deduction for alias templates 完了
P1825R0 Merged wording for P0527R1 and P1155R3 (DR) (more implicit move)
P1703R1 Recognizing header unit imports requires full preprocessing 完了
P0784R7 More constexpr containers 完了
P1971R0 Core Language Changes for NB Comments at the November, 2019 (Belfast) meeting
P1972R0 US105 Check satisfaction of constraints for non-templates when forming pointer to function
P1975R0 Fixing the wording of parenthesized aggregate-initialization
P1874R1 Dynamic initialization order of non-local variables in modules
P1946R0 Allow defaulting comparisons by value 完了
P1907R1 Inconsistencies with non-type template parameters 完了
P1979R0 Resolution to US086
P1980R0 Declaration matching for non-dependent requires-clauses
P2103R0 Core Language Changes for NB Comments at the February, 2020 (Prague) meeting
P1779R3 ABI isolation for member functions
P1857R3 Modules Dependency Discovery
P0593R6 Implicit creation of objects for low-level object manipulation
P1957R2 Converting from T* to bool should be considered narrowing (re: US 212) 言語側のみ完了
P2104R0 Disallow changing concept values
P2107R0 Core Issue 2436: US064 Copy semantics of coroutine parameters
P2092R0 Disambiguating Nested-Requirements
P2108R0 Core Language Working Group "ready" Issues for the February, 2020 (Prague) meeting
P2109R0 Disallow export import foo outside of module interface
P2082R1 Fixing CTAD for aggregates
P2113R0 Proposed resolution for 2019 comment CA 112
P2115R0 US069: Merging of multiple definitions for unnamed unscoped enumerations
P1815R2 Translation-unit-local entities
P2095R0 Resolve lambda init-capture pack grammar (CWG2378からword changeあり) 完了
P2002R1 Defaulted comparison specification cleanups
P2085R0 Consistent defaulted comparisons
P1908R1 Reserving attribute namespaces for future use 完了
P1937R2 Fixing inconsistencies between constexpr and consteval functions

ライブラリ機能の提案文書への対応

paper タイトル 対応状況(空 or 完了 or 対応しない or 担当名)
P0463R1 Endian, just endian 完了
P0674R1 Extending make_shared to support arrays 完了
P0768R1 宇宙船演算子をライブラリサポート 完了
P0550R2 Transformation trait remove_cvref 完了
P0777R1 Treating unnecessary decay 完了
P0600R1 [[nodiscard]] in the Library 完了
P0439R0 Make std::memory_order a scoped enumeration 完了
P0053R7 Synchronized buffered ostream 完了
P0653R2 Utility to convert a pointer to a raw pointer 完了
P0202R3 Add constexpr modifiers to functions in <algorithm> and <utility> Headers 完了
P0415R1 constexpr for std::complex 完了
P0718R2 Atomic shared_ptr 完了
P0020R6 Floating point atomic 完了
P0616R0 De-pessimize legacy <numeric> algorithms with std::move 完了
P0457R2 String prefix and suffix checking 完了
P0754R2 <version> 完了
P0809R0 Comparing unordered containers 完了
P0355R7 Extending chrono to calendars and time zones (n4740でwording changeあり) 完了
P0966R1 string::reserve should not shrink 完了
P0551R3 Thou shalt not specialize std function templates! 完了 (C++20の概要ページに記載)
P0753R2 Manipulators for C++ synchronized buffered ostream 完了
P0122R7 <span> (n4740でwording changeあり) 完了
P0858R0 Constexpr iterator requirements
P0476R2 オブジェクト表現のビットキャスト 完了
P0788R3 Standard library specification in a concepts and contracts world 完了
P0458R2 Checking for existence of an element in associative containers 完了
P0759R1 fpos requirements
P1023R0 constexpr comparison operators for std::array 完了
P0769R2 Add shift to <algorithm> 完了
P0887R1 The identity metafunction 完了
P0879R0 constexpr for swap and swap-related functions 完了
P0758R1 Implicit conversion traits and utility functions 完了
P0556R3 2の乗数整数に対する操作 完了
P0019R8 atomic_ref 完了
P0935R0 Eradicating unnecessarily explicit default constructors from the standard library 完了
P0646R1 Improving the return value of erase-like algorithms 完了
P0619R4 C++17で非推奨となった機能を、C++20に向けてレビューする 完了
P0898R3 Standard library concepts 完了
P1123R0 Editorial guidance for merging P0019R8 and P0528R3
P0487R1 Fixing operator>>(basic_istream&, CharT*) 完了
P0602R4 variant and optional should propagate copy/move triviality 完了
P0655R1 visit<R>: explicit return type for visit 完了
P0972R0 <chrono> zero(), min(), and max() should be noexcept 完了
P1006R1 constexpr in std::pointer_traits 完了
P1032R1 Miscellaneous constexpr bits 完了
P1148R0 Cleaning up clause 20 (strings)
P0318R1 unwrap_ref_decay and unwrap_reference 完了
P0357R3 reference_wrapper for incomplete types 完了
P0608R3 A sane variant converting constructor 完了
P0771R1 std::function move constructor should be noexcept 完了
P1007R3 std::assume_aligned 完了
P1020R1 Smart pointer creation with default initialization 完了
P1285R0 Improving completeness requirements for type traits
P1248R1 Remove CommonReference requirement from StrictWeakOrdering 完了
P0591R4 Utility functions to implement uses-allocator construction 完了
P0899R1 LWG 3016 is not a defect
P1085R2 Should span be regular? 完了
P1165R1 Make stateful allocator propagation more consistent for operator+(basic_string) 完了
P0896R4 The One Ranges proposal
P0356R5 Simplified partial function application 完了
P0919R3 Heterogeneous lookup for unordered containers 完了
P1209R0 Adopt consistent container erasure from Library Fundamentals 2 完了
P0339R6 polymorphic_allocator<> as a vocabulary type 完了
P0340R3 Making std::underlying_type SFINAE-friendly 完了
P0738R2 I Stream, You Stream, We All Stream for istream_iterator
P1458R1 契約とコンセプトの導入にともなってライブラリ仕様の書き方を変更: clause 16 - language support library
P1459R1 契約とコンセプトの導入にともなってライブラリ仕様の書き方を変更: clause 18 - diagnostics library
P1462R1 契約とコンセプトの導入にともなってライブラリ仕様の書き方を変更: clause 20 - strings library
P1463R1 契約とコンセプトの導入にともなってライブラリ仕様の書き方を変更: clause 21 - containers library
P1464R1 契約とコンセプトの導入にともなってライブラリ仕様の書き方を変更: clause 22 - iterators library
P1164R1 Make create_directory() intuitive
P0811R3 整数とポインタで正しく動作する補間 完了
P1001R2 Target vectorization policies from Parallelism V2 TS 完了
P1227R2 Signed ssize() functions, unsigned size() functions 完了
P1252R2 Ranges design cleanup
P1024R3 Usability enhancements for std::span 完了
P0920R2 Precalculated hash values in lookup 完了
P1357R1 Traits for [un]bounded arrays 完了
P1355R2 Exposing a narrow contract for ceil2 完了
P0553R4 Bit operations 完了
P1424R1 constexpr feature macro concerns
P0645R10 Text formatting 完了
P1361R2 Integration of chrono with text formatting 完了
P1652R1 Printf corner cases in std::format 完了
P0631R8 Math constants 完了
P1135R6 The C++20 synchronization library 完了
P1643R1 Add wait/notify to atomic_ref 完了
P1644R0 Add wait/notify to atomic<shared_ptr> 完了
P1466R3 Miscellaneous minor fixes for chrono 完了
P1754R1 Rename concepts to standard_case for C++20, while we still can 完了
P1614R2 The mothership has landed 完了
P0325R4 to_array from LFTS with updates 完了
P0408R7 Efficient access to basic_stringbuf's buffer
P1423R3 char8_t backward compatibility remediation 完了
P1502R1 Standard library header units
P1612R1 Relocate endian's specification 完了
P1661R1 Remove dedicated precalculated hash lookup interface 完了
P1650R0 Output std::chrono::days with d suffix 完了
P1651R0 bind_front should not unwrap reference_wrapper 完了
P1065R2 Constexpr invoke 完了
P1207R4 Movability of single-pass iterators 完了
P1035R7 Input range adaptors
P1638R1 basic_istream_view::iterator should not be copyable
P1522R1 Iterator difference type and integer overflow <iterator>の部分は完了
P1004R2 Making std::vector constexpr 完了
P0980R1 Making std::string constexpr 完了
P0660R10 Stop token and joining thread 完了
P1474R1 Helpful pointers for ContiguousIterator <iterator>の部分は完了
P1523R1 Views and size types
P0466R5 Layout-compatibility and pointer-interconvertibility traits 完了
P1208R6 source_location 完了
P1855R0 Make <compare> freestanding 完了
P1690R1 Refinement proposal for P0919 heterogeneous lookup for unordered containers 完了
P1872R0 span should have size_type, not index_type 完了
P1965R0 Hidden friends 完了
P1716R3 ranges comparison algorithms are over-constrained
P1869R1 Rename condition_variable_any interruptible wait methods 完了
P1961R0 Harmonizing the definitions of total order for pointers
P1878R1 Constraining readable types
P1871R1 Concept traits should be named after concepts 完了
P1456R1 Move-only views
P1391R4 Range constructor for std::string_view 完了
P1394R4 Range constructor for std::span 完了
P1862R1 Ranges adaptors for non-copyable iterators
P1870R1 forwarding-range<T> is too subtle"
P1865R1 Add max() to latch and barrier 完了
P1960R0 NB comment changes reviewed by SG1 完了
P1902R1 Missing feature-test macros 2017-2019
P0883R2 Fixing atomic initialization 完了
P1959R0 Remove std::weak_equality and std::strong_equality 完了
P1892R1 Extended locale-specific presentation specifiers for std::format
P1645R1 constexpr for <numeric> algorithms 完了
P1718R2 Mandating the standard library: Clause 25 - Algorithms library
P1719R2 Mandating the standard library: Clause 26 - Numerics library
P1686R2 Mandating the standard library: Clause 27 - Time library
P1720R2 Mandating the standard library: Clause 28 - Localization library
P1721R2 Mandating the standard library: Clause 29 - Input/Output library
P1722R2 Mandating the standard library: Clause 30 - Regular Expression library
P1723R2 Mandating the standard library: Clause 31 - Atomics library
P1622R3 Mandating the standard library: Clause 32 - Thread support library
P2051R0 C++ Standard Library Issues to be moved in Prague span, chrono, lexicographical_compare_three_wayは完了
P2117R0 C++ Standard Library Issues Resolved Directly In Prague span, chrono, to_addressは完了
P1981R0 Rename leap to leap_second 完了
P1982R0 Rename link to time_zone_link 完了
P2101R0 "Models" subsumes "satisfies" (Wording for US298 and US300) 完了
R1115R3 Improving the Return Value of Erase-Like Algorithms II: Free erase/erase_if 完了
P2102R0 Make "implicit expression variations" more explicit (Wording for US185)
P1994R1 elements_view needs its own sentinel
P1868R2 🦄 width: clarifying units of width and precision in std::format
P1956R1 On the names of low-level bit manipulation functions 完了
P1976R2 Fixed-size span construction from dynamic range 完了
P1964R2 Wording for boolean-testable <concepts>部分のみ完了
P2091R0 Issues with range access customization point objects
P0586R2 Safe integral comparisons (NB DE 208からword changeあり) 完了
P1831R1 Deprecating volatile: library (NB CZ 004, NB CA 210, NB US 211からword changeあり) 完了
P1973R1 Rename _default_init functions (NB DE 002からword changeあり) 完了
P1243R4 Rangify new algorithms
P2106R0 Alternative wording for GB315 and GB316
P1739R4 Avoid template bloat for safe_ranges in combination with "subrange-y" view adaptors
P2116R0 Remove tuple-like protocol support from fixed-extent span 完了
P1970R2 Consistency for size functions: add ranges::ssize

Core Issueへの対応

CWG DR タイトル 対応状況(空 or 完了 or 対応しない or 担当名)
1893 Function-style cast with braced-init-lists and empty pack expansions
1910 "Shall" requirement applied to runtime behavior
1983 Inappropriate use of virt-specifier
2059 Linkage and deduced return types
2081 Deduced return type in redeclaration or specialization of function template
2088 Late tiebreakers in partial ordering
2092 Deduction failure and overload resolution
2164 Name hiding and using-directives
2226 Xvalues vs lvalues in conditional expressions
2227 Destructor access and default member initializers
2229 Volatile unnamed bit-fields
2234 Missing rules for simple-template-id as class-name
2235 Partial ordering and non-dependent types
2237 Can a template-id name a constructor?
2255 Instantiated static data member templates
2260 Explicit specializations of deleted member functions
2299 constexpr vararg functions
2254 Standard-layout classes and bit-fields
2293 Requirements for simple-template-id used as a class-name
2294 Dependent auto static data members
2321 Conditional operator and cv-qualified class prvalues
2322 Substitution failure and lexical order
2339 Underspecified template arguments in structured bindings
2233 Function parameter packs following default arguments
2249 identifiers and id-expressions
2285 Issues with structured bindings
2351 void{}
2356 Base class copy and move constructors should not be inherited
2359 Unintended copy initialization with designated initializers (not a DR)
1636 Bits required for negative enumerator values superseded by CWG Motion 10
1781 Converting from nullptr_t to bool in overload resolution
2133 Converting std::nullptr_t to bool resolved by resolution to CWG1781
2373 Incorrect handling of static member function templates in partial ordering
2256 Lifetime of trivially-destructible objects
2267 Copy-initialization of temporary in reference direct-initialization
2278 Copy elision in constant expressions reconsidered
2303 Partial ordering and recursive variadic inheritance
2309 Restrictions on nested statements within constexpr functions
2310 Type completeness and derived-to-base pointer conversions
2317 Self-referential default member initializers
2318 Nondeduced contexts in deduction from a braced-init-list
2330 Missing references to variable templates
2331 Redundancy in description of class scope not applied
2332 template-name as simple-type-name vs injected-class-name
2336 Destructor characteristics vs potentially-constructed subobjects
2352 Similar types and reference binding
2358 Explicit capture of value
2360 [[maybe_unused]] and structured bindings
581 Can a templated constructor be explicitly instantiated or specialized?
1937 Incomplete specification of function pointer from lambda
1938 Should hosted/freestanding be implementation-defined?
2020 Inadequate description of odr-use of implicitly-invoked functions
2051 Simplifying alias rules
2083 Incorrect cases of odr-use
2103 Lvalue-to-rvalue conversion is irrelevant in odr-use of a reference resolved by 2083
2170 Unclear definition of odr-use for arrays resolved by 2083
2257 Lifetime extension of references vs exceptions
2266 Has dependent type vs is type-dependent
2289 Uniqueness of structured binding names
2353 Potential results of a member access expression for a static data member
2354 Extended alignment and object representation
2365 Confusing specification for dynamic_cast
2368 Differences in relational and three-way constant comparisons
2372 Incorrect matching rules for block-scope extern declarations
2379 Missing prohibition against constexpr in friend declaration
2380 capture-default makes too many references odr-usable
2381 Composite pointer type of pointers to plain and noexcept member functions
2384 Conversion function templates and qualification conversions
2385 Lookup for conversion-function-ids
2386 tuple_size requirements for structured binding
2387 Linkage of const-qualified variable template
2394 Const-default-constructible for members
682 Missing description of lookup of template aliases
2207 Alignment of allocation function return value
2300 Lambdas in multiple definitions
2366 Can default initialization be constant initialization?
2376 Class template argument deduction with array declarator
2390 Is the argument of __has_cpp_attribute macro-expanded?
2400 Constexpr virtual functions and temporary objects
2404 [[no_unique_address]] and allocation order
2406 [[fallthrough]] attribute and iteration statements
2418 Missing cases in definition of "usable in constant expressions"
2280 Matching a usual deallocation function with placement new
2382 Array allocation overhead for non-allocating placement new
2416 Explicit specializations vs constexpr and consteval
2441 Inline function parameters
1621 Member initializers in anonymous unions
2126 Lifetime-extended temporaries in constant expressions
2282 Consistency with mismatched aligned/non-over-aligned allocation/deallocation functions
2347 Passing short scoped enumerations to ellipsis
2374 Overly permissive specification of enum direct-list-initialization
2399 Unclear referent of “expression” in assignment-expression
2419 Loss of generality treating pointers to objects as one-element arrays
2422 Incorrect grammar for deduction-guide
2424 constexpr initialization requirements for variant members
2426 Reference to destructor that cannot be invoked
2427 Deprecation of volatile operands and unevaluated contexts
2429 Initialization of thread_local variables referenced by lambdas
2430 Completeness of return and parameter types of member functions
2431 Full-expressions and temporaries bound to references
2432 Return types for defaulted <=>
2433 Variable templates in the ODR
2437 Conversion of std::strong_ordering in a defaulted operator<=>
2439 Undefined term in definition of "usable in constant expressions" resolved by CWG 2126
2442 Incorrect requirement for default arguments

C++20の規格書には入らずC++23扱いだが、実際にはC++20に含まれる変更:

CWG DR タイトル 対応状況(空 or 完了 or 対応しない or 担当名)
P1787R6 Declarations and where to find them

Library Issueへの対応

LWG DR タイトル 対応状況(空 or 完了 or 対応しない or 担当名)
2164 What are the semantics of vector.emplace(vector.begin(), vector.back())?
2243 istream::putback problem
2816 resize_file has impossible postcondition 完了
2843 Unclear behavior of std::pmr::memory_resource::do_allocate() 完了
2849 Why does !is_regular_file(from) cause copy_file to report a "file already exists" error? 完了
2851 std::filesystem enum classes are now underspecified 完了
2969 polymorphic_allocator::construct() shouldn't pass resource() 完了
2975 Missing case for pair construction in scoped and polymorphic allocators 完了
2989 path's stream insertion operator lets you insert everything under the sun 完了
3000 monotonic_memory_resource::do_is_equal uses dynamic_cast unnecessarily 完了
3004 [string.capacity] and [vector.capacity] should specify time complexity for capacity() 完了
3005 Destruction order of arrays by make_shared/allocate_shared only recommended?
3007 allocate_shared should rebind allocator to cv-unqualified value_type for construction
3009 Including <string_view> doesn't provide std::size/empty/data 完了
3013 (recursive_)directory_iterator construction and traversal should not be noexcept 完了
3014 More noexcept issues with filesystem operations 完了
3015 copy_options::unspecified underspecified 完了
3017 list splice functions should use addressof 完了
3026 filesystem::weakly_canonical still defined in terms of canonical(p, base) 完了
3030 Who shall meet the requirements of try_lock?
3034 P0767R1 breaks previously-standard-layout types
3035 std::allocator's constructors should be constexpr
3039 Unnecessary decay in thread and packaged_task 完了
3041 Unnecessary decay in reference_wrapper
3042 is_literal_type_v should be inline 完了
3043 Bogus postcondition for filesystem_error constructor 完了
3045 atomic<floating-point> doesn't have value_type or difference_type 完了
3048 transform_reduce(exec, first1, last1, first2, init) discards execution policy 完了
3051 Floating point classifications were inadvertently changed in P0175
2946 LWG 2758's resolution missed further corrections 完了
3075 basic_string needs deduction guides from basic_string_view 完了
2139 What is a user-defined type?
2970 Return type of std::visit misspecified 完了
3058 Parallel adjacent_difference shouldn't require creating temporaries
3062 Unnecessary decay_t in is_execution_policy_v should be remove_cvref_t
3067 recursive_directory_iterator::pop must invalidate 完了
3074 Non-member functions for valarray should only deduce from the valarray 完了
3076 basic_string CTAD ambiguity
3079 LWG 2935 forgot to fix the existing_p overloads of create_directory
3080 Floating point from_chars pattern specification breaks round-tripping 完了
3083 What should ios::iword(-1) do?
3094 [time.duration.io] p4 makes surprising claims about encoding 完了
3100 Unnecessary and confusing "empty span" wording 完了
3102 Clarify span iterator and const_iterator behavior 完了
3104 Fixing duration division 完了
2511 Guaranteed copy elision for piecewise construction
2183 Muddled allocator requirements for match_results constructors
2184 Muddled allocator requirements for match_results assignments
2412 promise::set_value() and promise::get_future() should not race 完了
2682 filesystem::copy() won't create a symlink to a directory 完了
2936 Path comparison is defined in terms of the generic format
2943 Problematic specification of the wide version of basic_filebuf::open
2995 basic_stringbuf default constructor forbids it from using SSO capacity
2996 Missing rvalue overloads for shared_ptr operations 完了
3008 make_shared (sub)object destruction semantics are not specified
3025 Map-like container deduction guides should use pair<Key, T>, not pair<const Key, T> 完了
3031 Algorithms and predicates with non-const reference arguments
3037 polymorphic_allocator and incomplete types 完了
3038 polymorphic_allocator::allocate should not allow integer overflow to create vulnerabilities 完了
3054 uninitialized_copy appears to not be able to meet its exception-safety guarantee
3065 LWG 2989 missed that all path's other operators should be hidden friends as well
3096 path::lexically_relative is confused by trailing slashes
3116 OUTERMOST_ALLOC_TRAITS needs remove_reference_t
3122 __cpp_lib_chrono_udls was accidentally dropped
3127 basic_osyncstream::rdbuf needs a const_cast
3128 strstream::rdbuf needs a const_cast
3129 regex_token_iterator constructor uses wrong pointer arithmetic
3130 [input.output] needs many addressof stringstream以外完了
3131 addressof all the things 完了
3132 Library needs to ban macros named expects or ensures
3137 Header for __cpp_lib_to_chars
3140 COMMON_REF is unimplementable as specified
3145 file_clock breaks ABI for C++17 implementations 完了
3147 Definitions of likely and unlikely are likely to cause problems
3148 <concepts> should be freestanding 完了
3153 Common and common_type have too little in common 完了
3154 Common and CommonReference have a common defect 完了
3160 atomic_ref() = delete; should be deleted 完了
3012 atomic is unimplementable for non-is_trivially_copy_constructible T 完了
3040 basic_string_view::starts_with Effects are incorrect 完了
3077 (push|emplace)_back should invalidate the end iterator
3087 One final &x in [list.ops] 完了
3101 span's Container constructors need another constraint 完了
3112 system_error and filesystem_error constructors taking a string may not be able to meet their postconditions system_error以外は完了
3119 Program-definedness of closure types
3133 Modernizing numeric type requirements
3144 span does not have a const_pointer typedef 完了
3173 Enable CTAD for ref-view
3179 subrange should always model Range
3180 Inconsistently named return type for ranges::minmax_element
3182 Specification of Same could be clearer 完了
3209 Expression in year::ok() returns clause is ill-formed 完了
3208 Boolean's expression requirements are ordered inconsistently 完了
3206 year_month_day conversion to sys_days uses not-existing member function 完了
3202 P0318R1 was supposed to be revised
3199 istream >> bitset<0> fails
3198 Bad constraint on std::span::span() 完了
3196 std::optional<T> is ill-formed if T is an array 完了
3191 std::ranges::shuffle synopsis does not match algorithm definition
3187 P0591R4 reverted DR 2586 fixes to scoped_allocator_adaptor::construct()
3186 Ranges remove, partition, and partial_sort_copy algorithms discard useful information
3185 Uses-allocator construction functions missing constexpr and noexcept
3184 Inconsistencies in bind_front wording 対応なし
3183 Normative permission to specialize ranges variable templates
3169 Ranges permutation generators discard useful information
3158 tuple(allocator_arg_t, const Alloc&) should be conditionally explicit
3055 path::operator+=(single-character) misspecified
2899 is_(nothrow_)move_constructible and tuple, optional and unique_ptr
3070 path::lexically_relative causes surprising results if a filename can also be a root-name
3103 Errors in taking subview of span should be ill-formed where possible 完了
3149 default_constructible should require default initialization 完了
3190 std::allocator::allocate sometimes returns too little storage
3218 Modifier for %d parse flag does not match POSIX and format specification 完了
3221 Result of year_month arithmetic with months is ambiguous 完了
3222 P0574R1 introduced preconditions on non-existent parameters
3224 zoned_time constructor from TimeZonePtr does not specify initialization of tp_ 完了
3225 zoned_time converting constructor shall not be noexcept 完了
3230 Format specifier %y/%Y is missing locale alternative versions 完了
3231 year_month_day_last::day specification does not cover !ok() values 完了
3232 Inconsistency in zoned_time deduction guides 完了
3235 parse manipulator without abbreviation is not callable 完了
3241 chrono-spec grammar ambiguity in [time.format] 対応なし
3244 Constraints for Source in [fs.path.req] insufficiently constrainty
3245 Unnecessary restriction on %p parse specifier 完了
3246 What are the constraints on the template parameter of basic_format_arg?
3253 basic_syncbuf::basic_syncbuf() should not be explicit
3256 Feature testing macro for constexpr algorithms
3257 Missing feature testing macro update from P0858
3259 The definition of constexpr iterators should be adjusted
3266 to_chars(bool) should be deleted 完了
3272 %I%p should parse/format duration since midnight 完了
3273 Specify weekday_indexed to range of [0, 7] 完了
3274 Missing feature test macro for <span>
3276 Class split_view::outer_iterator::value_type should inherit from view_interface
3277 Pre-increment on prvalues is not a requirement of weakly_incrementable 完了

C++20の規格書には入らずC++23扱いだが、実際にはC++20に含まれる変更:

LWG DR タイトル 対応状況(空 or 完了 or 対応しない or 担当名)
3483 transform_view::iterator's difference is overconstrained
3482 drop_view's const begin should additionally require sized_range
3477 Simplify constraints for semiregular-box
3476 thread and jthread constructors require that the parameters be move-constructible but never move construct the parameters
3474 Nesting join_views is broken because of CTAD
3473 Normative encouragement in non-normative note
3472 counted_iterator is missing preconditions 完了
3467 bool can't be an integer-like type 完了
3466 Specify the requirements for promise/future/shared_future consistently
3465 compare_partial_order_fallback requires F < E 完了
3461 convertible_to's description mishandles cv-qualified void 完了
3460 Unimplementable noop_coroutine_handle guarantees
3455 Incorrect Postconditions on unique_ptr move assignment
3453 Generic code cannot call ranges::advance(i, s) 完了
3449 take_view and take_while_view's sentinel<false> not comparable with their const iterator
3448 transform_view's sentinel<false> not comparable with iterator<true>
3446 indirectly_readable_traits ambiguity for types with both value_type and element_type 完了
3437 __cpp_lib_polymorphic_allocator is in the wrong header
3434 ios_base never reclaims memory for iarray and parray
3428 single_view's in place constructor should be explicit
3427 operator<=>(const shared_ptr<T>&, nullptr_t) definition ill-formed
3426 operator<=>(const unique_ptr<T, D>&, nullptr_t) can't get no satisfaction
3425 condition_variable_any fails to constrain its Lock parameters
3421 Imperfect ADL emulation for boolean-testable
3420 cpp17-iterator should check that the type looks like an iterator first
3419 [algorithms.requirements]/15 doesn't reserve as many rights as it intends to
3406 elements_view::begin() and elements_view::end() have incompatible constraints
3405 common_view's converting constructor is bad, too
3404 Finish removing subrange's conversions from pair-like
3403 Domain of ranges::ssize(E) doesn't match ranges::size(E)
3306 ranges::advance violates its preconditions
3171 LWG2989 breaks directory_entry stream insertion
3036 polymorphic_allocator::destroy is extraneous 完了
3170 is_always_equal added to std::allocator makes the standard library treat derived types as always equal
3120 Unclear behavior of monotonic_buffer_resource::release()
2820 Clarify <cstdint> macros
2743 P0083R3 node_handle private members missing "exposition only" comment
2731 Existence of lock_guard<MutexTypes...>::mutex_type typedef unclear
3464 istream::gcount() can overflow
3450 The const overloads of take_while_view::begin/end are underconstrained
3447 Deduction guides for take_view and drop_view have different constraints
3432 Missing requirement for comparison_category
3435 three_way_comparable_with<reverse_iterator<int*>, reverse_iterator<const int*>> 完了
3249 There are no 'pointers' in [atomics.lockfree]
3236 Random access iterator requirements lack limiting relational operators domain to comparing those from the same range
3211 std::tuple<> should be trivially constructible
3195 What is the stored pointer value of an empty weak_ptr?
3143 monotonic_buffer_resource growth policy is unclear
3117 Missing packaged_task deduction guides 完了
2839 Self-move-assignment of library types, again
P2315R0 C++ Standard Library Issues to be moved in Virtual Plenary, Feb. 2021
P2231R1 Missing constexpr in std::optional and std::variant
P2216R3 std::format improvements
P2281R1 Clarifying range adaptor objects
P2328R1 join_view should join all views of ranges 完了
P2325R3 Views should not be required to be default constructible 完了
P2210R2 Superior String Splitting
P2367R0 Remove misuses of list-initialization from Clause 24 完了