cppstat - C++ Compiler Support Status (original) (raw)

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

26

P2996

Annotations for ReflectionInfo

26

P3394

Splicing a base class subobjectInfo

26

P3293

define_static_{string,object,array}InfoInfo

26

P3491

Function Parameter Reflection in Reflection for C++26Info

26

P3096

Expansion Statements (template for)Info

26

P1306

16

Error Handling in ReflectionInfoInfo

26

P3560

26

P3533

16

26

P2900

Standard library hardeningInfoInfo

26

P3471

15

18

19.44

16

Minor additions to C++26 standard library hardeningInfoInfo

26

P3697

19.50

Trivial Relocatability For C++26Info

26

P2786

16*

21

26

P2662

15

19

16.3

26

P2738

14

17

16.3

Static storage for braced initializers

26

P2752

14

26

P2741

14

17

16.3

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

26

P2169

14

18

16.3

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

26

P1967

15*

19*

16.3*

On the ignorability of standard attributes

26

P2552

15

Yes

16.3

Remove deprecated arithmetic conversion on enumerations

26

P2864

14

18

16.3

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

26

P2621

Yes

3.3

16

Template parameter initialization

26

P2308

9

18

16.3

Disallow binding a returned glvalue to a temporary

26

P2748

14

19

16.3

26

P0609

15

19

16.3

Making non-encodable string literals ill-formed

26

P1854

14

14

16

Unevaluated strings

26

P2361

14

17

18

16

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

26

P2558

15

Yes

15

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

26

P2795

16

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

26

P2573

15

19

16.3

Clarifying rules for brace elision in aggregate initialization

26

P3106

Yes

17

16.3

Module declarations shouldn't be macros

26

P3034

15

26

P3037

Trivial infinite loops are not undefined behaviorInfo

26

P2809

14

19

16.3

26

P2747

15

20

26

Structured binding declaration as a conditionInfo

26

P0963

15

6

21

26

P2988

16

22

26

P2546
P2810

16*

Variadic friendsInfo

26

P2893

15

20

26

P3383

dextents index type parameter (std::dims)InfoInfo

26

P2389

16

19

26

P2642

26

P3029

16

19

26

P2927

26

P3748

26

P2830

execution::write_env and unstoppable sender adaptorsInfo

26

P3284

Parallel range algorithmsInfo

26

P3179

26

P3709

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

26

P3641

std:🧵:subview()Info

26

P3044

22

Interleaved complex values support in std::simdInfo

26

P2663

Extend header function with overloads for std::simdInfo

26

P2933

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

26

P2876

std::simd is a rangeInfoInfo

26

P3480

Extend std::simd with permutation APIInfoInfo

26

P2664

Reconsider naming of the namespace for std::simdInfo

26

P3691

26

P3570

26

P3481

Allocator support for operation statesInfo

26

P3433

async_scope - Creating scopes for non-sequential concurrencyInfoInfo

26

P3149

Remove std::execution::split()Info

26

P3682

Parallel schedulerInfoInfo

26

P2079

26

P3503

19.51

Atomic floating-point min/maxInfoInfo

26

P3008

Atomic reduction operationsInfoInfo

26

P3111

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

26

P3060

22

Prevent path presentation problemsInfoInfo

26

P2319

26

P3223

22

19.50

std::constant_wrapperInfoInfo

26

P2781

16

High-quality sender diagnostics with constexpr exceptionsInfo

26

P3557

Preprocessing is never undefined

26

P2843

16

Add a coroutine task typeInfoInfo

26

P3552

26

P1317

Ordering of constraints involving fold expressionsInfo

26

P2963

19

16.3

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

26

P3144

15

19

16.3

26

P1061

16

21

constexpr structured bindings and references to constexpr variables

26

P2686

16

22

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

26

P3068

16

The Oxford variadic comma

26

P3176

15

20

Remove deprecated array comparisons from C++26

26

P2865

15

20

16

C++26 should refer to C23 not C17Info

26

P3348

Concept and variable-template template-parametersInfo

26

P2841

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

26

P3074

Partial program correctness (std::observable())

26

P1494

16

Testing for success or failure of functionsInfoInfo

26

P2497

14

18

26

P1885
P2862

14

26

P2587

14

