Reflection for C++26 (<meta>)
Annotations for Reflection
Splicing a base class subobject
define_static_{string,object,array}
Function Parameter Reflection in Reflection for C++26
Expansion Statements (template for)
16
Error Handling in Reflection
16
Standard library hardening
15
18
19.44
16
Minor additions to C++26 standard library hardening
19.50
Trivial Relocatability For C++26 [Removed from C++26]
16*
21
15
19
16.3
14
17
16.3
14
14
17
16.3
A nice placeholder with no name (using _ as a variable name)
14
18
16.3
#embed - a scannable, tooling-friendly binary resource inclusion mechanism
15*
19*
16.3*
15
Yes
16.3
14
18
16.3
Yes
3.3
16
9
18
16.3
14
19
16.3
15
19
16.3
14
14
16
14
17
18
16
15
Yes
15
[[indeterminate]] attribute)16
= delete("should have a reason");
15
19
16.3
Yes
17
16.3
15
Trivial infinite loops are not undefined behavior
14
19
16.3
15
20
26
Structured binding declaration as a condition
15
6
21
16
22
P2810
16*
Variadic friends
15
20
dextents index type parameter (std::dims)
16
19
16
16
19
execution::write_env and unstoppable sender adaptors
Parallel range algorithms
Rename std::observable() to std::observable_checkpoint(), and add a feature-test macro
std::string::subview()
22
Interleaved complex values support in std::simd
Extend <bit> header function with overloads for std::simd
Proposal to extend std::simd with more constructors and accessors
std::simd is a range
Extend std::simd with permutation API
Reconsider naming of the namespace for std::simd
Allocator support for operation states
async_scope - Creating scopes for non-sequential concurrency
Remove std::execution::split()
Parallel scheduler
19.51
Atomic floating-point min/max
Atomic reduction operations
Add std::views::indices(n)
22
Prevent path presentation problems
22
19.50
std::constant_wrapper
16
High-quality sender diagnostics with constexpr exceptions
16
Add a coroutine task type
Ordering of constraints involving fold expressions
19
16.3
15
19
16.3
16
21
constexpr structured bindings and references to constexpr variables16
22
Allowing exception throwing in constant-evaluation (constexpr exceptions)
16
15
20
15
20
16
C++26 should refer to C23 not C17
Concept and variable-template template-parameters
Trivial unions (was std::uninitialized<T>)
std::observable())16
Testing for success or failure of <charconv> functions
14
18
P2862
14
14
Type-checking format args
15
Formatting pointers
14
17
19.40
Hashing support for chrono value classes
16
Read-copy update (RCU) (<rcu>)
14
18
19.38
16
15
21
15
19
16.3
22
Extending associative containers with the remaining heterogeneous overloads
Enabling the use of std::weak_ptr as keys in unordered associative containers
16
Native handles and file streams
14
18
16
16
19
16.3
16
18
16
4.6
14
17
16
16
16
20
std::submdspan()
P3355
16
Freestanding Feature-Test Macros and Implementation-Defined Extensions
Saturation arithmetic
14
18
16
A free function linear algebra interface based on the BLAS (<linalg>)
P3050
P3222
Make assert() macro user friendly for C and C++
14
18
19.40
16
14
18
16
15
18
16
14
18
16
Add tuple protocol to complex
15
19
16.3
16
19.42
15
18
16
18
16
Remove deprecated Unicode conversion facets from C++26 (<codecvt>)
18
16
14
19.40
Freestanding library: Partial Classes
14
19.40
14
19.42
P2950
14
19.40
Fix formatting of code units as integers (Dude, where's my char?)
13.3
18
19.40
16
15
15
19
16.3
Enabling list-initialization for algorithms
P3217
15
14
19
22*
Atomic minimum/maximum
Formatting of filesystem::path (std::formatter<filesystem::path>)
14
19
19.41
16.3
15
19.41
Remove deprecated strstreams from C++26
19
Remove deprecated std::shared_ptr atomic access APIs from C++26
19
Permit an efficient implementation of std::print()
P3235
16
19.43
Remove [[nodiscard]] annotations from the standard library specification
19*
P3396
22
15
20
26
15
19
19.42
Removing the common reference requirement from the indirectly invocable concepts
15
19
19.42
15
21
Retiring niebloids
Yes
14
19.39
14.3
15
15
21
std::aligned_accessor: An std::mdspan accessor expressing pointer over-alignment (and std::is_sufficiently_aligned())
16
21
22
19.44
Wording for "constexpr for specialized memory algorithms"
15
15
std::simd (<simd>)
Rename simd_split() to simd_chunk()
Utility for creating execution environments
Defang and deprecate std::memory_order::consume
15
21
19.50
16
15
ranges::approximately_sized_range and ranges::reserve_hint()
Converting contiguous iterators to pointers
15
19.51
main() to the global module16
21
Wording for NB comment resolution on trivial relocation
Yes
Yes
Yes
Yes
Resolve inconsistencies in begin/end for std::valarray and braced initializer lists
flat_meow fixes
22
Future-proof submdspan_mapping
Assorted NB comment resolutions for Kona 2025
Make std::optional<T&> trivially copyable
22
Proposed Resolution for NB Comment GB13-309 std::atomic_ref<T> is not convertible to std::atomic_ref<const T>
When Do You Know execution::connect() Doesn’t Throw?
Rename std::nontype, and make it broadly useful
Remove evaluation_exception() from contract-violation handling for C++26
Harmonize proxy-reference operations (LWG3638 and LWG4187)
Fix for std::type_order template definition
Library Support for Expansion Statements
22
Missing deduction guide from simd::mask to simd::vec
Standard library hardening should not use the 'observe' semantic
Make execution::when_all() a Ronseal Algorithm
Additional NB comment resolutions for Kona 2025
Fix C++26 by making the rank-1, rank-2, rank-k, and rank-2k updates consistent with the BLAS
Literal suffix for (signed) size_t (uz/t)
11
13
19.43
13.4.1
() rules for lambdas)11
13
19.44
13.4.1
12
14
19.44
14
12
Yes
19.30
Yes
bool (in static_assert and constexpr if)9
13
14
19.21*
19.32
14
Yes
Yes
Yes
Yes
Yes
19.30
Yes
Yes
Yes
Yes
Yes
14
18
19
19.32
19.43
16.3
14
19
19.50
16.3
Decay-copy in the language (auto(x) and auto{x})
12
15
19.50
14.3
#elifdef and #elifndef12
13
19.40
13.4.1
Non-literal variables (and labels and gotos) in constexpr functions
12
15
19.43
14.3
Yes
Yes
19.30
Yes
10
Yes
Yes
for loop) to allow alias-declaration12
14
19.50*
14
Multidimensional subscript operator (operator[x, y])
12
15
19.42
14.3
9
13
19.44
13.4.1
#warning13
Yes
19.50
15
13
14
15
13
16
16
13
15
19.50
15
Named universal character escapes
13
15
15
13
19
16.3
Simpler implicit move
13
13
26
static operator() (static call operator)
13
16
19.44
16
13
Yes
14
[[assume]]13
19
16.3
13
15
19
15
static operator[]
13
16
19.44
16
13
16
16
Extending the lifetime of temporaries in range-based for loop initializer
P2718
15
19
16.3
P2579
16
17
16.3
15
17
14
17
16
12
14
14
11
13
13.4.1
__cpp_concepts12
19
19.32
16.4
wchar_t to match existing practicesYes
Yes
Yes
15
14
20
19.50
13
16
16
char8_t compatibility and portability fix
13
16
19.34
16
12
14
19.34
12
14
19.34
12
15
19.31
14.3
11
12
19.30
13
11
12
19.30
13
11
13
19.30
13.4.1
Providing size feedback in the Allocator interface
15
19.30
14.3
12
19.31
14
19
19.30
16.4
12
17
19.33
19.34
15
12
14
19.31
14.3
Non-deduction context for allocators in container deduction guides
12
13
19.31
13.4.1
16
17
19
19.31
16
12
13
19.30
13.4.1
12
17
19.31
15
11
14
19.30
14.3
Default template arguments for std::pair's forwarding constructor
14
14
19.30
14.3
Remove garbage collection and reachability-based leak detection (library support)
12
14
19.30
14.3
13
15
19.33
14.3
Heterogeneous erasure overloads for associative containers
19.32
12
14
19.31
14.3
Printing volatile T*
11.3
14
19.31
14.3
12
14
19.31
14.3
Monadic operations for std::optional (and_then(), or_else(), transform())
12
14
19.32
14.3
12
17
19.32
12
14
19.25
14.3
Yes
Yes
Yes
Yes
Clarifying the status of the "C headers"
Yes
Yes
Yes
Yes
P2549
12
16
19.33
15
12
15
19.32
14.3
13
16
19.33
16.1
13
14
21
19.50
16.3
12
16
19.33
15
Conversions from ranges to containers (ranges::to())
14
15
17
19.34
15
13
14
19
19.34
16.3
13
21
19.34
13
21
19.34
13
19.33
13
18
19.33
16
P2599
P2604
P2613
P2763
16
18
19.39
15
Referencing the Unicode Standard
19
16
De-deprecating volatile compound operations.
15
15
20
26
15
21
13
19
19.36
16.3
13
13
19.34
Compatibility between std::tuple and tuple-like objects
14
16
2.9
19.36
19.37
Yes
Rectifying constant iterators, sentinels and ranges (views::as_const())
13
19.35
19.36
Formatting ranges
15
15.2
16
19.37
19.39
19.41
19.42
15
Improve default container formatting
15
16
17
15
Formatted output library (<print>)
P2539
14
17
18
19.37
15
16
14
17
19.38
15
13
16
19.34
15
13
18
19
19.34
16
16.3
Ranges fold algorithms (ranges::fold())
13
19.35
P2540
13
19.37
22*
19.36
Ranges iterators as inputs to non-ranges algorithms
19.34
13
16
19.34
15
std::basic_string::substr() &&
16
19.34
15
13
16
19.34
15
Standard library modules (import std)
15*
17
19
19.35
19.36
14
16
19.34
15
12
18
19.36
16
13
17
19.36
15
Relaxing range adaptors to allow for move-only types
14
17
19.34
15
12.2
16
19.34
15
std::generator: synchronous coroutine generator for ranges
P2787
14
19.43
10
18
19.34
16
P2679
16
Clarify handling of encodings in localized formatting of chrono types
15
19.34
std::move_iterator<T*> should be a random access iterator
12.3
17
19.34
15
Deduction guides update for static operator()
13
16
19.39
15
Standard names and library support for extended floating-point types
13
19.37
Monadic operations for std::expected (and_then(), or_else(), transform())
13
17
19.36
15
13
19.37
20
19.50
26
21*
19.37
19
19.37
18
19.37
16
Making multi-param constructors of views explicit
16
17
19.36*
15
Relaxing Ranges Just A Smidge
15
20
19.37
26
Stashing stashing iterators for proper flattening
14
21
19.37
11.3
13
19.20
19.30
16.1
Conditionally borrowed ranges
11
16
19.30
16.1
Repairing input range adaptors and std::counted_iterator
12
19.30
19.31
11.2
15
19.30
14.3
Views should not be required to be default-constructible
11.3
16
19.30
15
Range adaptor objects bind arguments by value
11
14
19.29
19.31
14.3
11.3
12
13
19
19.31
13.4.1
16.3
Superior string splitting (views::lazy_split() and redesigned views::split())
12
16
19.31
15
12
16
19.31
15
What is a view?
12
14
19.31
14.3
Fixing locale handling in chrono formatters
13
21
19.31
16.1
Cleaning up integer-class types
19.32
13
15
19.32
14.3
13
15
19.32
14.3
13
15
19.35
14.3
Poison Pills are Too Toxic
14
19
19.36
16.3
14
17
19.37
14
17
19.38
16.1
19.28*
19.36
[=, this]8
6
19.22
10
__VA_OPT__P1042
8
10
12
9
19.21
12
Designated initializers
4.7
8
3
10
19.21
12
Familiar template syntax for generic lambdas (template-able lambdas)
8
9
19.22
11
8
6
19.25
10
8
6
19.14
Yes
const&-qualified pointers to members8
6
19.0
10
Concepts
5
10
10
19.23
12
9
13
14
17
19.28
13.4.1
10
8
10
19.20
12
8
19.24
9
8
19.25
11
9
8
19.22
10.2
const mismatch with defaulted copy constructor9
8
19.0
10.2
Yes
8
14
19.26
14
9
9
19.21
11.4
Specify when constexpr function definitions are needed for constant evaluation
5.2
9
8
19.27
19.31
11
10
16
19.23
12
[[likely]] and [[unlikely]]9
12
19.26
13
typename!9
16
19.29
16
Pack-expansions in lambda init-captures
9
9
19.22
11.4
[[no_unique_address]] attribute)9
9
19.28
11.4
Conditionally trivial special member functions
10
16
19.28
16.3
8
8
19.20
10.2
for loop customization point finding rules8
8
19.25
11
8
8
19.20
10.2
Destroying operator delete
9
6
19.27
10
9
12
19.26
19.28
13
16.3
[=]9
7
19.22
10.2
explicit(bool)
9
9
19.24
11.4
5
3.4
19.15
19.20
Yes
9
8
19.20
10.2
Allowing virtual function calls in constant expressions
9
9
19.28
11.4
10
8
10
19.22
12
char8_t: A type for UTF-8 characters and strings
9
7
19.22
10
9
9
19.25
11.4
constexpr try-catch blocks9
8
19.25
10.2
10
11
11
14
17
19.28
19.29
15
9
8
19.27
10.2
10
10
19.26
19.28
12.5
9
9
Yes
11.4
dynamic_cast and polymorphic typeid in constant expressions10
9
19.28
11.4
9
9
19.10
10.3
Coroutines
10*
8
17
19.0
19.10
19.28
10.2
Parenthesized initialization of aggregates
P1975
10
16
19.28
16
new-expressions11
9
19.27
11.4
Modules
P1703
P1766
P1779
P1811
P1815
P1857
P1874
P1979
P2115
P2615
P2788
11
15*
16*
17
21
19.0
19.28
26*
P1139
10
Yes
19.0
Yes
<=> != ==10
10
19.22
12
10
9
19.28
11.4
P1381
10
8
16
19.11
19.24
16
10
14
19.27
14
10
10
19.28
12
volatile10
10
19.27
12
10
10
19.29
12
9
9
19.29
Yes
10
9
19.25
11.4
[[nodiscard("should have a reason")]]10
9
19.25
11.4
constexpr contexts10
10
19.27
12
asm-declaration in constexpr functions10
10
19.28
12
11
13
19.24
13.4.1
11
10
19.24
12
[[nodiscard]] for constructors10
9
19.24
11.4
Class template argument deduction for alias templates
10
19
19.27
Class template argument deduction for aggregates
P2082
10
11
17
19.27
11
13
19.24
13.4.1
10
10
19.25
12
std::weak_equality and std::strong_equality10
10
19.25
12
Inconsistencies with constant template parameters
10
11
18
19.26
13.4.1
11
11
Yes
12.5
8
7
19.22
10
12
15
19.27
14.3
Floating Point Atomic
10
18
19.22
16
11
18
19.29
10
8
12
19.26
10.2
13
9
7
16
19.27
10
15
9
9
19.25
11.4
9
6
19.21
10
10
7
12
17
19.20
19.28
13
9
6
19.20
10
9
7
16
19.13
19.22
10
15
9
12
19.23
13
8
6
19.22
Yes
12
19.27
10
7
19.26
10
Extending <chrono> to calendars and time zones
11
13
14
7
19
19.29
10
9
7
19.22
10
Comparing unordered containers
Yes
Yes
16.0
Yes
9
12
19.11
13
11
8
19.25
10.2
Atomic compare-and-exchange with padding bits
13
19.28
10
19
19.28
16.3
9
13
19.21
13.4.1
Guaranteed copy elision for piecewise construction
9
Yes
19.29
Yes
11
14
19.27
14.3
P1956
9
10
9
12
19.28
11.4
13
Improving the return value of erase-like algorithms
9
10
19.21
12
9
9
19.27
11.4
9
9
19.23
11.4
10
12
19.21
13
10
13
19.26
13.4.1
9
8
19.21
10.2
Concepts library
10
13
19.23
13.4.1
10
8
19.27
10.2
9
8
19.21
10.2
9
13
19.25
13.4.1
9
8
19.26
10.2
Fixing operator>>(basic_istream&, CharT*)
11
8
19.23
10.2
9
8
16
19.22
10.2
15
Utility functions to implement uses-allocator construction
9
16
19.29
15
8.3
8
19.11
10.2
10
9
19.29
19.42
11.4
7.2
6
19.22
Yes
The One Ranges Proposal
10
13
15
19.29
14.3
Heterogeneous lookup for unordered associative containers
P1690
11
12
19.23
19.25
13
9
8
19.14
10.2
9
8
19.26
10.2
9
11
15
19.28
14.3
P1973
11
12
16
19.28
15
10
13
19.28
13.4.1
Remove comparison operators of std::span
10
8
19.26
10.2
Make stateful allocator propagation more consistent for operator+(basic_string)
10
15
19.26
14.3
P1115
9
10
8
11
19.25
19.27
10.2
12.5
Standard library header units
11
19.29
pmr::polymorphic_allocator<> as a vocabulary type
9
16
19.28
15
Target Vectorization Policies from Parallelism V2 TS to C++20 (std::execution::unseq)
9
17*
19.28
9
9
19.23
19.28
11.4
10
9
14
19.26
11.4
8.3
12
19.20
13
10
9
19.25
11.4
Traits for (un)bounded arrays
9
9
19.25
11.4
10
10
19.25
12
11
17
19.29
15
Layout-compatibility and pointer-interconvertibility traits
12
19.29
9
9
19.25
19.28
11.4
Mathematical constants
10
11
19.25
12.5
13
14
17
19.29
15.3
10
17
20
19.28*
16.4
26
10
12
19.29
13
P1032
P0980
12
15
19.29
19.30
14.3
12
15
19.29
19.30
14.3
Input range adaptors
10
16
19.29
15
10
12
19.28
13
11
11
19.28
13.4.1*
Add max() to latch and barrier
11
11
19.29
Yes
11
16
19.29
15
The Mothership has Landed: Adding <=> to the Library
10
19
19.29
16.3
Integration of chrono with text formatting
13
21
19.29
26
10
13
19.26
13.4.1
10
12
19.26
13
Safe integral comparisons
10
13
19.27
13.4.1
Reviewing deprecated facilities of C++17 for C++20
12
20*
19.26
26
Symmetry for spaceship
10
7
16.3
19
16.3
16
15
13
16
19.29
15
Ranges adaptors for non-copyable iterators
16
15
16
15
char8_t backward compatibility remediation
10
15
19.26
14.3
Concept traits should be named after concepts
14
19.27
Yes
auto deduction from braced-init-list5
3.8
19.0
Yes
typename in a template template parameter5
3.5
19.0
Yes
5
3.5
16.0
Yes
namespace definition6
3.6
19.0
Yes
6
2.5
19.10
Yes
Attributes for namespaces and enumerators
4.9
6
3.6
19.0
Yes
Adding u8 character literals
6
3.6
19.0
Yes
6
3.6
19.12
Yes
6
3.9
19.12
Yes
register keyword7
3.8
19.11
Yes
operator++(bool)7
3.8
19.11
Yes
Make exception specifications be part of the type system
7
4
19.12
Yes
__has_include5
Yes
19.11
Yes
Rewording inheriting constructors
7
3.9
19.14*
Yes
Extension to aggregate initialization
7
3.9
19.14
Yes
Folding expressions
6
3.6
19.12
Yes
*this by value as [=, *this]7
3.9
19.11
Yes
enum class values7
3.9
19.11
Yes
7
5
19.11
Yes
Generalizing the range-based for loop
6
3.9
19.10
Yes
[[fallthrough]]7
3.9
19.10
Yes
[[nodiscard]]7
3.9
19.11
Yes
[[maybe_unused]]7
3.9
19.11
Yes
Hexadecimal floating literals
3
Yes
19.11
Yes
7
3.9
19.11
Yes
Dynamic memory allocation for over-aligned data
7
4
19.12
10
Declaring non-type template parameters with auto
7
4
19.14
Yes
Guaranteed copy elision
7
4
19.13
Yes
7
6
19.14
Yes
7
4
19.14
Yes
Proposed wording for structured bindings
7
4
19.11
Yes
Yes
3.9
19.0
Yes
7
3.9
19.11
Yes
if and switch7
3.9
19.11
Yes
inline variables
7
3.9
19.12
Yes
7
4
19.12
Yes
Pack expansions in using-declarations
7
4
19.14
Yes
Matching of template template-arguments excludes compatible templates
7
4
19.12
Yes
Template argument deduction for class templates (CTAD)
7
5
19.14
Yes
6
3.6
19.0
Yes
6
3.6
19.0
Yes
6
3.6
19.0
Yes
Cleaning-up noexcept in the library
6
3.7
19.0
15
6
3.7
19.0
Yes
6
3.7
19.0
Yes
6
4
19.0
Yes
6
4
19.0
Yes
6
3.7
19.0
Yes
3
3.6
18.0
Yes
Adopt type traits variable templates from library fundamentals TS for C++17
7
3.8
19.0
Yes
Logical operator type traits
6
3.8
19.0
Yes
Constant View: A proposal for a std::as_const() helper function template
7
3.8
19.0
Yes
7
3.8
19.0
Yes
7
3.8
19.0
Yes
P0358
7
3.9
19.12
Yes
The parallelism TS should be standardized (parallel algorithms)
9
17
19.14
7
3.9
19.0
10
(nothrow-)swappable traits
7
3.9
19.0
10
Polymorphic memory resources
9
16
19.13
15
7
16
19.13
Yes
7
19.14
7
Yes
19.0
15*
7
4
19.11
Yes
7
3.9
19.11
Yes
std::enable_shared_from_this::weak_from_this()
7
3.9
19.12
Yes
3-argument overload of std::hypot()
7
3.9
19.14
Yes
7
5
19.11
Yes
P0220
P0254
P0403
7
4
19.10
10
P0032
7
4
19.11
10
7
4
19.10
10
C++17 should refer to C11 instead of C99
9
7
19.0
19.28
10
7
8
19.12
10
emplace() return type in containers (instead of void)
7
4
19.11
Yes
7
4
19.10
10
7
4
19.10
Yes
7
6
19.11
Yes
7
4
19.11
Yes
Replacement of class objects containing reference members (std::launder())
7
6
19.14
Yes
7
4
19.11
7
3.9
19.10
Yes
8
11
7
14
20
19.14
19.15
19.16
19.23
10
7
11
19.12
12
7
4
19.11
Yes
std::shared_ptr<T[]>
5
11
19.12
15*
8
4
19.14
Yes
P0219
8
7
19.14
11
12
15
19
19.11
16.3*
7
5
19.11
Yes
7
5
19.15
Yes
7
Yes
19.11
Yes
std::hash<filesystem::path>
11.4
17
19.32
15