cppstat - C++ Compiler Support Status

18 min read Original article ↗

Reflection for C++26 (<meta>)InfoInfo

26P2996

Annotations for ReflectionInfo

26P3394

Splicing a base class subobjectInfo

26P3293

define_static_{string,object,array}InfoInfo

26P3491

Function Parameter Reflection in Reflection for C++26Info

26P3096

Expansion Statements (template for)Info

26P1306

16

Error Handling in ReflectionInfoInfo

26P3560 26P3533

16

26P2900

Standard library hardeningInfoInfo

26P3471

15

18

19.44

16

Minor additions to C++26 standard library hardeningInfoInfo

26P3697

19.50

Trivial Relocatability For C++26 [Removed from C++26]Info

26P2786

16*

21

26P2662

15

19

16.3

26P2738

14

17

16.3

Static storage for braced initializers26P2752

14

26P2741

14

17

16.3

A nice placeholder with no name (using _ as a variable name)Info

26P2169

14

18

16.3

#embed - a scannable, tooling-friendly binary resource inclusion mechanismInfo

26P1967

15*

19*

16.3*

On the ignorability of standard attributes26P2552

15

Yes

16.3

Remove deprecated arithmetic conversion on enumerations26P2864

14

18

16.3

UB? In My Lexer? (Remove undefined behavior from lexing)26P2621

Yes

3.3

16

Template parameter initialization26P2308

9

18

16.3

Disallow binding a returned glvalue to a temporary26P2748

14

19

16.3

26P0609

15

19

16.3

Making non-encodable string literals ill-formed26P1854

14

14

16

Unevaluated strings26P2361

14

17

18

16