Type checking format argsInfoInfo

26

P2757

15

Formatting pointersInfoInfo

26

P2510

14

17

19.40

Hashing support for chrono value classesInfoInfo

26

P2592

16

Read-copy update (RCU) ()InfoInfo

26

P2545

26

P2530

26

P2538

14

18

19.38

16

26

P2562

15

21

26

P2637

15

19

16.3

26

P2641

22

Extending associative containers with the remaining heterogeneous overloadsInfoInfo

26

P2363

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

26

P1901

16

Native handles and file streamsInfoInfo

26

P1759

14

18

16

26

P2495

16

19

16.3

26

P2697

16

18

16

26

P1383

4.6

26

P2734

14

17

26

P0792

16

26

P2548

16

26

P2714

16

20

std::submdspan()InfoInfo

26

P2630
P3355

26

P2013

26

P2338

Freestanding Feature-Test Macros and Implementation-Defined ExtensionsInfoInfo

26

P2198

Saturation arithmeticInfoInfo

26

P0543

14

18

16

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

26

P1673
P3050
P3222

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

26

P2264

26

P2905

14

18

19.40

16

26

P2918

14

18

16

26

P2447

15

18

16

26

P2821

14

18

16

Add tuple protocol to complexInfoInfo

26

P2819

15

19

16.3

26

P0952

19.42

26

P2868

15

18

16

26

P2870

18

16

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

26

P2871

18

16

26

P2937

14

19.40

Freestanding library: Partial ClassesInfoInfo

26

P2407

14

19.40

26

P2833

14

19.42

26

P2836
P2950

14

19.40

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

26

P2909

13.3

18

19.40

16

26

P2542

15

26

P2591

15

19

16.3

Enabling list-initialization for algorithmsInfoInfo

26

P2248
P3217

15

26

P1068

26

P2944

14

19

22*

Atomic minimum/maximumInfoInfo

26

P0493

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

26

P2845

26

P3142

14

19

19.41

16.3

26

P2875

15

19.41

Remove deprecated strstreams from C++26Info

26

P2867

19

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

26

P2869

26

P2872

19

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

26

P3107
P3235

16

19.43

Remove nodiscard annotations from the standard library specificationInfo

26

P2422

19*

26

P2300
P3396

26

P0843

26

P2075

26

P3168

22

26

P2985

15

20

26

26

P2968

15

19

19.42

Removing the common reference requirement from the indirectly invocable conceptsInfo

26

P2997

15

19

19.42

26

P3247

15

21

Retiring niebloidsInfo

26

P3136

Yes

14

19.39

14.3

26

P3138

15

26

P3379

15

21

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

26

P2897

16

21

26

P2835

22

26

P3323

19.44

26

P3309

Wording for "constexpr for specialized memory algorithms"InfoInfo

26

P3508

15

26

P3369

26

P3370

15

std::simd (<simd>)InfoInfo

26

P1928

Rename simd_split() to simd_chunk()Info

26

P3441

Utility for creating execution environmentsInfo

26

P3325

26

P3378

Defang and deprecate std::memory_order::consumeInfo

26

P3475

26

P0472

15

21

19.50

26

P3019

16

26

P3372

26

P3074

26

P3137

15

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

26

P2846

26

P0447

26

P2976

Converting contiguous iterators to pointersInfo

26

P3349

15

19.51

Allow attaching main() to the global module

26

P3618

16

21

26

P3391

Fix erroneous behaviour termination semantics for C++26

26

P3684

Standard library hardening should not use the 'observe' semanticInfo

26

Library Support for Expansion StatementsInfoInfo

26

P1789

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

23

P0330

11

13

19.43

13.4.1

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

23

P1102

11

13

19.44

13.4.1

23

P1938

12

14

19.44

14

Removing garbage collection support

23

P2186

12

Yes

19.30

Yes

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

23

P1401

9

13

14

19.21*

19.32

14

Trimming whitespaces before line splicing

23

P2223

Yes

Yes

Yes

Make declaration order layout mandated

23

P1847

Yes

Yes

19.30

Yes

Remove mixed wide string literal concatenation

23

P2201

Yes

Yes

Yes

Yes

23

P0847

14

18

19

19.32

19.43

16.3

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

23

P2797

14

19

