cppstat - C++ Compiler Support Status (original) (raw)
Reflection for C++26 (<meta>)
26
Annotations for Reflection
26
Splicing a base class subobject
26
define_static_{string,object,array}
26
Function Parameter Reflection in Reflection for C++26
26
Expansion Statements (template for)
26
16
Error Handling in Reflection
26
26
16
26
Standard library hardening
26
15
18
19.44
16
Minor additions to C++26 standard library hardening
26
19.50
Trivial Relocatability For C++26
26
16*
21
26
15
19
16.3
26
14
17
16.3
Static storage for braced initializers
26
14
26
14
17
16.3
A nice placeholder with no name (using _ as a variable name)
26
14
18
16.3
#embed - a scannable, tooling-friendly binary resource inclusion mechanism
26
15*
19*
16.3*
On the ignorability of standard attributes
26
15
Yes
16.3
Remove deprecated arithmetic conversion on enumerations
26
14
18
16.3
UB? In My Lexer? (Remove undefined behavior from lexing)
26
Yes
3.3
16
Template parameter initialization
26
9
18
16.3
Disallow binding a returned glvalue to a temporary
26
14
19
16.3
26
15
19
16.3
Making non-encodable string literals ill-formed
26
14
14
16
26
14
17
18
16
Add @, $, and ` to the basic character set
26
15
Yes
15
Erroneous behavior for uninitialized reads (and [[indeterminate]] attribute)
26
16
= delete("should have a reason");
26
15
19
16.3
Clarifying rules for brace elision in aggregate initialization
26
Yes
17
16.3
Module declarations shouldn't be macros
26
15
26
Trivial infinite loops are not undefined behavior
26
14
19
16.3
26
15
20
26
Structured binding declaration as a condition
26
15
6
21
26
16
22
26
16*
Variadic friends
26
15
20
26
dextents index type parameter (std::dims)
26
16
19
26
26
16
19
26
26
26
execution::write_env and unstoppable sender adaptors
26
Parallel range algorithms
26
26
Rename std::observable() to std::observable_checkpoint(), and add a feature-test macro
26
std:🧵:subview()
26
22
Interleaved complex values support in std::simd
26
Extend header function with overloads for std::simd
26
Proposal to extend std::simd with more constructors and accessors
26
std::simd is a range
26
Extend std::simd with permutation API
26
Reconsider naming of the namespace for std::simd
26
26
26
Allocator support for operation states
26
async_scope - Creating scopes for non-sequential concurrency
26
Remove std::execution::split()
26
Parallel scheduler
26
26
19.51
Atomic floating-point min/max
26
Atomic reduction operations
26
Add std::views::indices(n)
26
22
Prevent path presentation problems
26
26
22
19.50
std::constant_wrapper
26
16
High-quality sender diagnostics with constexpr exceptions
26
Preprocessing is never undefined
26
16
Add a coroutine task type
26
26
Ordering of constraints involving fold expressions
26
19
16.3
Deleting a pointer to an incomplete type should be ill-formed
26
15
19
16.3
26
16
21
constexpr structured bindings and references to constexpr variables
26
16
22
Allowing exception throwing in constant-evaluation (constexpr exceptions)
26
16
The Oxford variadic comma
26
15
20
Remove deprecated array comparisons from C++26
26
15
20
16
C++26 should refer to C23 not C17
26
Concept and variable-template template-parameters
26
Trivial unions (was std::uninitialized<T>)
26
Partial program correctness (std::observable())
26
16
Testing for success or failure of functions
26
14
18
26
14
26
14
Type checking format args
26
15
Formatting pointers
26
14
17
19.40
Hashing support for chrono value classes
26
16
26
26
26
14
18
19.38
16
26
15
21
26
15
19
16.3
26
22
Extending associative containers with the remaining heterogeneous overloads
26
Enabling the use of std::weak_ptr as keys in unordered associative containers
26
16
Native handles and file streams
26
14
18
16
26
16
19
16.3
26
16
18
16
26
4.6
26
14
17
26
16
26
16
26
16
20
std::submdspan()
26
26
26
Freestanding Feature-Test Macros and Implementation-Defined Extensions
26
Saturation arithmetic
26
14
18
16
A free function linear algebra interface based on the BLAS ()
26
Make assert() macro user friendly for C and C++
26
26
14
18
19.40
16
26
14
18
16
26
15
18
16
26
14
18
16
Add tuple protocol to complex
26
15
19
16.3
26
19.42
26
15
18
16
26
18
16
Remove deprecated Unicode conversion facets from C++26 ()
26
18
16
26
14
19.40
Freestanding library: Partial Classes
26
14
19.40
26
14
19.42
26
14
19.40
Fix formatting of code units as integers (Dude, where's my char?)
26
13.3
18
19.40
16
26
15
26
15
19
16.3
Enabling list-initialization for algorithms
26
15
26
26
14
19
22*
Atomic minimum/maximum
26
Formatting of filesystem::path (std::formatter<filesystem::path>)
26
26
14
19
19.41
16.3
26
15
19.41
Remove deprecated strstreams from C++26
26
19
Remove deprecated std::shared_ptr atomic access APIs from C++26
26
26
19
Permit an efficient implementation of std::print()
26
16
19.43
Remove nodiscard annotations from the standard library specification
26
19*
26
26
26
26
22
26
15
20
26
26
15
19
19.42
Removing the common reference requirement from the indirectly invocable concepts
26
15
19
19.42
26
15
21
Retiring niebloids
26
Yes
14
19.39
14.3
26
15
26
15
21
std::aligned_accessor: An std::mdspan accessor expressing pointer over-alignment (and std::is_sufficiently_aligned())
26
16
21
26
22
26
19.44
26
Wording for "constexpr for specialized memory algorithms"
26
15
26
26
15
std::simd (<simd>)
26
Rename simd_split() to simd_chunk()
26
Utility for creating execution environments
26
26
Defang and deprecate std::memory_order::consume
26
26
15
21
19.50
26
16
26
26
26
15
ranges::approximately_sized_range and ranges::reserve_hint()
26
26
26
Converting contiguous iterators to pointers
26
15
19.51
Allow attaching main() to the global module
26
16
21
26
Fix erroneous behaviour termination semantics for C++26
26
Standard library hardening should not use the 'observe' semantic
26
Library Support for Expansion Statements
26
Literal suffix for (signed) size_t (uz/t)
23
11
13
19.43
13.4.1
Down with ()! (relax () rules for lambdas)
23
11
13
19.44
13.4.1
23
12
14
19.44
14
Removing garbage collection support
23
12
Yes
19.30
Yes
Narrowing contextual conversions to bool (in static_assert and constexpr if)
23
9
13
14
19.21*
19.32
14
Trimming whitespaces before line splicing
23
Yes
Yes
Yes
Make declaration order layout mandated
23
Yes
Yes
19.30
Yes
Remove mixed wide string literal concatenation
23
Yes
Yes
Yes
Yes
23
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
14
19
19.50
16.3
Decay-copy in the language (auto(x) and auto{x})
23
12
15
19.50
14.3
Add support for preprocessing directives #elifdef and #elifndef
23
12
13
19.40
13.4.1
Non-literal variables (and labels and gotos) in constexpr functions
23
12
15
19.43
14.3
Consistent character literal encoding
23
Yes
Yes
19.30
Yes
Character sets and encodings
23
10
Yes
Yes
Extend init-statement (of for loop) to allow alias-declaration
23
12
14
19.50*
14
Multidimensional subscript operator (operator[x, y])
23
12
15
19.42
14.3
Attributes on lambdas
23
9
13
19.44
13.4.1
23
13
Yes
19.50
15
Remove non-encodable wide character literals and multicharacter wide character literals
23
13
14
15
Labels at the end of compound statements
23
13
16
16
Delimited escape sequences
23
13
15
19.50
15
Named universal character escapes
23
13
15
15
23
13
19
16.3
Simpler implicit move
23
13
13
26
static operator() (static call operator)
23
13
16
19.44
16
Requirements for optional extended floating-point types
23
13
Yes
Class template argument deduction from inherited constructors
23
14
Attribute [[assume]]
23
13
19
16.3
Support for UTF-8 as a portable source file encoding
23
13
15
19
15
static operator[]
23
13
16
19.44
16
23
13
16
16
Extending the lifetime of temporaries in range-based for loop initializer
23
15
19
16.3
Declarations and where to find them
23
Change scope of lambda trailing-return-type
23
16
17
16.3
Meaningful exports
23
15
17
23
14
17
16
C++ identifier syntax using Unicode Standard Annex 31
23
12
14
14
Allow duplicate attributes
23
11
13
13.4.1
Adjusting the value of feature-test macro __cpp_concepts
23
12
19
19.32
16.4
Relax requirements on wchar_t to match existing practices
23
Yes
Yes
Yes
15
Using unknown pointers and references in constant expressions
23
14
20
19.50
The equality operator you are looking for
23
13
16
16
char8_t compatibility and portability fix
23
13
16
19.34
16
23
12
14
19.34
23
12
14
19.34
23
12
15
19.31
14.3
23
11
12
19.30
13
23
11
12
19.30
13
23
11
13
19.30
13.4.1
23
Providing size feedback in the Allocator interface
23
15
19.30
14.3
23
12
19.31
23
14
19
19.30
16.4
23
12
17
19.33
19.34
15
23
12
14
19.31
14.3
Non-deduction context for allocators in container deduction guides
23
12
13
19.31
13.4.1
23
16
17
19
19.31
16
23
12
13
19.30
13.4.1
23
12
17
19.31
15
23
11
14
19.30
14.3
Default template arguments for std::pair's forwarding constructor
23
14
14
19.30
14.3
Remove garbage collection and reachability-based leak detection (library support)
23
12
14
19.30
14.3
23
13
15
19.33
14.3
Heterogeneous erasure overloads for associative containers
23
19.32
23
12
14
19.31
14.3
Printing volatile T*
23
11.3
14
19.31
14.3
23
12
14
19.31
14.3
Monadic operations for std::optional (and_then(), or_else(), transform())
23
12
14
19.32
14.3
23
12
17
19.32
23
12
14
19.25
14.3
23
Yes
Yes
Yes
Yes
Clarifying the status of the "C headers"
23
Yes
Yes
Yes
Yes
23
12
16
19.33
15
23
23
12
15
19.32
14.3
23
13
16
19.33
16.1
23
13
14
21
19.50
16.3
23
12
16
19.33
15
Constructing containers and strings from ranges with ranges::to(), tagged constructors, insert and assign member functions
23
14
15
17
19.34
15
23
13
14
19
19.34
16.3
23
13
21
19.34
23
13
21
19.34
23
13
19.33
23
13
18
19.33
16
23
16
18
19.39
15
Referencing the Unicode Standard
23
19
16
De-deprecating volatile compound operations.
23
15
23
15
20
26
23
15
21
23
13
19
19.36
16.3
23
13
23
13
19.34
Compatibility between std::tuple and tuple-like objects
23
14
16
2.9
19.36
19.37
Yes
Rectifying constant iterators, sentinels and ranges (views::as_const())
23
13
19.35
19.36
Formatting ranges
23
15
15.2
16
19.37
19.39
19.41
19.42
15
Improve default container formatting
23
15
16
17
15
23
14
17
18
19.37
15
16
23
14
17
19.38
15
23
13
16
19.34
15
23
13
18
19
19.34
16
16.3
Ranges fold algorithms
23
13
19.35
23
13
19.37
23
19.36
Ranges iterators as inputs to non-ranges algorithms
23
19.34
23
13
16
19.34
15
std::basic_string::substr() &&
23
16
19.34
15
23
13
16
19.34
15
Standard library modules (import std)
23
15*
17
19
19.35
19.36
23
14
16
19.34
15
23
12
18
19.36
16
23
13
17
19.36
15
Relaxing range adaptors to allow for move-only types
23
14
17
19.34
15
23
12.2
16
19.34
15
std::generator: synchronous coroutine generator for ranges
23
14
19.43
23
10
18
19.34
16
23
16
Clarify handling of encodings in localized formatting of chrono types
23
15
19.34
std::move_iterator<T*> should be a random access iterator
23
12.3
17
19.34
15
Deduction guides update for static operator()
23
13
16
19.39
15
Standard names and library support for extended floating-point types
23
13
19.37
Monadic operations for std::expected (and_then(), or_else(), transform())
23
13
17
19.36
15
23
13
19.37
23
20
19.50
26
23
21*
19.37
23
19
19.37
23
18
19.37
16
Making multi-param constructors of views explicit
23
16
17
19.36*
15
Relaxing Ranges Just A Smidge
23
15
20
19.37
26
Stashing stashing iterators for proper flattening
23
14
21
19.37
23
11.3
13
19.20
19.30
16.1
Conditionally borrowed ranges
23
11
16
19.30
16.1
Repairing input range adaptors and std::counted_iterator
23
12
19.30
19.31
23
11.2
15
19.30
14.3
Views should not be required to be default-constructible
23
11.3
16
19.30
15
Range adaptor objects bind arguments by value
23
11
14
19.29
19.31
14.3
23
11.3
12
13
19
19.31
13.4.1
16.3
Superior string splitting (views::lazy_split() and redesigned views::split())
23
12
16
19.31
15
23
12
16
19.31
15
What is a view?
23
12
14
19.31
14.3
Fixing locale handling in chrono formatters
23
13
21
19.31
16.1
Cleaning up integer-class types
23
19.32
23
13
15
19.32
14.3
23
13
15
19.32
14.3
23
13
15
19.35
14.3
Poison Pills are Too Toxic
23
14
19
19.36
16.3
23
14
17
19.37
23
14
17
19.38
16.1
23
19.28*
19.36
[=, this]
20
8
6
19.22
10
20
8
10
12
9
19.21
12
Designated initializers
20
4.7
8
3
10
19.21
12
Familiar template syntax for generic lambdas (template-able lambdas)
20
8
9
19.22
11
Default member initializers for bit-fields
20
8
6
19.25
10
Initializer list constructors in class template argument deduction
20
8
6
19.14
Yes
const&-qualified pointers to members
20
8
6
19.0
10
Concepts
20
5
10
10
19.23
12
Wording for lambdas in unevaluated contexts
20
9
13
14
17
19.28
13.4.1
20
10
8
10
19.20
12
Simplifying implicit lambda capture
20
8
19.24
init-statements for range-based for
20
9
8
19.25
11
Default constructible and assignable stateless lambdas
20
9
8
19.22
10.2
const mismatch with defaulted copy constructor
20
9
8
19.0
10.2
Access checking on specializations
20
Yes
8
14
19.26
14
ADL and function templates that are not visible
20
9
9
19.21
11.4
Specify when constexpr function definitions are needed for constant evaluation
20
5.2
9
8
19.27
19.31
11
Fixing functionality gaps in constraints
20
10
16
19.23
12
Attributes [[likely]] and [[unlikely]]
20
9
12
19.26
13
Down with typename!
20
9
16
19.29
16
Pack-expansions in lambda init-captures
20
9
9
19.22
11.4
Language support for empty objects ([[no_unique_address]] attribute)
20
9
9
19.28
11.4
Conditionally trivial special member functions
20
10
16
19.28
16.3
Relaxing the structured bindings customization point finding rules
20
8
8
19.20
10.2
Relaxing the range-for loop customization point finding rules
20
8
8
19.25
11
Allow structured bindings to accessible members
20
8
8
19.20
10.2
Destroying operator delete
20
9
6
19.27
10
Class types in non-type template parameters
20
9
12
19.26
19.28
13
16.3
Deprecate implicit capture of this via [=]
20
9
7
19.22
10.2
explicit(bool)
20
9
9
19.24
11.4
Integrating feature-test macros
20
5
3.4
19.15
19.20
Yes
Prohibit aggregates with user-declared constructors
20
9
8
19.20
10.2
Allowing virtual function calls in constant expressions
20
9
9
19.28
11.4
Consistency improvements for comparisons
20
10
8
10
19.22
12
char8_t: A type for UTF-8 characters and strings
20
9
7
19.22
10
20
9
9
19.25
11.4
constexpr try-catch blocks
20
9
8
19.25
10.2
20
10
11
11
14
17
19.28
19.29
15
Nested inline namespaces
20
9
8
19.27
10.2
Yet another approach for constrained declarations
20
10
10
19.26
19.28
12.5
Signed integers are two's complement
20
9
9
Yes
11.4
dynamic_cast and polymorphic typeid in constant expressions
20
10
9
19.28
11.4
20
9
9
19.10
10.3
Coroutines
20
10*
8
17
19.0
19.10
19.28
10.2
Parenthesized initialization of aggregates
20
10
16
19.28
16
Array size deduction in new-expressions
20
11
9
19.27
11.4
Modules
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
10
Yes
19.0
Yes
<=> != ==
20
10
10
19.22
12
Explicitly defaulted functions with different exception specifications
20
10
9
19.28
11.4
Structured binding extensions
20
10
8
16
19.11
19.24
16
Permit conversions to arrays of unknown bound
20
10
14
19.27
14
20
10
10
19.28
12
Deprecating some uses of volatile
20
10
10
19.27
12
20
10
10
19.29
12
Missing feature test macros
20
9
9
19.29
Yes
Deprecate comma operator in subscripts
20
10
9
19.25
11.4
[[nodiscard("should have a reason")]]
20
10
9
19.25
11.4
Permitting trivial default initialization in constexpr contexts
20
10
10
19.27
12
Unevaluated asm-declaration in constexpr functions
20
10
10
19.28
12
20
11
13
19.24
13.4.1
Synthesizing Three-way comparison for specified comparison category
20
11
10
19.24
12
[[nodiscard]] for constructors
20
10
9
19.24
11.4
Class template argument deduction for alias templates
20
10
19
19.27
Class template argument deduction for aggregates
20
10
11
17
19.27
Implicit move for more local objects and rvalue references
20
11
13
19.24
13.4.1
Allow defaulting comparisons by value
20
10
10
19.25
12
Remove std::weak_equality and std::strong_equality
20
10
10
19.25
12
Inconsistencies with constant template parameters
20
10
11
18
19.26
13.4.1
Pseudo-destructors end object lifetimes
20
11
11
Yes
12.5
20
8
7
19.22
10
20
12
15
19.27
14.3
Floating Point Atomic
20
10
18
19.22
16
20
11
18
19.29
20
10
8
12
19.26
10.2
13
20
9
7
16
19.27
10
15
20
9
9
19.25
11.4
20
9
6
19.21
10
20
10
7
12
17
19.20
19.28
13
20
9
6
19.20
10
20
9
7
16
19.13
19.22
10
15
20
9
12
19.23
13
20
8
6
19.22
Yes
20
12
19.27
20
10
7
19.26
10
Extending to calendars and time zones
20
11
13
14
7
19
19.29
10
20
9
7
19.22
10
Comparing unordered containers
20
Yes
Yes
16.0
Yes
20
9
12
19.11
13
20
11
8
19.25
10.2
Atomic compare-and-exchange with padding bits
20
13
19.28
20
10
19
19.28
16.3
20
9
13
19.21
13.4.1
Guaranteed copy elision for piecewise construction
20
9
Yes
19.29
Yes
20
11
14
19.27
14.3
20
9
10
9
12
19.28
11.4
13
Improving the return value of erase-like algorithms
20
9
10
19.21
12
20
9
9
19.27
11.4
20
9
9
19.23
11.4
20
10
12
19.21
13
20
10
13
19.26
13.4.1
20
9
8
19.21
10.2
Concepts library
20
10
13
19.23
13.4.1
20
10
8
19.27
10.2
20
9
8
19.21
10.2
20
9
13
19.25
13.4.1
20
9
8
19.26
10.2
Fixing operator>>(basic_istream&, CharT*)
20
11
8
19.23
10.2
20
9
8
16
19.22
10.2
15
Utility functions to implement uses-allocator construction
20
9
16
19.29
15
20
8.3
8
19.11
10.2
20
10
9
19.29
19.42
11.4
20
7.2
6
19.22
Yes
The One Ranges Proposal
20
10
13
15
19.29
14.3
Heterogeneous lookup for unordered associative containers
20
11
12
19.23
19.25
13
20
9
8
19.14
10.2
20
9
8
19.26
10.2
20
9
11
15
19.28
14.3
20
11
12
16
19.28
15
20
10
13
19.28
13.4.1
Remove comparison operators of std::span
20
10
8
19.26
10.2
Make stateful allocator propagation more consistent for operator+(basic_string)
20
10
15
19.26
14.3
20
9
10
8
11
19.25
19.27
10.2
12.5
Standard library header units
20
11
19.29
pmr::polymorphic_allocator<> as a vocabulary type
20
9
16
19.28
15
Target Vectorization Policies from Parallelism V2 TS to C++20 (std::execution::unseq)
20
9
17*
19.28
20
9
9
19.23
19.28
11.4
20
10
9
14
19.26
11.4
20
8.3
12
19.20
13
20
10
9
19.25
11.4
Traits for (un)bounded arrays
20
9
9
19.25
11.4
20
10
10
19.25
12
20
11
17
19.29
15
Layout-compatibility and pointer-interconvertibility traits
20
12
19.29
20
9
9
19.25
19.28
11.4
Mathematical constants
20
10
11
19.25
12.5
20
13
14
17
19.29
15.3
20
10
17
20
19.28*
16.4
26
20
10
12
19.29
13
20
12
15
19.29
19.30
14.3
20
12
15
19.29
19.30
14.3
Input range adaptors
20
10
16
19.29
15
20
10
12
19.28
13
20
11
11
19.28
13.4.1*
Add max() to latch and barrier
20
11
11
19.29
Yes
20
11
16
19.29
15
The Mothership has Landed: Adding <=> to the Library
20
10
19
19.29
16.3
Integration of chrono with text formatting
20
13
21
19.29
26
20
10
13
19.26
13.4.1
20
10
12
19.26
13
Safe integral comparisons
20
10
13
19.27
13.4.1
Reviewing deprecated facilities of C++17 for C++20
20
12
20*
19.26
26
Symmetry for spaceship
20
10
7
16.3
20
19
16.3
20
16
15
20
13
16
19.29
15
Ranges adaptors for non-copyable iterators
20
16
15
20
16
15
char8_t backward compatibility remediation
20
10
15
19.26
14.3
Concept traits should be named after concepts
20
14
19.27
Yes
New Rules for auto deduction from braced-init-list
17
5
3.8
19.0
Yes
Allow typename in a template template parameter
17
5
3.5
19.0
Yes
Removing trigraphs??!
17
5
3.5
16.0
Yes
Nested namespace definition
17
6
3.6
19.0
Yes
17
6
2.5
19.10
Yes
Attributes for namespaces and enumerators
17
4.9
6
3.6
19.0
Yes
Adding u8 character literals
17
6
3.6
19.0
Yes
Allow constant evaluation for all non-type template arguments
17
6
3.6
19.12
Yes
Unary folds and empty parameter packs
17
6
3.9
19.12
Yes
Remove deprecated use of the register keyword
17
7
3.8
19.11
Yes
Remove deprecated operator++(bool)
17
7
3.8
19.11
Yes
Make exception specifications be part of the type system
17
7
4
19.12
Yes
17
5
Yes
19.11
Yes
Rewording inheriting constructors
17
7
3.9
19.14*
Yes
Extension to aggregate initialization
17
7
3.9
19.14
Yes
Folding expressions
17
6
3.6
19.12
Yes
Lambda capture of *this by value as [=, *this]
17
7
3.9
19.11
Yes
Construction rules for enum class values
17
7
3.9
19.11
Yes
17
7
5
19.11
Yes
Generalizing the range-based for loop
17
6
3.9
19.10
Yes
Attribute [[fallthrough]]
17
7
3.9
19.10
Yes
Attribute [[nodiscard]]
17
7
3.9
19.11
Yes
Attribute [[maybe_unused]]
17
7
3.9
19.11
Yes
Hexadecimal floating literals
17
3
Yes
19.11
Yes
Using attribute namespaces without repetition
17
7
3.9
19.11
Yes
Dynamic memory allocation for over-aligned data
17
7
4
19.12
10
Declaring non-type template parameters with auto
17
7
4
19.14
Yes
Guaranteed copy elision
17
7
4
19.13
Yes
Replacement of class objects containing reference members
17
7
6
19.14
Yes
Refining expression evaluation order for idiomatic C++
17
7
4
19.14
Yes
Proposed wording for structured bindings
17
7
4
19.11
Yes
Standard and non-standard attributes (ignoring unknown attributes)
17
Yes
3.9
19.0
Yes
17
7
3.9
19.11
Yes
Init-statements for if and switch
17
7
3.9
19.11
Yes
inline variables
17
7
3.9
19.12
Yes
Removing deprecated exception specifications from C++17
17
7
4
19.12
Yes
Pack expansions in using-declarations
17
7
4
19.14
Yes
Matching of template template-arguments excludes compatible templates
17
7
4
19.12
Yes
Template argument deduction for class templates (CTAD)
17
7
5
19.14
Yes
17
6
3.6
19.0
Yes
17
6
3.6
19.0
Yes
17
6
3.6
19.0
Yes
Cleaning-up noexcept in the library
17
6
3.7
19.0
15
17
6
3.7
19.0
Yes
17
6
3.7
19.0
Yes
17
6
4
19.0
Yes
17
6
4
19.0
Yes
17
6
3.7
19.0
Yes
17
3
3.6
18.0
Yes
Adopt type traits variable templates from library fundamentals TS for C++17
17
7
3.8
19.0
Yes
Logical operator type traits
17
6
3.8
19.0
Yes
Constant View: A proposal for a std::as_const() helper function template
17
7
3.8
19.0
Yes
17
7
3.8
19.0
Yes
17
7
3.8
19.0
Yes
17
7
3.9
19.12
Yes
The parallelism TS should be standardized (parallel algorithms)
17
9
17
19.14
17
7
3.9
19.0
10
(nothrow-)swappable traits
17
7
3.9
19.0
10
Polymorphic memory resources
17
9
16
19.13
15
17
7
16
19.13
Yes
17
7
19.14
17
7
Yes
19.0
15*
17
7
4
19.11
Yes
17
7
3.9
19.11
Yes
std::enable_shared_from_this::weak_from_this()
17
7
3.9
19.12
Yes
3-argument overload of std::hypot()
17
7
3.9
19.14
Yes
17
7
5
19.11
Yes
17
7
4
19.10
10
17
7
4
19.11
10
17
7
4
19.10
10
C++17 should refer to C11 instead of C99
17
9
7
19.0
19.28
10
Splicing maps and sets (std::map::extract(), std::map::merge() etc)
17
7
8
19.12
10
emplace() return type in containers (instead of void)
17
7
4
19.11
Yes
17
7
4
19.10
10
17
7
4
19.10
Yes
17
7
6
19.11
Yes
17
7
4
19.11
Yes
Replacement of class objects containing reference members (std::launder())
17
7
6
19.14
Yes
17
7
4
19.11
17
7
3.9
19.10
Yes
17
8
11
7
14
20
19.14
19.15
19.16
19.23
10
17
7
11
19.12
12
17
7
4
19.11
Yes
std::shared_ptr<T[]>
17
5
11
19.12
15*
17
8
4
19.14
Yes
17
8
7
19.14
11
17
12
15
19
19.11
16.3*
17
7
5
19.11
Yes
17
7
5
19.15
Yes
17
7
Yes
19.11
Yes
std::hash<filesystem::path>
17
11.4
17
19.32
15