Add @, $, and ` to the basic character set26P2558

15

Yes

15

Erroneous behavior for uninitialized reads (and [[indeterminate]] attribute)26P2795

16

= delete("should have a reason");Info

26P2573

15

19

16.3

Clarifying rules for brace elision in aggregate initialization26P3106

Yes

17

16.3

Module declarations shouldn't be macros26P3034

15

26P3037

Trivial infinite loops are not undefined behaviorInfo

26P2809

14

19

16.3

26P2747

15

20

26

Structured binding declaration as a conditionInfo

26P0963

15

6

21

26P2988

16

22

26P2546
P2810

16*

Variadic friendsInfo

26P2893

15

20

26P3383

dextents index type parameter (std::dims)InfoInfo

26P2389

16

19

26P2642

16

26P3029

16

19

26P2927 26P3748 26P2830

execution::write_env and unstoppable sender adaptorsInfo

26P3284

Parallel range algorithmsInfo

26P3179 26P3709

Rename std::observable() to std::observable_checkpoint(), and add a feature-test macroInfo

26P3641

std::string::subview()Info

26P3044

22

Interleaved complex values support in std::simdInfo

26P2663

Extend <bit> header function with overloads for std::simdInfo

26P2933

Proposal to extend std::simd with more constructors and accessorsInfo

26P2876

std::simd is a rangeInfoInfo

26P3480

Extend std::simd with permutation APIInfoInfo

26P2664

Reconsider naming of the namespace for std::simdInfo

26P3691 26P3570 26P3481

Allocator support for operation statesInfo

26P3433

async_scope - Creating scopes for non-sequential concurrencyInfoInfo

26P3149

Remove std::execution::split()Info

26P3682

Parallel schedulerInfoInfo

26P2079 26P3503

19.51

Atomic floating-point min/maxInfoInfo

26P3008

Atomic reduction operationsInfoInfo

26P3111

Add std::views::indices(n)InfoInfo

26P3060

22

Prevent path presentation problemsInfoInfo

26P2319 26P3223

22

19.50

std::constant_wrapperInfoInfo

26P2781

16

High-quality sender diagnostics with constexpr exceptionsInfo

26P3557 Preprocessing is never undefined26P2843

16

Add a coroutine task typeInfoInfo

26P3552 26P1317

Ordering of constraints involving fold expressionsInfo

26P2963

19

16.3

Deleting a pointer to an incomplete type should be ill-formed26P3144

15

19

16.3

26P1061

16

21

constexpr structured bindings and references to constexpr variables26P2686

16

22

Allowing exception throwing in constant-evaluation (constexpr exceptions)Info

26P3068

16

The Oxford variadic comma26P3176

15

20

Remove deprecated array comparisons from C++2626P2865

15

20

16

C++26 should refer to C23 not C17Info

26P3348

Concept and variable-template template-parametersInfo

26P2841

Trivial unions (was std::uninitialized<T>)Info

26P3074 Partial program correctness (std::observable())26P1494

16

Testing for success or failure of <charconv> functionsInfoInfo

26P2497

14

18

26P1885
P2862

14

26P2587

14

Type-checking format argsInfoInfo

26P2757

15

Formatting pointersInfoInfo

26P2510

14

17

19.40

Hashing support for chrono value classesInfoInfo

26P2592

16

Read-copy update (RCU) (<rcu>)InfoInfo

26P2545 26P2530 26P2538

14

18

19.38

16

26P2562

15

21

26P2637

15

19

16.3

26P2641

22

Extending associative containers with the remaining heterogeneous overloadsInfoInfo

26P2363

Enabling the use of std::weak_ptr as keys in unordered associative containersInfoInfo

26P1901

16

Native handles and file streamsInfoInfo

26P1759

14

18

16

26P2495

16

19

16.3

26P2697

16

18

16

26P1383

4.6

26P2734

14

17

26P0792

16

26P2548

16

26P2714

16

20

std::submdspan()InfoInfo

26P2630
P3355

16

26P2013 26P2338

Freestanding Feature-Test Macros and Implementation-Defined ExtensionsInfoInfo

26P2198

Saturation arithmeticInfoInfo

26P0543

14

18

16

A free function linear algebra interface based on the BLAS (<linalg>)InfoInfo

26P1673
P3050
P3222

Make assert() macro user friendly for C and C++Info

26P2264 26P2905

14

18

19.40

16

26P2918

14

18

16

26P2447

15

18

16

26P2821

14

18

16

Add tuple protocol to complexInfoInfo

26P2819

15

19

16.3

26P0952

16

19.42

26P2868

15

18

16

26P2870

18

16

Remove deprecated Unicode conversion facets from C++26 (<codecvt>)Info

26P2871

18

16

26P2937

14

19.40

Freestanding library: Partial ClassesInfoInfo

26P2407

14

19.40

26P2833

14

19.42

26P2836
P2950

14

19.40

Fix formatting of code units as integers (Dude, where's my char?)InfoInfo

26P2909

13.3

18

19.40

16

26P2542

15

26P2591

15

19

16.3

Enabling list-initialization for algorithmsInfoInfo

26P2248
P3217

15

26P1068 26P2944

14

19

22*

Atomic minimum/maximumInfoInfo

26P0493

Formatting of filesystem::path (std::formatter<filesystem::path>)InfoInfo

26P2845 26P3142

14

19

19.41

16.3

26P2875

15

19.41

Remove deprecated strstreams from C++26Info

26P2867

19

Remove deprecated std::shared_ptr atomic access APIs from C++26Info

26P2869 26P2872

19

Permit an efficient implementation of std::print()InfoInfo

26P3107
P3235

16

19.43

Remove [[nodiscard]] annotations from the standard library specificationInfo

26P2422

19*

26P2300
P3396 26P0843 26P2075 26P3168

22

26P2985

15

20

26

26P2968

15

19

19.42

Removing the common reference requirement from the indirectly invocable conceptsInfo

26P2997

15

19

19.42

26P3247

15

21

Retiring niebloidsInfo

26P3136

Yes

14

19.39

14.3

26P3138

15

26P3379

15

21

std::aligned_accessor: An std::mdspan accessor expressing pointer over-alignment (and std::is_sufficiently_aligned())InfoInfo

26P2897

16

21

26P2835

22

26P3323

19.44

26P3309

Wording for "constexpr for specialized memory algorithms"InfoInfo

26P3508

15

26P3369 26P3370

15

std::simd (<simd>)InfoInfo

26P1928

Rename simd_split() to simd_chunk()Info

26P3441

Utility for creating execution environmentsInfo

26P3325 26P3378

Defang and deprecate std::memory_order::consumeInfo

26P3475 26P0472

15

21

19.50

26P3019

16

26P3372 26P3074 26P3137

15

ranges::approximately_sized_range and ranges::reserve_hint()InfoInfo

26P2846 26P0447 26P2976

Converting contiguous iterators to pointersInfo

26P3349

15

19.51

Allow attaching main() to the global module26P3618

16

21

Wording for NB comment resolution on trivial relocationInfo

26P3920

Yes

Yes

Yes

Yes

Resolve inconsistencies in begin/end for std::valarray and braced initializer listsInfo

26P3016

flat_meow fixesInfoInfo

26P3567

22

Future-proof submdspan_mappingInfo

26P3663

Assorted NB comment resolutions for Kona 2025Info

26P3914

Make std::optional<T&> trivially copyableInfo

26P3836

22

Proposed Resolution for NB Comment GB13-309 std::atomic_ref<T> is not convertible to std::atomic_ref<const T>Info

26P3860

When Do You Know execution::connect() Doesn’t Throw?Info

26P3388

Rename std::nontype, and make it broadly usefulInfo

26P3774

Remove evaluation_exception() from contract-violation handling for C++26Info

26P3819

Harmonize proxy-reference operations (LWG3638 and LWG4187)Info

26P3612

Fix for std::type_order template definitionInfo

26P3778

Library Support for Expansion StatementsInfoInfo

26P1789

22

Missing deduction guide from simd::mask to simd::vecInfoInfo

26P3922

Standard library hardening should not use the 'observe' semanticInfo

26P3878

Make execution::when_all() a Ronseal AlgorithmInfo

26P3887

Additional NB comment resolutions for Kona 2025Info

26P3923

Fix C++26 by making the rank-1, rank-2, rank-k, and rank-2k updates consistent with the BLASInfoInfo

26P3371 26P3391 26P3913 Fix erroneous behaviour termination semantics for C++2626P3684

Literal suffix for (signed) size_t (uz/t)Info

23P0330

11

13

19.43

13.4.1

Down with ()! (relax () rules for lambdas)23P1102

11

13

19.44

13.4.1

23P1938

12

14

19.44

14

Removing garbage collection support23P2186

12

Yes

19.30

Yes

Narrowing contextual conversions to bool (in static_assert and constexpr if)23P1401

9

13

14

19.21*

19.32

14

Trimming whitespaces before line splicing23P2223

Yes

Yes

Yes

Make declaration order layout mandated23P1847

Yes

Yes

19.30

Yes

Remove mixed wide string literal concatenation23P2201

Yes

Yes

Yes

Yes

23P0847

14

18

19

19.32

19.43

16.3

Proposed resolution for CWG2692 static and explicit object member functions with the same parameter-type-lists23P2797

14

19

19.50

16.3

Decay-copy in the language (auto(x) and auto{x})Info

23P0849

12

15

19.50

14.3

Add support for preprocessing directives #elifdef and #elifndef23P2334

12

13

19.40

13.4.1

Non-literal variables (and labels and gotos) in constexpr functionsInfo

23P2242

12

15

19.43

14.3

Consistent character literal encoding23P2316

Yes

Yes

19.30

Yes

Character sets and encodings23P2314

10

Yes

Yes

Extend init-statement (of for loop) to allow alias-declaration23P2360

12

14

19.50*

14

Multidimensional subscript operator (operator[x, y])Info

23P2128

12

15

19.42

14.3

Attributes on lambdas23P2173

9

13

19.44

13.4.1

#warning23P2437

13

Yes

19.50

15

Remove non-encodable wide character literals and multicharacter wide character literals23P2362

13

14

15

Labels at the end of compound statements23P2324

13

16

16

Delimited escape sequences23P2290

13

15

19.50

15

Named universal character escapesInfo

23P2071

13

15

15

23P2448

13

19

16.3

Simpler implicit moveInfo

23P2266

13

13

26

static operator() (static call operator)Info

23P1169

13

16

19.44

16

Requirements for optional extended floating-point types23P1467

13

Yes

Class template argument deduction from inherited constructors23P2582

14

Attribute [[assume]]23P1774

13

19

16.3

Support for UTF-8 as a portable source file encoding23P2295

13

15

19

15

static operator[]Info

23P2589

13

16

19.44

16

23P2647

13

16

16

Extending the lifetime of temporaries in range-based for loop initializerInfo

23P2644
P2718

15

19

16.3

Declarations and where to find them23P1787 Change scope of lambda trailing-return-type23P2036
P2579

16

17

16.3

Meaningful exports23P2615

15

17

23P2564

14

17

16

C++ identifier syntax using Unicode Standard Annex 3123P1949

12

14

14

Allow duplicate attributes23P2156

11

13

13.4.1

Adjusting the value of feature-test macro __cpp_concepts23P2493

12

19

19.32

16.4

Relax requirements on wchar_t to match existing practices23P2460

Yes

Yes

Yes

15

Using unknown pointers and references in constant expressions23P2280

14

20

19.50

The equality operator you are looking for23P2468

13

16

16

char8_t compatibility and portability fixInfo

23P2513

13

16

19.34

16

23P0881

12

14

19.34

23P2301

12

14

19.34

23P0943

12

15

19.31

14.3

23P1048

11

12

19.30

13

23P1679

11

12

19.30

13

23P1682

11

13

19.30

13.4.1

23P2212

Providing size feedback in the Allocator interfaceInfoInfo

23P0401

15

19.30

14.3

23P0448

12

19.31

23P1132

14

19

19.30

16.4

23P1328

12

17

19.33

19.34

15

23P1425

12

14

19.31

14.3

Non-deduction context for allocators in container deduction guidesInfo

23P1518

12

13

19.31

13.4.1

23P1659

16

17

19

19.31

16

23P2166

12

13

19.30

13.4.1

23P2136

12

17

19.31

15

23P1989

11

14

19.30

14.3

Default template arguments for std::pair's forwarding constructorInfo

23P1951

14

14

19.30

14.3

Remove garbage collection and reachability-based leak detection (library support)Info

23P2186

12

14

19.30

14.3

23P2321

13

15

19.33

14.3

Heterogeneous erasure overloads for associative containersInfoInfo

23P2077

19.32

23P1272

12

14

19.31

14.3

Printing volatile T*Info

23P1147

11.3

14

19.31

14.3

23P1072

12

14

19.31

14.3

Monadic operations for std::optional (and_then(), or_else(), transform())InfoInfo

23P0798

12

14

19.32

14.3

23P0288

12

17

19.32

23P2401

12

14

19.25

14.3

23P2251

Yes

Yes

Yes

Yes

Clarifying the status of the "C headers"Info

23P2340

Yes

Yes

Yes

Yes

23P0323
P2549

12

16

19.33

15

23P0533 23P0627

12

15

19.32

14.3

23P1413

13

16

19.33

16.1

23P2255

13

14

21

19.50

16.3

23P2273

12

16

19.33

15

Conversions from ranges to containers (ranges::to())InfoInfo

23P1206

14

15

17

19.34

15

23P2387

13

14

19

19.34

16.3

23P2440

13

21

19.34

23P2441

13

21

19.34

23P2442

13

19.33

23P2443

13

18

19.33

16

23P0009
P2599
P2604
P2613
P2763

16

18

19.39

15

Referencing the Unicode StandardInfo

23P2736

19

16

De-deprecating volatile compound operations.Info

23P2327

15

23P0429

15

20

26

23P1222

15

21

23P1223

13

19

19.36

16.3

23P1642

13

23P1899

13

19.34

Compatibility between std::tuple and tuple-like objectsInfoInfo

23P2165

14

16

2.9

19.36

19.37

Yes

Rectifying constant iterators, sentinels and ranges (views::as_const())InfoInfo

23P2278

13

19.35

19.36

Formatting rangesInfoInfo

23P2286

15

15.2

16

19.37

19.39

19.41

19.42

15

Improve default container formattingInfoInfo

23P2585

15

16

17

15

Formatted output library (<print>)InfoInfo

23P2093
P2539

14

17

18

19.37

15

16

23P2693

14

17

19.38

15

23P2291

13

16

19.34

15

23P2302

13

18

19

19.34

16

16.3

Ranges fold algorithms (ranges::fold())InfoInfo

23P2322

13

19.35

23P2374
P2540

13

19.37

23P2404

22*

19.36

Ranges iterators as inputs to non-ranges algorithmsInfoInfo

23P2408

19.34

23P2417

13

16

19.34

15

std::basic_string::substr() &&Info

23P2438

16

19.34

15

23P2446

13

16

19.34

15

Standard library modules (import std)InfoInfo

23P2465

15*

17

19

19.35

19.36

23P2445

14

16

19.34

15

23P2467

12

18

19.36

16

23P2474

13

17

19.36

15

Relaxing range adaptors to allow for move-only typesInfoInfo

23P2494

14

17

19.34

15

23P2499

12.2

16

19.34

15

std::generator: synchronous coroutine generator for rangesInfoInfo

23P2502
P2787

14

19.43

23P2517

10

18

19.34

16

23P2590
P2679

16

Clarify handling of encodings in localized formatting of chrono typesInfoInfo

23P2419

15

19.34

std::move_iterator<T*> should be a random access iteratorInfoInfo

23P2520

12.3

17

19.34

15

Deduction guides update for static operator()Info

23P1169

13

16

19.39

15

Standard names and library support for extended floating-point typesInfo

23P1467

13

19.37

Monadic operations for std::expected (and_then(), or_else(), transform())InfoInfo

23P2505

13

17

19.36

15

23P2164

13

19.37

23P2674

20

19.50

26

23P2655

21*

19.37

23P2652

19

19.37

23P2614

18

19.37

16

Making multi-param constructors of views explicitInfo

23P2711

16

17

19.36*

15

Relaxing Ranges Just A SmidgeInfoInfo

23P2609

15

20

19.37

26

Stashing stashing iterators for proper flatteningInfo

23P2770

14

21

19.37

23P2162

11.3

13

19.20

19.30

16.1

Conditionally borrowed rangesInfo

23P2017

11

16

19.30

16.1

Repairing input range adaptors and std::counted_iteratorInfo

23P2259

12

19.30

19.31

23P2328

11.2

15

19.30

14.3

Views should not be required to be default-constructibleInfoInfo

23P2325

11.3

16

19.30

15

Range adaptor objects bind arguments by valueInfo

23P2281

11

14

19.29

19.31

14.3

23P2231

11.3

12

13

19

19.31

13.4.1

16.3

Superior string splitting (views::lazy_split() and redesigned views::split())Info

23P2210

12

16

19.31

15

23P2432

12

16

19.31

15

What is a view?Info

23P2415

12

14

19.31

14.3

Fixing locale handling in chrono formattersInfo

23P2372

13

21

19.31

16.1

Cleaning up integer-class typesInfo

23P2393

19.32

23P2216

13

15

19.32

14.3

23P2418

13

15

19.32

14.3

23P2508

13

15

19.35

14.3

Poison Pills are Too ToxicInfoInfo

23P2602

14

19

19.36

16.3

23P2572

14

17

19.37

23P2675

14

17

19.38

16.1

23P2588

19.28*

19.36

Allow lambda capture [=, this]20P0409

8

6

19.22

10

__VA_OPT__20P0306
P1042

8

10

12

9

19.21

12

Designated initializersInfo

20P0329

4.7

8

3

10

19.21

12

Familiar template syntax for generic lambdas (template-able lambdas)Info

20P0428

8

9

19.22

11

Default member initializers for bit-fields20P0683

8

6

19.25

10

Initializer list constructors in class template argument deduction20P0702

8

6

19.14

Yes

const&-qualified pointers to members20P0704

8

6

19.0

10

ConceptsInfo

20P0734

5

10

10

19.23

12

Wording for lambdas in unevaluated contexts20P0315

9

13

14

17

19.28

13.4.1

20P0515

10

8

10

19.20

12

Simplifying implicit lambda capture20P0588

8

19.24

init-statements for range-based for20P0614

9

8

19.25

11

Default constructible and assignable stateless lambdas20P0624

9

8

19.22

10.2

const mismatch with defaulted copy constructor20P0641

9

8

19.0

10.2

Access checking on specializations20P0692

Yes

8

14

19.26

14

ADL and function templates that are not visible20P0846

9

9

19.21

11.4

Specify when constexpr function definitions are needed for constant evaluationInfo

20P0859

5.2

9

8

19.27

19.31

11

Fixing functionality gaps in constraints20P0857

10

16

19.23

12

Attributes [[likely]] and [[unlikely]]20P0479

9

12

19.26

13

Down with typename!20P0634

9

16

19.29

16

Pack-expansions in lambda init-capturesInfo

20P0780

9

9

19.22

11.4

Language support for empty objects ([[no_unique_address]] attribute)20P0840

9

9

19.28

11.4

Conditionally trivial special member functionsInfo

20P0848

10

16

19.28

16.3

Relaxing the structured bindings customization point finding rules20P0961

8

8

19.20

10.2

Relaxing the range-for loop customization point finding rules20P0962

8

8

19.25

11

Allow structured bindings to accessible members20P0969

8

8

19.20

10.2

Destroying operator deleteInfo

20P0722

9

6

19.27

10

Class types in non-type template parameters20P0732

9

12

19.26

19.28

13

16.3

Deprecate implicit capture of this via [=]20P0806

9

7

19.22

10.2

explicit(bool)Info

20P0892

9

9

19.24

11.4

Integrating feature-test macros20P0941

5

3.4

19.15

19.20

Yes

Prohibit aggregates with user-declared constructors20P1008

9

8

19.20

10.2

Allowing virtual function calls in constant expressionsInfo

20P1064

9

9

19.28

11.4

Consistency improvements for comparisons20P1120

10

8

10

19.22

12

char8_t: A type for UTF-8 characters and stringsInfo

20P0482

9

7

19.22

10

20P0595

9

9

19.25

11.4

constexpr try-catch blocks20P1002

9

8

19.25

10.2

20P1073

10

11

11

14

17

19.28

19.29

15

Nested inline namespaces20P1094

9

8

19.27

10.2

Yet another approach for constrained declarations20P1141

10

10

19.26

19.28

12.5

Signed integers are two's complement20P1236

9

9

Yes

11.4

dynamic_cast and polymorphic typeid in constant expressions20P1327

10

9

19.28

11.4

20P1330

9

9

19.10

10.3

CoroutinesInfo

20P0912

10*

8

17

19.0

19.10

19.28

10.2

Parenthesized initialization of aggregatesInfo

20P0960
P1975

10

16

19.28

16

Array size deduction in new-expressions20P1009

11

9

19.27

11.4

ModulesInfo

20P1103
P1703
P1766
P1779
P1811
P1815
P1857
P1874
P1979
P2115
P2615
P2788

11

15*

16*

17

21

19.0

19.28

26*

Stronger Unicode requirements20P1041
P1139

10

Yes

19.0

Yes

<=> != ==20P1185

10

10

19.22

12

Explicitly defaulted functions with different exception specifications20P1286

10

9

19.28

11.4

Structured binding extensions20P1091
P1381

10

8

16

19.11

19.24

16

Permit conversions to arrays of unknown bound20P0388

10

14

19.27

14

20P0784

10

10

19.28

12

Deprecating some uses of volatile20P1152

10

10

19.27

12

20P1143

10

10

19.29

12

Missing feature test macros20P1353

9

9

19.29

Yes

Deprecate comma operator in subscripts20P1161

10

9

19.25

11.4

[[nodiscard("should have a reason")]]20P1301

10

9

19.25

11.4

Permitting trivial default initialization in constexpr contexts20P1331

10

10

19.27

12

Unevaluated asm-declaration in constexpr functions20P1668

10

10

19.28

12

20P1099

11

13

19.24

13.4.1

Synthesizing Three-way comparison for specified comparison category20P1186

11

10

19.24

12

[[nodiscard]] for constructors20P1771

10

9

19.24

11.4

Class template argument deduction for alias templatesInfo

20P1814

10

19

19.27

Class template argument deduction for aggregatesInfo

20P1816
P2082

10

11

17

19.27

Implicit move for more local objects and rvalue references20P1825

11

13

19.24

13.4.1

Allow defaulting comparisons by value20P1946

10

10

19.25

12

Remove std::weak_equality and std::strong_equality20P1959

10

10

19.25

12

Inconsistencies with constant template parametersInfo

20P1907

10

11

18

19.26

13.4.1

Pseudo-destructors end object lifetimes20P0593

11

11

Yes

12.5

20P0463

8

7

19.22

10

20P0674

12

15

19.27

14.3

Floating Point AtomicInfoInfo

20P0020

10

18

19.22

16

20P0053

11

18

19.29

20P0202

10

8

12

19.26

10.2

13

20P0415

9

7

16

19.27

10

15

20P0439

9

9

19.25

11.4

20P0457

9

6

19.21

10

20P0768

10

7

12

17

19.20

19.28

13

20P0550

9

6

19.20

10

20P0600

9

7

16

19.13

19.22

10

15

20P0616

9

12

19.23

13

20P0653

8

6

19.22

Yes

20P0718

12

19.27

20P0122

10

7

19.26

10

Extending <chrono> to calendars and time zonesInfoInfo

20P0355

11

13

14

7

19

19.29

10

20P0754

9

7

19.22

10

Comparing unordered containersInfo

20P0809

Yes

Yes

16.0

Yes

20P0858

9

12

19.11

13

20P0966

11

8

19.25

10.2

Atomic compare-and-exchange with padding bitsInfo

20P0528

13

19.28

20P0019

10

19

19.28

16.3

20P0458

9

13

19.21

13.4.1

Guaranteed copy elision for piecewise constructionInfo

20P0475

9

Yes

19.29

Yes

20P0476

11

14

19.27

14.3

20P0556
P1956

9

10

9

12

19.28

11.4

13

Improving the return value of erase-like algorithmsInfoInfo

20P0646

9

10

19.21

12

20P0722

9

9

19.27

11.4

20P0758

9

9

19.23

11.4

20P0769

10

12

19.21

13

20P0879

10

13

19.26

13.4.1

20P0887

9

8

19.21

10.2

Concepts libraryInfoInfo

20P0898

10

13

19.23

13.4.1

20P1023

10

8

19.27

10.2

20P0318

9

8

19.21

10.2

20P0356

9

13

19.25

13.4.1

20P0357

9

8

19.26

10.2

Fixing operator>>(basic_istream&, CharT*)Info

20P0487

11

8

19.23

10.2

20P0482

9

8

16

19.22

10.2

15

Utility functions to implement uses-allocator constructionInfo

20P0591

9

16

19.29

15

20P0602

8.3

8

19.11

10.2

20P0608

10

9

19.29

19.42

11.4

20P0771

7.2

6

19.22

Yes

The One Ranges ProposalInfoInfo

20P0896

10

13

15

19.29

14.3

Heterogeneous lookup for unordered associative containersInfoInfo

20P0919
P1690

11

12

19.23

19.25

13

20P0972

9

8

19.14

10.2

20P1006

9

8

19.26

10.2

20P1007

9

11

15

19.28

14.3

20P1020
P1973

11

12

16

19.28

15

20P1032

10

13

19.28

13.4.1

Remove comparison operators of std::spanInfo

20P1085

10

8

19.26

10.2

Make stateful allocator propagation more consistent for operator+(basic_string)Info

20P1165

10

15

19.26

14.3

20P1209
P1115

9

10

8

11

19.25

19.27

10.2

12.5

Standard library header unitsInfo

20P1502

11

19.29

pmr::polymorphic_allocator<> as a vocabulary typeInfoInfo

20P0339

9

16

19.28

15

Target Vectorization Policies from Parallelism V2 TS to C++20 (std::execution::unseq)InfoInfo

20P1001

9

17*

19.28

20P0811

9

9

19.23

19.28

11.4

20P1024

10

9

14

19.26

11.4

20P1164

8.3

12

19.20

13

20P1227

10

9

19.25

11.4

Traits for (un)bounded arraysInfoInfo

20P1357

9

9

19.25

11.4

20P0325

10

10

19.25

12

20P0408

11

17

19.29

15

Layout-compatibility and pointer-interconvertibility traitsInfoInfo

20P0466

12

19.29

20P0553

9

9

19.25

19.28

11.4

Mathematical constantsInfoInfo

20P0631

10

11

19.25

12.5

20P0645

13

14

17

19.29

15.3

20P0660

10

17

20

19.28*

16.4

26

20P0784

10

12

19.29

13

20P0426
P1032
P0980

12

15

19.29

19.30

14.3

20P1004

12

15

19.29

19.30

14.3

Input range adaptorsInfo

20P1035

10

16

19.29

15

20P1065

10

12

19.28

13

20P1135

11

11

19.28

13.4.1*

Add max() to latch and barrierInfo

20P1865

11

11

19.29

Yes

20P1208

11

16

19.29

15

The Mothership has Landed: Adding <=> to the LibraryInfo

20P1614

10

19

19.29

16.3

Integration of chrono with text formattingInfo

20P1361

13

21

19.29

26

20P0883

10

13

19.26

13.4.1

20P1645

10

12

19.26

13

Safe integral comparisonsInfoInfo

20P0586

10

13

19.27

13.4.1

Reviewing deprecated facilities of C++17 for C++20Info

20P0619

12

20*

19.26

26

Symmetry for spaceshipInfoInfo

20P0905

10

7

16.3

20P1643

19

16.3

20P1638

16

15

20P1650

13

16

19.29

15

Ranges adaptors for non-copyable iteratorsInfo

20P1862

16

15

20P1994

16

15

char8_t backward compatibility remediationInfoInfo

20P1423

10

15

19.26

14.3

Concept traits should be named after conceptsInfo

20P1871

14

19.27

Yes

New Rules for auto deduction from braced-init-list17N3922

5

3.8

19.0

Yes

Allow typename in a template template parameter17N4051

5

3.5

19.0

Yes

Removing trigraphs??!17N4086

5

3.5

16.0

Yes

Nested namespace definition17N4230

6

3.6

19.0

Yes

17N3928

6

2.5

19.10

Yes

Attributes for namespaces and enumeratorsInfo

17N4266

4.9

6

3.6

19.0

Yes

Adding u8 character literalsInfo

17N4267

6

3.6

19.0

Yes

Allow constant evaluation for all non-type template arguments17N4268

6

3.6

19.12

Yes

Unary folds and empty parameter packs17P0036

6

3.9

19.12

Yes

Remove deprecated use of the register keyword17P0001

7

3.8

19.11

Yes

Remove deprecated operator++(bool)17P0002

7

3.8

19.11

Yes

Make exception specifications be part of the type systemInfo

17P0012

7

4

19.12

Yes

__has_include17P0061

5

Yes

19.11

Yes

Rewording inheriting constructorsInfo

17P0136

7

3.9

19.14*

Yes

Extension to aggregate initializationInfo

17P0017

7

3.9

19.14

Yes

Folding expressionsInfo

17N4295

6

3.6

19.12

Yes

Lambda capture of *this by value as [=, *this]17P0018

7

3.9

19.11

Yes

Construction rules for enum class values17P0138

7

3.9

19.11

Yes

17P0170

7

5

19.11

Yes

Generalizing the range-based for loopInfo

17P0184

6

3.9

19.10

Yes

Attribute [[fallthrough]]17P0188

7

3.9

19.10

Yes

Attribute [[nodiscard]]17P0189

7

3.9

19.11

Yes

Attribute [[maybe_unused]]17P0212

7

3.9

19.11

Yes

Hexadecimal floating literalsInfo

17P0245

3

Yes

19.11

Yes

Using attribute namespaces without repetition17P0028

7

3.9

19.11

Yes

Dynamic memory allocation for over-aligned dataInfo

17P0035

7

4

19.12

10

Declaring non-type template parameters with autoInfo

17P0127

7

4

19.14

Yes

Guaranteed copy elisionInfo

17P0135

7

4

19.13

Yes

Replacement of class objects containing reference members17P0137

7

6

19.14

Yes

Refining expression evaluation order for idiomatic C++17P0145

7

4

19.14

Yes

Proposed wording for structured bindingsInfo

17P0217

7

4

19.11

Yes

Standard and non-standard attributes (ignoring unknown attributes)17P0283

Yes

3.9

19.0

Yes

17P0292

7

3.9

19.11

Yes

Init-statements for if and switch17P0305

7

3.9

19.11

Yes

inline variablesInfo

17P0386

7

3.9

19.12

Yes

Removing deprecated exception specifications from C++1717P0003

7

4

19.12

Yes

Pack expansions in using-declarationsInfo

17P0195

7

4

19.14

Yes

Matching of template template-arguments excludes compatible templatesInfo

17P0522

7

4

19.12

Yes

Template argument deduction for class templates (CTAD)Info

17P0091

7

5

19.14

Yes

17N3911

6

3.6

19.0

Yes

17N4259

6

3.6

19.0

Yes

17N4280

6

3.6

19.0

Yes

Cleaning-up noexcept in the libraryInfoInfo

17N4258

6

3.7

19.0

15

17N4169

6

3.7

19.0

Yes

17N4279

6

3.7

19.0

Yes

17N4387

6

4

19.0

Yes

17N4389

6

4

19.0

Yes

17N4508

6

3.7

19.0

Yes

17N4510

3

3.6

18.0

Yes

Adopt type traits variable templates from library fundamentals TS for C++17InfoInfo

17P0006

7

3.8

19.0

Yes

Logical operator type traitsInfoInfo

17P0013

6

3.8

19.0

Yes

Constant View: A proposal for a std::as_const() helper function templateInfo

17P0007

7

3.8

19.0

Yes

17P0092

7

3.8

19.0

Yes

17P0074

7

3.8

19.0

Yes

17P0005
P0358

7

3.9

19.12

Yes

The parallelism TS should be standardized (parallel algorithms)InfoInfo

17P0024

9

17

19.14

17P0025

7

3.9

19.0

10

(nothrow-)swappable traitsInfoInfo

17P0185

7

3.9

19.0

10

Polymorphic memory resourcesInfoInfo

17P0220

9

16

19.13

15

17P0220

7

16

19.13

Yes

17P0226

7

19.14

17LWG2296

7

Yes

19.0

15*

17P0031

7

4

19.11

Yes

17P0152

7

3.9

19.11

Yes

std::enable_shared_from_this::weak_from_this()InfoInfo

17P0033

7

3.9

19.12

Yes

3-argument overload of std::hypot()InfoInfo

17P0030

7

3.9

19.14

Yes

17P0298

7

5

19.11

Yes

17N3921
P0220
P0254
P0403

7

4

19.10

10

17P0220
P0032

7

4

19.11

10

17P0220

7

4

19.10

10

C++17 should refer to C11 instead of C99Info

17P0063

9

7

19.0

19.28

10

17P0083

7

8

19.12

10

emplace() return type in containers (instead of void)Info

17P0084

7

4

19.11

Yes

17P0088

7

4

19.10

10

17P0209

7

4

19.10

Yes

17P0258

7

6

19.11

Yes

17P0295

7

4

19.11

Yes

Replacement of class objects containing reference members (std::launder())InfoInfo

17P0137

7

6

19.14

Yes

17P0040

7

4

19.11

17P0163

7

3.9

19.10

Yes

17P0067

8

11

7

14

20

19.14

19.15

19.16

19.23

10

17P0414

7

11

19.12

12

17P0505

7

4

19.11

Yes

std::shared_ptr<T[]>InfoInfo

17P0497

5

11

19.12

15*

17P0426

8

4

19.14

Yes

17P0218
P0219

8

7

19.14

11

17P0154

12

15

19

19.11

16.3*

17P0156

7

5

19.11

Yes

17LWG2911

7

5

19.15

Yes

17P0604

7

Yes

19.11

Yes

std::hash<filesystem::path>Info

17LWG3657

11.4

17

19.32

15