19.50

16.3

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

23

P0849

12

15

19.50

14.3

Add support for preprocessing directives #elifdef and #elifndef

23

P2334

12

13

19.40

13.4.1

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

23

P2242

12

15

19.43

14.3

Consistent character literal encoding

23

P2316

Yes

Yes

19.30

Yes

Character sets and encodings

23

P2314

10

Yes

Yes

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

23

P2360

12

14

19.50*

14

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

23

P2128

12

15

19.42

14.3

Attributes on lambdas

23

P2173

9

13

19.44

13.4.1

#warning

23

P2437

13

Yes

19.50

15

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

23

P2362

13

14

15

Labels at the end of compound statements

23

P2324

13

16

16

Delimited escape sequences

23

P2290

13

15

19.50

15

Named universal character escapesInfo

23

P2071

13

15

15

23

P2448

13

19

16.3

Simpler implicit moveInfo

23

P2266

13

13

26

static operator() (static call operator)Info

23

P1169

13

16

19.44

16

Requirements for optional extended floating-point types

23

P1467

13

Yes

Class template argument deduction from inherited constructors

23

P2582

14

Attribute [[assume]]

23

P1774

13

19

16.3

Support for UTF-8 as a portable source file encoding

23

P2295

13

15

19

15

static operator[]Info

23

P2589

13

16

19.44

16

23

P2647

13

16

16

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

23

P2644
P2718

15

19

16.3

Declarations and where to find them

23

P1787

Change scope of lambda trailing-return-type

23

P2036
P2579

16

17

16.3

Meaningful exports

23

P2615

15

17

23

P2564

14

17

16

C++ identifier syntax using Unicode Standard Annex 31

23

P1949

12

14

14

Allow duplicate attributes

23

P2156

11

13

13.4.1

Adjusting the value of feature-test macro __cpp_concepts

23

P2493

12

19

19.32

16.4

Relax requirements on wchar_t to match existing practices

23

P2460

Yes

Yes

Yes

15

Using unknown pointers and references in constant expressions

23

P2280

14

20

19.50

The equality operator you are looking for

23

P2468

13

16

16

char8_t compatibility and portability fixInfo

23

P2513

13

16

19.34

16

23

P0881

12

14

19.34

23

P2301

12

14

19.34

23

P0943

12

15

19.31

14.3

23

P1048

11

12

19.30

13

23

P1679

11

12

19.30

13

23

P1682

11

13

19.30

13.4.1

23

P2212

Providing size feedback in the Allocator interfaceInfoInfo

23

P0401

15

19.30

14.3

23

P0448

12

19.31

23

P1132

14

19

19.30

16.4

23

P1328

12

17

19.33

19.34

15

23

P1425

12

14

19.31

14.3

Non-deduction context for allocators in container deduction guidesInfo

23

P1518

12

13

19.31

13.4.1

23

P1659

16

17

19

19.31

16

23

P2166

12

13

19.30

13.4.1

23

P2136

12

17

19.31

15

23

P1989

11

14

19.30

14.3

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

23

P1951

14

14

19.30

14.3

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

23

P2186

12

14

19.30

14.3

23

P2321

13

15

19.33

14.3

Heterogeneous erasure overloads for associative containersInfoInfo

23

P2077

19.32

23

P1272

12

14

19.31

14.3

Printing volatile T*Info

23

P1147

11.3

14

19.31

14.3

23

P1072

12

14

19.31

14.3

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

23

P0798

12

14

19.32

14.3

23

P0288

12

17

19.32

23

P2401

12

14

19.25

14.3

23

P2251

Yes

Yes

Yes

Yes

Clarifying the status of the "C headers"Info

23

P2340

Yes

Yes

Yes

Yes

23

P0323
P2549

12

16

19.33

15

23

P0533

23

P0627

12

15

19.32

14.3

23

P1413

13

16

19.33

16.1

23

P2255

13

14

21

19.50

16.3

23

P2273

12

16

19.33

15

Constructing containers and strings from ranges with ranges::to(), tagged constructors, insert and assign member functionsInfoInfo

23

P1206

14

15

17

19.34

15

23

P2387

13

14

19

19.34

16.3

23

P2440

13

21

19.34

23

P2441

13

21

19.34

23

P2442

13

19.33

23

P2443

13

18

19.33

16

23

P0009
P2599
P2604
P2613
P2763

16

18

19.39

15

Referencing the Unicode StandardInfo

23

P2736

19

16

De-deprecating volatile compound operations.Info

23

P2327

15

23

P0429

15

20

26

23

P1222

15

21

23

P1223

13

19

19.36

16.3

23

P1642

13

23

P1899

13

19.34

Compatibility between std::tuple and tuple-like objectsInfoInfo

23

P2165

14

16

2.9

19.36

19.37

Yes

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

23

P2278

13

19.35

19.36

Formatting rangesInfoInfo

23

P2286

15

15.2

16

19.37

19.39

19.41

19.42

15

Improve default container formattingInfoInfo

23

P2585

15

16

17

15

Formatted output library ()InfoInfo

23

P2093
P2539

14

17

18

19.37

15

16

23

P2693

14

17

19.38

15

23

P2291

13

16

19.34

15

23

P2302

13

18

19

19.34

16

16.3

Ranges fold algorithmsInfoInfo

23

P2322

13

19.35

23

P2374
P2540

13

19.37

23

P2404

19.36

Ranges iterators as inputs to non-ranges algorithmsInfoInfo

23

P2408

19.34

23

P2417

13

16

19.34

15

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

23

P2438

16

19.34

15

23

P2446

13

16

19.34

15

Standard library modules (import std)InfoInfo

23

P2465

15*

17

19

19.35

19.36

23

P2445

14

16

19.34

15

23

P2467

12

18

19.36

16

23

P2474

13

17

19.36

15

Relaxing range adaptors to allow for move-only typesInfoInfo

23

P2494

14

17

19.34

15

23

P2499

12.2

16

19.34

15

std::generator: synchronous coroutine generator for rangesInfoInfo

23

P2502
P2787

14

19.43

23

P2517

10

18

19.34

16

23

P2590
P2679

16

Clarify handling of encodings in localized formatting of chrono typesInfoInfo

23

P2419

15

19.34

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

23

P2520

12.3

17

19.34

15

Deduction guides update for static operator()Info

23

P1169

13

16

19.39

15

Standard names and library support for extended floating-point typesInfo

23

P1467

13

19.37

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

23

P2505

13

17

19.36

15

23

P2164

13

19.37

23

P2674

20

19.50

26

23

P2655

21*

19.37

23

P2652

19

19.37

23

P2614

18

19.37

16

Making multi-param constructors of views explicitInfo

23

P2711

16

17

19.36*

15

Relaxing Ranges Just A SmidgeInfoInfo

23

P2609

15

20

19.37

26

Stashing stashing iterators for proper flatteningInfo

23

P2770

14

21

19.37

23

P2162

11.3

13

19.20

19.30

16.1

Conditionally borrowed rangesInfo

23

P2017

11

16

19.30

16.1

Repairing input range adaptors and std::counted_iteratorInfo

23

P2259

12

19.30

19.31

23

P2328

11.2

15

19.30

14.3

Views should not be required to be default-constructibleInfoInfo

23

P2325

11.3

16

19.30

15

Range adaptor objects bind arguments by valueInfo

23

P2281

11

14

19.29

19.31

14.3

23

P2231

11.3

12

13

19

19.31

13.4.1

16.3

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

23

P2210

12

16

19.31

15

23

P2432

12

16

19.31

15

What is a view?Info

23

P2415

12

14

19.31

14.3

Fixing locale handling in chrono formattersInfo

23

P2372

13

21

19.31

16.1

Cleaning up integer-class typesInfo

23

P2393

19.32

23

P2216

13

15

19.32

14.3

23

P2418

13

15

19.32

14.3

23

P2508

13

15

19.35

14.3

Poison Pills are Too ToxicInfoInfo

23

P2602

14

19

19.36

16.3

23

P2572

14

17

19.37

23

P2675

14

17

19.38

16.1

23

P2588

19.28*

19.36

[=, this]

20

P0409

8

6

19.22

10

__VA_OPT__

20

P0306
P1042

8

10

12

9

19.21

12

Designated initializersInfo

20

P0329

4.7

8

3

10

19.21

12

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

20

P0428

8

9

19.22

11

Default member initializers for bit-fields

20

P0683

8

6

19.25

10

Initializer list constructors in class template argument deduction

20

P0702

8

6

19.14

Yes

const&-qualified pointers to members

20

P0704

8

6

19.0

10

ConceptsInfo

20

P0734

5

10

10

19.23

12

Wording for lambdas in unevaluated contexts

20

P0315

9

13

14

17

19.28

13.4.1

20

P0515

10

8

10

19.20

12

Simplifying implicit lambda capture

20

P0588

8

19.24

init-statements for range-based for

20

P0614

9

8

19.25

11

Default constructible and assignable stateless lambdas

20

P0624

9

8

19.22

10.2

const mismatch with defaulted copy constructor

20

P0641

9

8

19.0

10.2

Access checking on specializations

20

P0692

Yes

8

14

19.26

14

ADL and function templates that are not visible

20

P0846

9

9

19.21

11.4

Specify when constexpr function definitions are needed for constant evaluationInfo

20

P0859

5.2

9

8

19.27

19.31

11

Fixing functionality gaps in constraints

20

P0857

10

16

19.23

12

Attributes [[likely]] and [[unlikely]]

20

P0479

9

12

19.26

13

Down with typename!

20

P0634

9

16

19.29

16

Pack-expansions in lambda init-capturesInfo

20

P0780

9

9

19.22

11.4

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

20

P0840

9

9

19.28

11.4

Conditionally trivial special member functionsInfo

20

P0848

10

16

19.28

16.3

Relaxing the structured bindings customization point finding rules

20

P0961

8

8

19.20

10.2

Relaxing the range-for loop customization point finding rules

20

P0962

8

8

19.25

11

Allow structured bindings to accessible members

20

P0969

8

8

19.20

10.2

Destroying operator deleteInfo

20

P0722

9

6

19.27

10

Class types in non-type template parameters

20

P0732

9

12

19.26

19.28

13

16.3

Deprecate implicit capture of this via [=]

20

P0806

9

7

19.22

10.2

explicit(bool)Info

20

P0892

9

9

19.24

11.4

Integrating feature-test macros

20

P0941

5

3.4

19.15

19.20

Yes

Prohibit aggregates with user-declared constructors

20

P1008

9

8

19.20

10.2

Allowing virtual function calls in constant expressionsInfo

20

P1064

9

9

19.28

11.4

Consistency improvements for comparisons

20

P1120

10

8

10

19.22

12

char8_t: A type for UTF-8 characters and stringsInfo

20

P0482

9

7

19.22

10

20

P0595

9

9

19.25

11.4

constexpr try-catch blocks

20

P1002

9

8

19.25

10.2

20

P1073

10

11

11

14

17

19.28

19.29

15

Nested inline namespaces

20

P1094

9

8

19.27

10.2

Yet another approach for constrained declarations

20

P1141

10

10

19.26

19.28

12.5

Signed integers are two's complement

20

P1236

9

9

Yes

11.4

dynamic_cast and polymorphic typeid in constant expressions

20

P1327

10

9

19.28

11.4

20

P1330

9

9

19.10

10.3

CoroutinesInfo

20

P0912

10*

8

17

19.0

19.10

19.28

10.2

Parenthesized initialization of aggregatesInfo

20

P0960
P1975

10

16

19.28

16

Array size deduction in new-expressions

20

P1009

11

9

19.27

11.4

ModulesInfo

20

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

11

15*

16*

17*

19.0

19.28

26*

Stronger Unicode requirements

20

P1041
P1139

10

Yes

19.0

Yes

<=> != ==

20

P1185

10

10

19.22

12

Explicitly defaulted functions with different exception specifications

20

P1286

10

9

19.28

11.4

Structured binding extensions

20

P1091
P1381

10

8

16

19.11

19.24

16

Permit conversions to arrays of unknown bound

20

P0388

10

14

19.27

14

20

P0784

10

10

19.28

12

Deprecating some uses of volatile

20

P1152

10

10

19.27

12

20

P1143

10

10

19.29

12

Missing feature test macros

20

P1353

9

9

19.29

Yes

Deprecate comma operator in subscripts

20

P1161

10

9

19.25

11.4

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

20

P1301

10

9

19.25

11.4

Permitting trivial default initialization in constexpr contexts

20

P1331

10

10

19.27

12

Unevaluated asm-declaration in constexpr functions

20

P1668

10

10

19.28

12

20

P1099

11

13

19.24

13.4.1

Synthesizing Three-way comparison for specified comparison category

20

P1186

11

10

19.24

12

[[nodiscard]] for constructors

20

P1771

10

9

19.24

11.4

Class template argument deduction for alias templatesInfo

20

P1814

10

19

19.27

Class template argument deduction for aggregatesInfo

20

P1816
P2082

10

11

17

19.27

Implicit move for more local objects and rvalue references

20

P1825

11

13

19.24

13.4.1

Allow defaulting comparisons by value

20

P1946

10

10

19.25

12

Remove std::weak_equality and std::strong_equality

20

P1959

10

10

19.25

12

Inconsistencies with constant template parametersInfo

20

P1907

10

11

18

19.26

13.4.1

Pseudo-destructors end object lifetimes

20

P0593

11

11

Yes

12.5

20

P0463

8

7

19.22

10

20

P0674

12

15

19.27

14.3

Floating Point AtomicInfoInfo

20

P0020

10

18

19.22

16

20

P0053

11

18

19.29

20

P0202

10

8

12

19.26

10.2

13

20

P0415

9

7

16

19.27

10

15

20

P0439

9

9

19.25

11.4

20

P0457

9

6

19.21

10

20

P0768

10

7

12

17

19.20

19.28

13

20

P0550

9

6

19.20

10

20

P0600

9

7

16

19.13

19.22

10

15

20

P0616

9

12

19.23

13

20

P0653

8

6

19.22

Yes

20

P0718

12

19.27

20

P0122

10

7

19.26

10

Extending to calendars and time zonesInfoInfo

20

P0355

11

13

14

7

19

19.29

10

20

P0754

9

7

19.22

10

Comparing unordered containersInfo

20

P0809

Yes

Yes

16.0

Yes

20

P0858

9

12

19.11

13

20

P0966

11

8

19.25

10.2

Atomic compare-and-exchange with padding bitsInfo

20

P0528

13

19.28

20

P0019

10

19

19.28

16.3

20

P0458

9

13

19.21

13.4.1

Guaranteed copy elision for piecewise constructionInfo

20

P0475

9

Yes

19.29

Yes

20

P0476

11

14

19.27

14.3

20

P0556
P1956

9

10

9

12

19.28

11.4

13

Improving the return value of erase-like algorithmsInfoInfo

20

P0646

9

10

19.21

12

20

P0722

9

9

19.27

11.4

20

P0758

9

9

19.23

11.4

20

P0769

10

12

19.21

13

20

P0879

10

13

19.26

13.4.1

20

P0887

9

8

19.21

10.2

Concepts libraryInfoInfo

20

P0898

10

13

19.23

13.4.1

20

P1023

10

8

19.27

10.2

20

P0318

9

8

19.21

10.2

20

P0356

9

13

19.25

13.4.1

20

P0357

9

8

19.26

10.2

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

20

P0487

11

8

19.23

10.2

20

P0482

9

8

16

19.22

10.2

15

Utility functions to implement uses-allocator constructionInfo

20

P0591

9

16

19.29

15

20

P0602

8.3

8

19.11

10.2

20

P0608

10

9

19.29

19.42

11.4

20

P0771

7.2

6

19.22

Yes

The One Ranges ProposalInfoInfo

20

P0896

10

13

15

19.29

14.3

Heterogeneous lookup for unordered associative containersInfoInfo

20

P0919
P1690

11

12

19.23

19.25

13

20

P0972

9

8

19.14

10.2

20

P1006

9

8

19.26

10.2

20

P1007

9

11

15

19.28

14.3

20

P1020
P1973

11

12

16

19.28

15

20

P1032

10

13

19.28

13.4.1

Remove comparison operators of std::spanInfo

20

P1085

10

8

19.26

10.2

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

20

P1165

10

15

19.26

14.3

20

P1209
P1115

9

10

8

11

19.25

19.27

10.2

12.5

Standard library header unitsInfo

20

P1502

11

19.29

pmr::polymorphic_allocator<> as a vocabulary typeInfoInfo

20

P0339

9

16

19.28

15

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

20

P1001

9

17*

19.28

20

P0811

9

9

19.23

19.28

11.4

20

P1024

10

9

14

19.26

11.4

20

P1164

8.3

12

19.20

13

20

P1227

10

9

19.25

11.4

Traits for (un)bounded arraysInfoInfo

20

P1357

9

9

19.25

11.4

20

P0325

10

10

19.25

12

20

P0408

11

17

19.29

15

Layout-compatibility and pointer-interconvertibility traitsInfoInfo

20

P0466

12

19.29

20

P0553

9

9

19.25

19.28

11.4

Mathematical constantsInfoInfo

20

P0631

10

11

19.25

12.5

20

P0645

13

14

17

19.29

15.3

20

P0660

10

17

20

19.28*

16.4

26

20

P0784

10

12

19.29

13

20

P0426
P1032
P0980

12

15

19.29

19.30

14.3

20

P1004

12

15

19.29

19.30

14.3

Input range adaptorsInfo

20

P1035

10

16

19.29

15

20

P1065

10

12

19.28

13

20

P1135

11

11

19.28

13.4.1*

Add max() to latch and barrierInfo

20

P1865

11

11

19.29

Yes

20

P1208

11

16

19.29

15

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

20

P1614

10

19

19.29

16.3

Integration of chrono with text formattingInfo

20

P1361

13

21

19.29

26

20

P0883

10

13

19.26

13.4.1

20

P1645

10

12

19.26

13

Safe integral comparisonsInfoInfo

20

P0586

10

13

19.27

13.4.1

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

20

P0619

12

20*

19.26

26

Symmetry for spaceshipInfoInfo

20

P0905

10

7

16.3

20

P1643

19

16.3

20

P1638

16

15

20

P1650

13

16

19.29

15

Ranges adaptors for non-copyable iteratorsInfo

20

P1862

16

15

20

P1994

16

15

char8_t backward compatibility remediationInfoInfo

20

P1423

10

15

19.26

14.3

Concept traits should be named after conceptsInfo

20

P1871

14

19.27

Yes

New Rules for auto deduction from braced-init-list

17

N3922

5

3.8

19.0

Yes

Allow typename in a template template parameter

17

N4051

5

3.5

19.0

Yes

Removing trigraphs??!

17

N4086

5

3.5

16.0

Yes

Nested namespace definition

17

N4230

6

3.6

19.0

Yes

17

N3928

6

2.5

19.10

Yes

Attributes for namespaces and enumeratorsInfo

17

N4266

4.9

6

3.6

19.0

Yes

Adding u8 character literalsInfo

17

N4267

6

3.6

19.0

Yes

Allow constant evaluation for all non-type template arguments

17

N4268

6

3.6

19.12

Yes

Unary folds and empty parameter packs

17

P0036

6

3.9

19.12

Yes

Remove deprecated use of the register keyword

17

P0001

7

3.8

19.11

Yes

Remove deprecated operator++(bool)

17

P0002

7

3.8

19.11

Yes

Make exception specifications be part of the type systemInfo

17

P0012

7

4

19.12

Yes

__has_include

17

P0061

5

Yes

19.11

Yes

Rewording inheriting constructorsInfo

17

P00136

7

3.9

19.14*

Yes

Extension to aggregate initializationInfo

17

P0017

7

3.9

19.14

Yes

Folding expressionsInfo

17

N4295

6

3.6

19.12

Yes

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

17

P0018

7

3.9

19.11

Yes

Construction rules for enum class values

17

P0138

7

3.9

19.11

Yes

17

P0170

7

5

19.11

Yes

Generalizing the range-based for loopInfo

17

P0184

6

3.9

19.10

Yes

Attribute [[fallthrough]]

17

P0188

7

3.9

19.10

Yes

Attribute [[nodiscard]]

17

P0189

7

3.9

19.11

Yes

Attribute [[maybe_unused]]

17

P0212

7

3.9

19.11

Yes

Hexadecimal floating literalsInfo

17

P0245

3

Yes

19.11

Yes

Using attribute namespaces without repetition

17

P0028

7

3.9

19.11

Yes

Dynamic memory allocation for over-aligned dataInfo

17

P0035

7

4

19.12

10

Declaring non-type template parameters with autoInfo

17

P0127

7

4

19.14

Yes

Guaranteed copy elisionInfo

17

P0135

7

4

19.13

Yes

Replacement of class objects containing reference members

17

P0137

7

6

19.14

Yes

Refining expression evaluation order for idiomatic C++

17

P0145

7

4

19.14

Yes

Proposed wording for structured bindingsInfo

17

P0217

7

4

19.11

Yes

Standard and non-standard attributes (ignoring unknown attributes)

17

P0283

Yes

3.9

19.0

Yes

17

P0292

7

3.9

19.11

Yes

Init-statements for if and switch

17

P0305

7

3.9

19.11

Yes

inline variablesInfo

17

P0386

7

3.9

19.12

Yes

Removing deprecated exception specifications from C++17

17

P0003

7

4

19.12

Yes

Pack expansions in using-declarationsInfo

17

P0195

7

4

19.14

Yes

Matching of template template-arguments excludes compatible templatesInfo

17

P0522

7

4

19.12

Yes

Template argument deduction for class templates (CTAD)Info

17

P0091

7

5

19.14

Yes

17

N3911

6

3.6

19.0

Yes

17

N4259

6

3.6

19.0

Yes

17

N4280

6

3.6

19.0

Yes

Cleaning-up noexcept in the libraryInfoInfo

17

N4258

6

3.7

19.0

15

17

N4169

6

3.7

19.0

Yes

17

N4279

6

3.7

19.0

Yes

17

N4387

6

4

19.0

Yes

17

N4389

6

4

19.0

Yes

17

N4508

6

3.7

19.0

Yes

17

N4510

3

3.6

18.0

Yes

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

17

P0006

7

3.8

19.0

Yes

Logical operator type traitsInfoInfo

17

P0013

6

3.8

19.0

Yes

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

17

P0007

7

3.8

19.0

Yes

17

P0092

7

3.8

19.0

Yes

17

P0074

7

3.8

19.0

Yes

17

P0005
P0358

7

3.9

19.12

Yes

The parallelism TS should be standardized (parallel algorithms)InfoInfo

17

P0024

9

17

19.14

17

P0025

7

3.9

19.0

10

(nothrow-)swappable traitsInfoInfo

17

P0185

7

3.9

19.0

10

Polymorphic memory resourcesInfoInfo

17

P0220

9

16

19.13

15

17

P0220

7

16

19.13

Yes

17

P0226

7

19.14

17

LWG2296

7

Yes

19.0

15*

17

P0031

7

4

19.11

Yes

17

P0152

7

3.9

19.11

Yes

std::enable_shared_from_this::weak_from_this()InfoInfo

17

P0033

7

3.9

19.12

Yes

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

17

P0030

7

3.9

19.14

Yes

17

P0298

7

5

19.11

Yes

17

N3921
P0220
P0254
P0403

7

4

19.10

10

17

P0220
P0032

7

4

19.11

10

17

P0220

7

4

19.10

10

C++17 should refer to C11 instead of C99Info

17

P0063

9

7

19.0

19.28

10

Splicing maps and sets (std::map::extract(), std::map::merge() etc)InfoInfo

17

P0083

7

8

19.12

10

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

17

P0084

7

4

19.11

Yes

17

P0088

7

4

19.10

10

17

P0209

7

4

19.10

Yes

17

P0258

7

6

19.11

Yes

17

P0295

7

4

19.11

Yes

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

17

P0137

7

6

19.14

Yes

17

P0040

7

4

19.11

17

P0163

7

3.9

19.10

Yes

17

P0067

8

11

7

14

20

19.14

19.15

19.16

19.23

10

17

P0414

7

11

19.12

12

17

P0505

7

4

19.11

Yes

std::shared_ptr<T[]>InfoInfo

17

P0497

5

11

19.12

15*

17

P0426

8

4

19.14

Yes

17

P0218
P0219

8

7

19.14

11

17

P0154

12

15

19

19.11

16.3*

17

P0156

7

5

19.11

Yes

17

LWG2911

7

5

19.15

Yes

17

P0604

7

Yes

19.11

Yes

std::hash<filesystem::path>Info

17

LWG3657

11.4

17

19.32

15