libc++ C++2c Status

Overview

In June 2023, the C++ standard committee adopted the first changes to the next version of the C++ standard, known here as “C++2c” (probably to be C++26).

This page shows the status of libc++; the status of clang’s support of the language features is here.

Attention

Features in unreleased drafts of the standard are subject to change.

The groups that have contributed papers:

  • CWG - Core Language Working group

  • LWG - Library working group

  • SG1 - Study group #1 (Concurrency working group)

Note

“Nothing to do” means that no library changes were needed to implement this change.

Paper Status

Paper #

Paper Name

Meeting

Status

First released version

GitHub issue

Notes

P2497R0

Testing for success or failure of <charconv> functions

2023-06 (Varna)

Complete

18

#105357

P2592R3

Hashing support for std::chrono value classes

2023-06 (Varna)

#105358

P2587R3

to_string or not to_string

2023-06 (Varna)

#105359

P2562R1

constexpr Stable Sorting

2023-06 (Varna)

Complete

21

#105360

P2545R4

Read-Copy Update (RCU)

2023-06 (Varna)

#105361

P2530R3

Hazard Pointers for C++26

2023-06 (Varna)

#105362

P2538R1

ADL-proof std::projected

2023-06 (Varna)

Complete

18

#105363

P2495R3

Interfacing stringstreams with string_view

2023-06 (Varna)

Complete

19

#105364

P2510R3

Formatting pointers

2023-06 (Varna)

Complete

17

#105365

Implemented as a DR against C++20. (MSVC STL and libstdc++ will do the same.)

P2198R7

Freestanding Feature-Test Macros and Implementation-Defined Extensions

2023-06 (Varna)

#105368

P2338R4

Freestanding Library: Character primitives and the C library

2023-06 (Varna)

#105369

P2013R5

Freestanding Language: Optional ::operator new

2023-06 (Varna)

#105370

P2363R5

Extending associative containers with the remaining heterogeneous overloads

2023-06 (Varna)

#105371

P1901R2

Enabling the Use of weak_ptr as Keys in Unordered Associative Containers

2023-06 (Varna)

#105372

P1885R12

Naming Text Encodings to Demystify Them

2023-06 (Varna)

#105373

P0792R14

function_ref: a type-erased callable reference

2023-06 (Varna)

#105376

P2874R2

P2874R2: Mandating Annex D Require No More

2023-06 (Varna)

Complete

12

#105377

P2757R3

Type-checking format args

2023-06 (Varna)

#105378

P2637R3

Member visit

2023-06 (Varna)

Complete

19

#105380

Change of __cpp_lib_variant is completed in LLVM 20. Change of __cpp_lib_format is blocked by P2419R2.

P2641R4

Checking if a union alternative is active

2023-06 (Varna)

Complete

22

#105381

P1759R6

Native handles and file streams

2023-06 (Varna)

Complete

18

#105382

P2697R1

Interfacing bitset with string_view

2023-06 (Varna)

Complete

18

#105384

P1383R2

More constexpr for <cmath> and <complex>

2023-06 (Varna)

#105385

P2734R0

Adding the new SI prefixes

2023-06 (Varna)

Complete

17

#105386

P2548R6

copyable_function

2023-06 (Varna)

#105387

P2714R1

Bind front and back to NTTP callables

2023-06 (Varna)

Partial

20

#105388

P2630R4

submdspan

2023-06 (Varna)

#105389

P0543R3

Saturation arithmetic

2023-11 (Kona)

Complete

18

#105390

P2407R5

Freestanding Library: Partial Classes

2023-11 (Kona)

#105391

P2546R5

Debugging Support

2023-11 (Kona)

#105392

P2905R2

Runtime format strings

2023-11 (Kona)

Complete

18

#105393

P2918R2

Runtime format strings II

2023-11 (Kona)

Complete

18

#105394

P2909R4

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

2023-11 (Kona)

Complete

18

#105395

P0952R2

A new specification for std::generate_canonical

2023-11 (Kona)

#105396

P2447R6

std::span over an initializer list

2023-11 (Kona)

Complete

18

#105397

P2821R5

span.at()

2023-11 (Kona)

Complete

18

#105399

P2868R3

Remove Deprecated std::allocator Typedef From C++26

2023-11 (Kona)

Complete

18

#105400

P2870R3

Remove basic_string::reserve() From C++26

2023-11 (Kona)

Complete

18

#105401

P2871R3

Remove Deprecated Unicode Conversion Facets from C++26

2023-11 (Kona)

Complete

18

#105402

P2819R2

Add tuple protocol to complex

2023-11 (Kona)

Complete

19

#105403

P2937R0

Freestanding: Remove strtok

2023-11 (Kona)

#105404

P2833R2

Freestanding Library: inout expected span

2023-11 (Kona)

#105405

P2836R1

std::basic_const_iterator should follow its underlying type’s convertibility

2023-11 (Kona)

#105406

P2264R7

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

2023-11 (Kona)

#105407

P1673R13

A free function linear algebra interface based on the BLAS

2023-11 (Kona)

#105408

P2875R4

Undeprecate polymorphic_allocator::destroy for C++26

2024-03 (Tokyo)

Complete

15

#105410

P2867R2

Remove Deprecated strstreams From C++26

2024-03 (Tokyo)

Complete

19

#105411

P2869R4

Remove Deprecated shared_ptr Atomic Access APIs from C++26

2024-03 (Tokyo)

#105412

P2872R3

Remove wstring_convert From C++26

2024-03 (Tokyo)

Complete

19

#105413

P3107R5

Permit an efficient implementation of std::print

2024-03 (Tokyo)

#105414

P3142R0

Printing Blank Lines with println

2024-03 (Tokyo)

Complete

19

#105415

Implemented as a DR against C++23. (MSVC STL and libstdc++ will do the same.)

P2845R8

Formatting of std::filesystem::path

2024-03 (Tokyo)

#105416

P0493R5

Atomic minimum/maximum

2024-03 (Tokyo)

#105418

P2542R8

views::concat

2024-03 (Tokyo)

#105419

P2591R5

Concatenation of strings and string views

2024-03 (Tokyo)

Complete

19

#105420

P2248R8

Enabling list-initialization for algorithms

2024-03 (Tokyo)

#105421

P2810R4

is_debugger_present is_replaceable

2024-03 (Tokyo)

#105422

P1068R11

Vector API for random number generation

2024-03 (Tokyo)

#105423

P2944R3

Comparisons for reference_wrapper

2024-03 (Tokyo)

Complete

22

#105424

The changes to tuple’s equality overload from P2165R4 are not yet implemented.

P2642R6

Padded mdspan layouts

2024-03 (Tokyo)

#105425

P3029R1

Better mdspan’s CTAD

2024-03 (Tokyo)

Complete

19

#105426

P2747R2

constexpr placement new

2024-06 (St. Louis)

Complete

20

#105427

P2997R1

Removing the common reference requirement from the indirectly invocable concepts

2024-06 (St. Louis)

Complete

19

#105428

Implemented as a DR against C++20. (MSVC STL and libstdc++ will do the same.)

P2389R2

dextents Index Type Parameter

2024-06 (St. Louis)

Complete

19

#105429

P3168R2

Give std::optional Range Support

2024-06 (St. Louis)

Complete

22

#105430

P3217R0

Adjoints to ‘Enabling list-initialization for algorithms’: find_last

2024-06 (St. Louis)

#105431

P2985R0

A type trait for detecting virtual base classes

2024-06 (St. Louis)

Complete

20

#105432

P0843R14

inplace_vector

2024-06 (St. Louis)

#105433

P3235R3

std::print more types faster with less memory

2024-06 (St. Louis)

#105435

P2968R2

Make std::ignore a first-class object

2024-06 (St. Louis)

Complete

19

#105436

P2075R6

Philox as an extension of the C++ RNG engines

2024-06 (St. Louis)

#105437

P2422R1

Remove nodiscard annotations from the standard library specification

2024-06 (St. Louis)

Complete

19

#105438

nodiscard attributes were kept as a conforming extension

P2300R10

std::execution

2024-06 (St. Louis)

#105440

P3136R1

Retiring niebloids

2024-11 (Wrocław)

Complete

14

#118133

P3138R5

views::cache_latest

2024-11 (Wrocław)

#118134

P3379R0

Constrain std::expected equality operators

2024-11 (Wrocław)

Complete

21

#118135

P2862R1

text_encoding::name() should never return null values

2024-11 (Wrocław)

#118371

P2897R7

aligned_accessor: An mdspan accessor expressing pointer over-alignment

2024-11 (Wrocław)

Complete

21

#118372

P3355R2

Fix submdspan for C++26

2024-11 (Wrocław)

#118373

P3222R0

Fix C++26 by adding transposed special cases for P2642 layouts

2024-11 (Wrocław)

#118374

P3050R2

Fix C++26 by optimizing linalg::conjugated for noncomplex value types

2024-11 (Wrocław)

#118375

P3396R1

std::execution wording fixes

2024-11 (Wrocław)

#118376

P2835R7

Expose std::atomic_ref’s object address

2024-11 (Wrocław)

Complete

22

#118377

P3323R1

cv-qualified types in atomic and atomic_ref

2024-11 (Wrocław)

#118378

P3508R0

Wording for “constexpr for specialized memory algorithms”

2024-11 (Wrocław)

#118379

P3369R0

constexpr for uninitialized_default_construct

2024-11 (Wrocław)

#118380

P3370R1

Add new library headers from C23

2024-11 (Wrocław)

#118381

P3309R3

constexpr atomic and atomic_ref

2024-11 (Wrocław)

#118382

P1928R15

std::simd — merge data-parallel types from the Parallelism TS 2

2024-11 (Wrocław)

#118384

P3325R5

A Utility for Creating Execution Environments

2024-11 (Wrocław)

#118385

P3068R6

Allowing exception throwing in constant-evaluation

2024-11 (Wrocław)

#118386

P3247R2

Deprecate the notion of trivial types

2024-11 (Wrocław)

Complete

21

#118387

P3074R7

trivial unions (was std::uninitialized)

2025-02 (Hagenberg)

#127868

P1494R5

Partial program correctness

2025-02 (Hagenberg)

#127869

P2900R14

Contracts for C++

2025-02 (Hagenberg)

#127870

P3475R2

Defang and deprecate memory_order::consume

2025-02 (Hagenberg)

#127871

P2786R13

Trivial Relocatability For C++26

2025-02 (Hagenberg)

#127872

P3137R3

views::to_input

2025-02 (Hagenberg)

#127873

P0472R3

Put std::monostate in <utility>

2025-02 (Hagenberg)

Complete

21

#127874

P3349R1

Converting contiguous iterators to pointers

2025-02 (Hagenberg)

#127875

P3372R3

constexpr containers and adaptors

2025-02 (Hagenberg)

In Progress

#127876

P3378R2

constexpr exception types

2025-02 (Hagenberg)

#127877

P3441R2

Rename simd_split to simd_chunk

2025-02 (Hagenberg)

#127878

P3287R3

Exploration of namespaces for std::simd

2025-02 (Hagenberg)

#127879

P2976R1

Freestanding Library: algorithm, numeric, and random

2025-02 (Hagenberg)

#127880

P3430R3

simd issues: explicit, unsequenced, identity-element position, and members of disabled simd

2025-02 (Hagenberg)

#127881

P2663R7

Interleaved complex values support in std::simd

2025-02 (Hagenberg)

#127882

P2933R4

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

2025-02 (Hagenberg)

#127883

P2846R6

reserve_hint: Eagerly reserving memory for not-quite-sized lazy ranges

2025-02 (Hagenberg)

#127884

P3471R4

Standard Library Hardening

2025-02 (Hagenberg)

#127885

P0447R28

Introduction of std::hive to the standard library

2025-02 (Hagenberg)

#127886

P3019R14

indirect and polymorphic: Vocabulary Types for Composite Class Design

2025-02 (Hagenberg)

#127887

P2996R13

Reflection for C++26

2025-06 (Sofia)

#148123

P3394R4

Annotations for Reflection

2025-06 (Sofia)

#148124

P3293R3

Splicing a base class subobject

2025-06 (Sofia)

#148125

P3491R3

define_static_{string,object,array}

2025-06 (Sofia)

#148126

P3096R12

Function Parameter Reflection in Reflection for C++26

2025-06 (Sofia)

#148127

P2988R12

std::optional<T&>

2025-06 (Sofia)

Complete

22

#148131

P3348R4

C++26 should refer to C23 not C17

2025-06 (Sofia)

#148133

P3037R6

constexpr std::shared_ptr and friends

2025-06 (Sofia)

#148135

P3284R4

write_env and unstoppable Sender Adaptors

2025-06 (Sofia)

#148136

P3179R9

Parallel Range Algorithms

2025-06 (Sofia)

#148137

P3709R2

Reconsider parallel ranges::rotate_copy and ranges::reverse_copy

2025-06 (Sofia)

#148138

P3641R0

Rename std::observable to std::observable_checkpoint, and add a feature-test macro

2025-06 (Sofia)

#148139

P3044R2

sub-string_view from string

2025-06 (Sofia)

Complete

22

#148140

P2876R3

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

2025-06 (Sofia)

#148143

P3480R6

std::simd is a range

2025-06 (Sofia)

#148144

P2664R11

Extend std::simd with permutation API

2025-06 (Sofia)

#148145

P3691R1

Reconsider naming of the namespace for std::simd

2025-06 (Sofia)

#148148

P3383R3

mdspan.at()

2025-06 (Sofia)

#148149

P2927R3

Inspecting exception_ptr

2025-06 (Sofia)

#148150

P3748R0

Inspecting exception_ptr should be constexpr

2025-06 (Sofia)

#148151

P2830R10

Standardized Constexpr Type Ordering

2025-06 (Sofia)

#148152

P3570R2

optional variants in sender/receiver

2025-06 (Sofia)

#148153

P3481R5

std::execution::bulk() issues

2025-06 (Sofia)

#148155

P3433R1

Allocator Support for Operation States

2025-06 (Sofia)

#148157

P3149R11

async_scope - Creating scopes for non-sequential concurrency

2025-06 (Sofia)

#148158

P3682R0

Remove std::execution::split

2025-06 (Sofia)

#148160

P2079R10

Parallel scheduler

2025-06 (Sofia)

#148161

P3557R3

High-Quality Sender Diagnostics with Constexpr Exceptions

2025-06 (Sofia)

#148162

P3560R2

Error Handling in Reflection

2025-06 (Sofia)

#148128

P3503R3

Make type-erased allocator use in promise and packaged_task consistent

2025-06 (Sofia)

#148164

P3008R6

Atomic floating-point min/max

2025-06 (Sofia)

#148168

P3111R8

Atomic Reduction Operations

2025-06 (Sofia)

#148174

P3060R3

Add std::views::indices(n)

2025-06 (Sofia)

Complete

22

#148175

P2319R5

Prevent path presentation problems

2025-06 (Sofia)

#148177

P3223R2

Making std::istream::ignore less surprising

2025-06 (Sofia)

Complete

22

#148178

P2781R9

std::constant_wrapper

2025-06 (Sofia)

#148179

P3697R1

Minor additions to C++26 standard library hardening

2025-06 (Sofia)

#148180

P3552R3

Add a Coroutine Task Type

2025-06 (Sofia)

#148182

P1317R2

Remove return type deduction in std::apply

2025-06 (Sofia)

#148183

P3920R0

Wording for NB comment resolution on trivial relocation

2025-11 (Kona)

#171269

P3016R6

Resolve inconsistencies in begin/end for valarray and braced initializer lists

2025-11 (Kona)

#171271

P3567R2

flat_meow Fixes

2025-11 (Kona)

Complete

22

#171272

P3663R3

Future-proof submdspan_mapping

2025-11 (Kona)

#166089

P3914R0

Assorted NB comment resolutions for Kona 2025

2025-11 (Kona)

#171274

P3836R2

Make optional<T&> trivially copyable

2025-11 (Kona)

#171275

P3860R1

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

2025-11 (Kona)

#171276

P3388R3

When Do You Know connect Doesn’t Throw?

2025-11 (Kona)

#171277

P3774R1

Rename std::nontype, and make it broadly useful

2025-11 (Kona)

#171279

P3819R0

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

2025-11 (Kona)

#171280

P3612R1

Harmonize proxy-reference operations (LWG 3638 and 4187)

2025-11 (Kona)

#171281

P3778R0

Fix for type_order template definition

2025-11 (Kona)

#171284

P1789R3

Library Support for Expansion Statements

2025-11 (Kona)

#167268

P3922R1

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

2025-11 (Kona)

#171285

P3878R1

Standard library hardening should not use the ‘observe’ semantic

2025-11 (Kona)

#171286

P3887R1

Make when_all a Ronseal Algorithm

2025-11 (Kona)

#171289

P3923R0

Additional NB comment resolutions for Kona 2025

2025-11 (Kona)

#171290

P3371R5

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

2025-11 (Kona)

#171291

P3391R2

constexpr std::format

2025-11 (Kona)

#171292

P3913R1

Optimize for std::optional in range adaptors

2025-11 (Kona)

#171294

Library Working Group Issues Status

Issue #

Issue Name

Meeting

Status

First released version

GitHub issue

Notes

LWG2994

Needless UB for basic_string and basic_string_view

2023-06 (Varna)

Complete

5

#105268

LWG3884

flat_foo is missing allocator-extended copy/move constructors

2023-06 (Varna)

#105269

LWG3885

op should be in [zombie.names]

2023-06 (Varna)

Nothing To Do

#105270

LWG3887

Version macro for allocate_at_least

2023-06 (Varna)

Complete

19

#105271

LWG3893

LWG 3661 broke atomic<shared_ptr<T>> a; a = nullptr;

2023-06 (Varna)

#105273

LWG3894

generator::promise_type::yield_value(ranges::elements_of<Rng, Alloc>) should not be noexcept

2023-06 (Varna)

#105274

LWG3903

span destructor is redundantly noexcept

2023-06 (Varna)

Complete

7

#105275

LWG3904

lazy_split_view::outer-iterator’s const-converting constructor isn’t setting trailing_empty_

2023-06 (Varna)

#105276

LWG3905

Type of std::fexcept_t

2023-06 (Varna)

Complete

3.4

#105277

LWG3912

enumerate_view::iterator::operator- should be noexcept

2023-06 (Varna)

#105279

LWG3914

Inconsistent template-head of ranges::enumerate_view

2023-06 (Varna)

#105280

LWG3915

Redundant paragraph about expression variations

2023-06 (Varna)

#105281

LWG3925

Concept formattable’s definition is incorrect

2023-06 (Varna)

Complete

17

#105282

LWG3927

Unclear preconditions for operator[] for sequence containers

2023-06 (Varna)

Nothing To Do

#105283

LWG3935

template<class X> constexpr complex& operator=(const complex<X>&) has no specification

2023-06 (Varna)

Complete

3.4

#105284

LWG3938

Cannot use std::expected monadic ops with move-only error_type

2023-06 (Varna)

Complete

18

#105285

LWG3940

std::expected<void, E>::value() also needs E to be copy constructible

2023-06 (Varna)

Complete

18

#105286

LWG2392

“character type” is used but not defined

2023-11 (Kona)

#105287

LWG3203

span element access invalidation

2023-11 (Kona)

Nothing To Do

#105288

LWG3305

any_cast<void>

2023-11 (Kona)

Complete

18

#105289

LWG3431

<=> for containers should require three_way_comparable<T> instead of <=>

2023-11 (Kona)

#105290

LWG3749

common_iterator should handle integer-class difference types

2023-11 (Kona)

#105291

LWG3809

Is std::subtract_with_carry_engine<uint16_t> supposed to work

2023-11 (Kona)

#105295

LWG3892

Incorrect formatting of nested ranges and tuples

2023-11 (Kona)

Complete

17

#105296

LWG3897

inout_ptr will not update raw pointer to 0

2023-11 (Kona)

Complete

19

#105297

LWG3946

The definition of const_iterator_t should be reworked

2023-11 (Kona)

#105298

LWG3947

Unexpected constraints on adjacent_transform_view::base()

2023-11 (Kona)

#105299

LWG3948

possibly-const-range and as-const-pointer should be noexcept

2023-11 (Kona)

#105300

LWG3949

std::atomic<bool>’s trivial destructor dropped in C++17 spec wording

2023-11 (Kona)

#105301

LWG3951

[expected.object.swap]: Using value() instead of has_value()

2023-11 (Kona)

Complete

16

#105302

LWG3953

iter_move for common_iterator and counted_iterator should return decltype(auto)

2023-11 (Kona)

Complete

20

#105303

LWG3957

[container.alloc.reqmts] The value category of v should be claimed

2023-11 (Kona)

#105304

LWG3965

Incorrect example in [format.string.escaped] p3 for formatting of combining characters

2023-11 (Kona)

Complete

19

#105305

LWG3970

[mdspan.syn] Missing definition of full_extent_t and full_extent

2023-11 (Kona)

#105306

LWG3973

Monadic operations should be ADL-proof

2023-11 (Kona)

#105307

LWG3974

mdspan::operator[] should not copy OtherIndexTypes

2023-11 (Kona)

#105308

LWG3987

Including <flat_foo> doesn’t provide std::begin/end

2023-11 (Kona)

Complete

#105309

LWG3990

Program-defined specializations of std::tuple and std::variant can’t be properly supported

2023-11 (Kona)

Complete

21

#105310

LWG4001

iota_view should provide empty

2023-11 (Kona)

Complete

19

#105311

LWG3767

codecvt<charN_t, char8_t, mbstate_t> incorrectly added to locale

2024-03 (Tokyo)

#105313

LWG3919

enumerate_view may invoke UB for sized common non-forward underlying ranges

2024-03 (Tokyo)

#105315

LWG3950

std::basic_string_view comparison operators are overspecified

2024-03 (Tokyo)

Complete

18

#105316

LWG3975

Specializations of basic_format_context should not be permitted

2024-03 (Tokyo)

Nothing To Do

#105317

LWG3984

ranges::to’s recursion branch may be ill-formed

2024-03 (Tokyo)

Complete

19

#105318

LWG4011

Effects: Equivalent to return” in [span.elem]

2024-03 (Tokyo)

Nothing To Do

#105319

LWG4012

common_view::begin/end are missing the simple-view check

2024-03 (Tokyo)

#105320

LWG4013

lazy_split_view::outer-iterator::value_type should not provide default constructor

2024-03 (Tokyo)

#105321

LWG4016

container-insertable checks do not match what container-inserter does

2024-03 (Tokyo)

Complete

20

#105322

LWG4023

Preconditions of std::basic_streambuf::setg/setp

2024-03 (Tokyo)

Complete

19

#105323

LWG4025

Move assignment operator of std::expected<cv void, E> should not be conditionally deleted

2024-03 (Tokyo)

Complete

20

#105324

LWG4030

Clarify whether arithmetic expressions in [numeric.sat.func] are mathematical or C++

2024-03 (Tokyo)

Nothing To Do

#105325

LWG4031

bad_expected_access<void> member functions should be noexcept

2024-03 (Tokyo)

Complete

16

#105326

LWG4035

single_view should provide empty

2024-03 (Tokyo)

Complete

19

#105328

LWG4036

__alignof_is_defined is only implicitly specified in C++ and not yet deprecated

2024-03 (Tokyo)

#105329

LWG4037

Static data members of ctype_base are not yet required to be usable in constant expressions

2024-03 (Tokyo)

#105330

LWG4038

std::text_encoding::aliases_view should have constexpr iterators

2024-03 (Tokyo)

#105332

LWG4043

“ASCII” is not a registered character encoding

2024-03 (Tokyo)

Nothing To Do

#105335

LWG4045

tuple can create dangling references from tuple-like

2024-03 (Tokyo)

#105337

LWG4053

Unary call to std::views::repeat does not decay the argument

2024-03 (Tokyo)

Complete

19

#105338

LWG4054

Repeating a repeat_view should repeat the view

2024-03 (Tokyo)

Complete

19

#105340

LWG3944

Formatters converting sequences of char to sequences of wchar_t

2024-06 (St. Louis)

Complete

21

#105342

LWG4060

submdspan preconditions do not forbid creating invalid pointer

2024-06 (St. Louis)

#105343

LWG4061

Should std::basic_format_context be default-constructible/copyable/movable?

2024-06 (St. Louis)

Complete

19

#105344

LWG4071

reference_wrapper comparisons are not SFINAE-friendly

2024-06 (St. Louis)

Complete

19

#105345

LWG4074

compatible-joinable-ranges is underconstrained

2024-06 (St. Louis)

Complete

21

#105346

LWG4076

concat_view should be freestanding

2024-06 (St. Louis)

#105347

LWG4079

Missing Preconditions in concat_view::iterator`s conversion constructor

2024-06 (St. Louis)

#105348

LWG4082

views::concat(r) is well-formed when r is an output_range

2024-06 (St. Louis)

#105349

LWG4083

views::as_rvalue should reject non-input ranges

2024-06 (St. Louis)

Complete

22

#105351

LWG4096

views::iota(views::iota(0)) should be rejected

2024-06 (St. Louis)

Complete

22

#105352

LWG4098

views::adjacent<0> should reject non-forward ranges

2024-06 (St. Louis)

#105353

LWG4105

ranges::ends_with`s Returns misses difference casting

2024-06 (St. Louis)

#105354

LWG4106

basic_format_args should not be default-constructible

2024-06 (St. Louis)

Complete

19

#105355

LWG3216

Rebinding the allocator before calling construct/destroy in allocate_shared

2024-11 (Wrocław)

#118332

LWG3436

std::construct_at should support arrays

2024-11 (Wrocław)

#118335

LWG3886

Monad mo’ problems

2024-11 (Wrocław)

Complete

22

#118336

LWG3899

co_yielding elements of an lvalue generator is unnecessarily inefficient

2024-11 (Wrocław)

#118337

LWG3900

The allocator_arg_t overloads of generator::promise_type::operator new should not be constrained

2024-11 (Wrocław)

#118338

LWG3918

std::uninitialized_move/_n and guaranteed copy elision

2024-11 (Wrocław)

#118339

LWG4014

LWG 3809 changes behavior of some existing std::subtract_with_carry_engine code

2024-11 (Wrocław)

#118340

LWG4024

Underspecified destruction of objects created in std::make_shared_for_overwrite/std::allocate_shared_for_overwrite

2024-11 (Wrocław)

Complete

16

#118341

LWG4027

possibly-const-range should prefer returning const R&

2024-11 (Wrocław)

#118342

LWG4044

Confusing requirements for std::print on POSIX platforms

2024-11 (Wrocław)

#118343

LWG4064

Clarify that std::launder is not needed when using the result of std::memcpy

2024-11 (Wrocław)

#118344

LWG4072

std::optional comparisons: constrain harder

2024-11 (Wrocław)

#118345

LWG4084

std::fixed ignores std::uppercase

2024-11 (Wrocław)

#118346

LWG4085

ranges::generate_random’s helper lambda should specify the return type

2024-11 (Wrocław)

#118347

LWG4088

println ignores the locale imbued in std::ostream

2024-11 (Wrocław)

Complete

18

#118348

LWG4112

has-arrow should required operator->() to be const-qualified

2024-11 (Wrocław)

#118349

LWG4113

Disallow has_unique_object_representations<Incomplete[]>

2024-11 (Wrocław)

Complete

#118350

LWG4119

generator::promise_type::yield_value(ranges::elements_of<R, Alloc>)’s nested generator may be ill-formed

2024-11 (Wrocław)

#118351

LWG4124

Cannot format zoned_time with resolution coarser than seconds

2024-11 (Wrocław)

#118352

LWG4126

Some feature-test macros for fully freestanding features are not yet marked freestanding

2024-11 (Wrocław)

#118353

LWG4134

Issue with Philox algorithm specification

2024-11 (Wrocław)

#118354

LWG4135

The helper lambda of std::erase for list should specify return type as bool

2024-11 (Wrocław)

Complete

21

#118355

LWG4140

Useless default constructors for bit reference types

2024-11 (Wrocław)

Complete

#118356

LWG4141

Improve prohibitions on “additional storage”

2024-11 (Wrocław)

#118357

LWG4142

format_parse_context::check_dynamic_spec should require at least one type

2024-11 (Wrocław)

#118358

LWG4144

Disallow unique_ptr<T&, D>

2024-11 (Wrocław)

#118359

LWG4147

Precondition on inplace_vector::emplace

2024-11 (Wrocław)

#118361

LWG4148

unique_ptr::operator* should not allow dangling references

2024-11 (Wrocław)

#118362

LWG4153

Fix extra “-1” for philox_engine::max()

2024-11 (Wrocław)

#118363

LWG4154

The Mandates for std::packaged_task’s constructor from a callable entity should consider decaying

2024-11 (Wrocław)

#118364

LWG4157

The resolution of LWG3465 was damaged by P2167R3

2024-11 (Wrocław)

Complete

20

#118365

LWG4164

Missing guarantees for forward_list modifiers

2024-11 (Wrocław)

Complete

21

#118366

LWG4169

std::atomic<T>’s default constructor should be constrained

2024-11 (Wrocław)

#118367

LWG4170

contiguous_iterator should require to_address(I{})

2024-11 (Wrocław)

#118368

LWG3578

Iterator SCARYness in the context of associative container merging

2025-02 (Hagenberg)

#127859

LWG3956

chrono::parse uses from_stream as a customization point

2025-02 (Hagenberg)

#127860

LWG4172

unique_lock self-move-assignment is broken

2025-02 (Hagenberg)

Complete

22

#127861

LWG4175

get_env() specified in terms of as_const() but this doesn’t work with rvalue senders

2025-02 (Hagenberg)

#127862

LWG4179

Wrong range in [alg.search]

2025-02 (Hagenberg)

#127863

LWG4186

regex_traits::transform_primary mistakenly detects typeid of a function

2025-02 (Hagenberg)

#127864

LWG4189

cache_latest_view should be freestanding

2025-02 (Hagenberg)

#127865

LWG4191

P1467 changed the return type of pow(complex<float>, int)

2025-02 (Hagenberg)

#127866

LWG4196

Complexity of inplace_merge() is incorrect

2025-02 (Hagenberg)

#127867

LWG4198

schedule_from isn’t starting the schedule sender if decay-copying results throws

2025-06 (Sofia)

#148188

LWG4202

enable-sender should be a variable template

2025-06 (Sofia)

#148189

LWG4203

Constraints on get-state functions are incorrect

2025-06 (Sofia)

#148190

LWG4204

specification of as-sndr2(Sig) in [exec.let] is incomplete

2025-06 (Sofia)

#148192

LWG4205

let_[*].transform_env is specified in terms of the let_* sender itself instead of its child

2025-06 (Sofia)

#148193

LWG4208

Wording needs to ensure that in connect(sndr, rcvr) that rcvr expression is only evaluated once

2025-06 (Sofia)

#148194

LWG4209

default_domain::transform_env should be returning FWD-ENV(env)

2025-06 (Sofia)

#148196

LWG4188

ostream::sentry destructor should handle exceptions

2025-06 (Sofia)

#148200

LWG4200

The operation_state concept can be simplified

2025-06 (Sofia)

#148201

LWG4201

with-await-transform::await_transform should not use a deduced return type

2025-06 (Sofia)

#148202

LWG4217

Clarify mdspan layout mapping requirements for rank == 0

2025-06 (Sofia)

#148203

LWG4222

expected constructor from a single value missing a constraint

2025-06 (Sofia)

Complete

22

#148208

LWG4224

Philox engines should be freestanding

2025-06 (Sofia)

#148210

LWG4227

Missing noexcept operator in [exec.when.all]

2025-06 (Sofia)

#148211

LWG4231

datapar::chunk<N> should use simd-size-type instead of size_t

2025-06 (Sofia)

#148215

LWG4232

datapar::resize does not resize

2025-06 (Sofia)

#148216

LWG4233

The helper lambda of std::erase for hive should specify return type as bool

2025-06 (Sofia)

#148217

LWG4234

Including <hive> doesn’t provide std::begin/end

2025-06 (Sofia)

#148218

LWG4235

cache_latest_view and to_input_view miss reserve_hint

2025-06 (Sofia)

#148219

LWG4236

chunk_view::outer-iterator::value_type should provide reserve_hint

2025-06 (Sofia)

#148220

LWG4239

flat_map’s transparent comparator no longer works for string literals

2025-06 (Sofia)

#148223

LWG4242

ranges::distance does not work with volatile iterators

2025-06 (Sofia)

#148224

LWG4245

Operators that interact with counted_iterator and default_sentinel_t should be noexcept

2025-06 (Sofia)

#148226

LWG4247

Header <stdbit.h> is not yet freestanding

2025-06 (Sofia)

#148227

LWG2991

variant copy constructor missing noexcept(see below)

2025-11 (Kona)

#171301

LWG3090

What is §[time.duration.cons]p4’s “no overflow is induced in the conversion” intended to mean?

2025-11 (Kona)

#171302

LWG3343

Ordering of calls to unlock() and notify_all() in Effects element of notify_all_at_thread_exit() should be reversed

2025-11 (Kona)

Complete

16

#105356

LWG3454

pointer_traits::pointer_to should be constexpr

2025-11 (Kona)

#171307

LWG3627

Inconsistent specifications for std::make_optional overloads

2025-11 (Kona)

#171309

LWG4015

LWG 3973 broke const overloads of std::optional monadic operations

2025-11 (Kona)

#171310

LWG4020

extents::index-cast weirdness

2025-11 (Kona)

#171311

LWG4136

Specify behavior of [linalg] Hermitian algorithms on diagonal with nonzero imaginary part

2025-11 (Kona)

#171312

LWG4137

Fix Mandates, Preconditions, and Complexity elements of [linalg] algorithms

2025-11 (Kona)

#171313

LWG4166

concat_view::end() should be more constrained in order to support noncopyable iterators

2025-11 (Kona)

#171314

LWG4230

simd<complex>::real/imag is overconstrained

2025-11 (Kona)

#171316

LWG4243

as_bytes/as_writable_bytes is broken with span<volatile T>

2025-11 (Kona)

#171317

LWG4251

Move assignment for indirect unnecessarily requires copy construction

2025-11 (Kona)

#171318

LWG4253

basic_const_iterator should provide iterator_type

2025-11 (Kona)

#171319

LWG4255

move_only_function constructor should recognize empty copyable_functions

2025-11 (Kona)

#171320

LWG4256

Incorrect constrains for function_ref constructors from nontype_t

2025-11 (Kona)

#171321

LWG4257

Stream insertion for chrono::local_time should be constrained

2025-11 (Kona)

#171322

LWG4260

Query objects must be default constructible

2025-11 (Kona)

#171323

LWG4265

std::midpoint should not accept const bool

2025-11 (Kona)

#171324

LWG4266

layout_stride::mapping should treat empty mappings as exhaustive

2025-11 (Kona)

#171325

LWG4269

unique_copy passes arguments to its predicate backwards

2025-11 (Kona)

#171326

LWG4272

For rank == 0, layout_stride is atypically convertible

2025-11 (Kona)

#171327

LWG4274

The chrono::hh_mm_ss constructor is ill-formed for unsigned durations

2025-11 (Kona)

#171328

LWG4275

std::dynamic_extent should also be defined in <mdspan>

2025-11 (Kona)

Complete

21

#171329

LWG4276

front() and back() are not hardened for zero-length std::arrays

2025-11 (Kona)

#171330

LWG4280

simd::partial_load uses undefined identifier T

2025-11 (Kona)

#171331

LWG4286

Some more feature-test macros for fully freestanding features are not marked freestanding

2025-11 (Kona)

#171332

LWG4291

explicit map(const Allocator&) should be constexpr

2025-11 (Kona)

#171333

LWG4292

Unordered container local iterators should be constexpr iterators

2025-11 (Kona)

#171334

LWG4293

span::subspan/first/last chooses wrong constructor when T is const-qualified bool

2025-11 (Kona)

#171335

LWG4294

bitset(const CharT*) constructor needs to be constrained

2025-11 (Kona)

#171336

LWG4297

Missing permutable constraint for iterator overloads in Parallel Range Algorithms

2025-11 (Kona)

#171338

LWG4299

Missing Mandates: part in optional<T&>::transform

2025-11 (Kona)

#171339

LWG4300

Missing Returns: element in optional<T&>::emplace

2025-11 (Kona)

#171340

LWG4301

condition_variable{_any}::wait_{for, until} should take timeout by value

2025-11 (Kona)

#171341

LWG4302

Problematic vector_sum_of_squares wording

2025-11 (Kona)

#171342

LWG4304

std::optional<NonReturnable&> is ill-formed due to value_or

2025-11 (Kona)

#171343

LWG4305

Missing user requirements on type_order template

2025-11 (Kona)

#171344

LWG4308

std::optional<T&>::iterator can’t be a contiguous iterator for some T

2025-11 (Kona)

#171345

LWG4312

Const and value category mismatch for allocator_arg_t/allocator_arg in the description of uses-allocator construction

2025-11 (Kona)

#171346

LWG4315

Insufficient specification of vector_two_norm and matrix_frob_norm

2025-11 (Kona)

#171347

LWG4316

{can_}substitute specification is ill-formed

2025-11 (Kona)

#171348

LWG4317

The meaning of “resource” in the Cpp17Destructible requirements is undefined

2025-11 (Kona)

#171349

LWG4318

Have hive::erase_if reevaluate end() to avoid UB

2025-11 (Kona)

#171350

LWG4328

Remove note in §[exec.sched] regarding waiting for completion of scheduled operations

2025-11 (Kona)

#171351

LWG4340

task::promise_type::unhandled_stopped() should be noexcept

2025-11 (Kona)

#171352

LWG4341

Missing rvalue reference qualification for task::connect()

2025-11 (Kona)

#171353

LWG4342

Missing rvalue reference qualification for task_scheduler::ts-sender::connect()

2025-11 (Kona)

#171354

LWG4343

Missing default template arguments for task

2025-11 (Kona)

#171355

LWG4345

task::promise_type::return_value default template parameter

2025-11 (Kona)

#171356

LWG4346

task::promise_type::return_void/value lack a specification

2025-11 (Kona)

#171357

LWG4349

task is not actually started lazily

2025-11 (Kona)

#171358

LWG4351

integral-constant-like needs more remove_cvref_t

2025-11 (Kona)

#171359

LWG4358

§[exec.as.awaitable] is using “Preconditions:” when it should probably be described in the constraint

2025-11 (Kona)

#171360

LWG4360

awaitable-sender concept should qualify use of awaitable-receiver type

2025-11 (Kona)

#171361

LWG4366

Heterogeneous comparison of expected may be ill-formed

2025-11 (Kona)

#171362

LWG4369

check-types function for upon_error and upon_stopped is wrong

2025-11 (Kona)

#171363

LWG4370

Comparison of optional<T> to T may be ill-formed

2025-11 (Kona)

#171364

LWG4372

Weaken Mandates: for dynamic padding values in padded layouts

2025-11 (Kona)

#171365

LWG4375

std::simd::bit_ceil should not be noexcept

2025-11 (Kona)

#171366

LWG4376

ABI tag in return type of [simd.mask.unary] is overconstrained

2025-11 (Kona)

#171367

LWG4377

Misleading note about lock-free property of std::atomic_ref

2025-11 (Kona)

#171368

LWG4382

The simd::basic_mask(bool) overload needs to be more constrained

2025-11 (Kona)

#171369

LWG4383

constant_wrapper's pseudo-mutators are underconstrained

2025-11 (Kona)

#171370

LWG4384

flat_set::erase(iterator) is underconstrained

2025-11 (Kona)

#171371

LWG4388

Align new definition of va_start with C23

2025-11 (Kona)

#171372

LWG4396

Improve inplace_vector(from_range_t, R&& rg)

2025-11 (Kona)

#171373

LWG4398

enable_nonlocking_formatter_optimization should be disabled for container adaptors

2025-11 (Kona)

#171375

LWG4399

enable_nonlocking_formatter_optimization for pair and tuple needs remove_cvref_t

2025-11 (Kona)

#171376

LWG4403

simd::basic_vec CTAD misses difference type casting

2025-11 (Kona)

#171377

LWG4407

constexpr-wrapper-like needs remove_cvref_t in simd::basic_vec constructor

2025-11 (Kona)

#171378

LWG4412

Fix declaration of zero_element and uninit_element

2025-11 (Kona)

#171379

LWG4413

Unused/left-over simd::alignment specialization for basic_mask

2025-11 (Kona)

#171380

LWG4415

task::promise_type::uncaught_exception seems to be misnamed

2025-11 (Kona)

#171381

LWG4416

<meta> should include <compare>

2025-11 (Kona)

#171382

LWG4420

§[simd] conversions (constructor, load, stores, gather, and scatter) are incorrectly constrained for <stdfloat> types

2025-11 (Kona)

#171383

LWG4422

meta::access_context should be a consteval-only type

2025-11 (Kona)

#171384

LWG4423

meta::data_member_spec allows negative bit-field widths

2025-11 (Kona)

#171385

LWG4424

meta::define_aggregate should require a class type

2025-11 (Kona)

#171386

LWG4425

CTAD function_ref of data member pointer should produce noexcept signature

2025-11 (Kona)

#171387

LWG4426

Clarify what meta::reflect_constant_string considers a string literal

2025-11 (Kona)

#171388

LWG4427

meta::dealias needs to work with things that aren’t entities

2025-11 (Kona)

#171390

LWG4428

Metafunctions should not be defined in terms of constant subexpressions

2025-11 (Kona)

#171391

LWG4429

meta::alignment_of should exclude data member description of bit-field

2025-11 (Kona)

#171393

LWG4430

from_chars should not parse 0b" base prefixes”

2025-11 (Kona)

#171394

LWG4431

Parallel std::ranges::destroy should allow exceptions

2025-11 (Kona)

#171396

LWG4432

Clarify element initialization for meta::reflect_constant_array

2025-11 (Kona)

#171397

LWG4433

Incorrect query for C language linkage

2025-11 (Kona)

#171398

LWG4434

meta::is_accessible does not need to consider incomplete D

2025-11 (Kona)

#171399

LWG4435

meta::has_identifier doesn’t handle all types

2025-11 (Kona)

#171400

LWG4438

Bad expression in [exec.when.all]

2025-11 (Kona)

#171401

LWG4439

std::optional<T&>::swap possibly selects ADL-found swap

2025-11 (Kona)

#171402

LWG4440

Forward declarations of entities need also in entries

2025-11 (Kona)

#171403

LWG4441

ranges::rotate do not handle sized-but-not-sized-sentinel ranges correctly

2025-11 (Kona)

#171404

LWG4442

Clarify expr and fn for meta::reflect_object and meta::reflect_function

2025-11 (Kona)

#171405

LWG4443

Clean up identifier comparisons in meta::define_aggregate

2025-11 (Kona)

#171406

LWG4444

Fix default template arguments for ranges::replace and ranges::replace_if

2025-11 (Kona)

#171407

LWG4445

sch_ must not be in moved-from state

2025-11 (Kona)

#171408

LWG4446

Bad phrasing for SCHED(s)

2025-11 (Kona)

#171409

LWG4447

Remove unnecessary sizeof...(Env) > 1 condition

2025-11 (Kona)

#171410

LWG4448

Do not forward fn in completion_signatures

2025-11 (Kona)

#171411

LWG4449

define_aggregate members must be public

2025-11 (Kona)

#171412

LWG4450

std::atomic_ref<T>::store_key should be disabled for const T

2025-11 (Kona)

#171414

LWG4451

make_shared should not refer to a type U[N] for runtime N

2025-11 (Kona)

#171415

LWG4452

Make deref-move constexpr

2025-11 (Kona)

#171416

LWG4455

Add missing constraint to basic-sender::get_completion_signatures definition

2025-11 (Kona)

#171417

LWG4456

Decay Data and Child in make-sender

2025-11 (Kona)

#171418

LWG4459

Protect get_completion_signatures fold expression from overloaded commas

2025-11 (Kona)

#171419

LWG4461

stop-when needs to evaluate unstoppable tokens

2025-11 (Kona)

#171420

LWG4462

Algorithm requirements don’t describe semantics of s - i well

2025-11 (Kona)

#171421

LWG4463

Change wording to ‘model’ from ‘subsumes’ in [algorithms.parallel.user]

2025-11 (Kona)

#171422

LWG4464

§[alg.merge] Wording tweaks

2025-11 (Kona)

#171423

LWG4465

§[alg.partitions] Clarify Returns: element

2025-11 (Kona)

#171424

LWG4139

§[time.zone.leap] recursive constraint in <=>

Not Adopted Yet

Complete

20

#118369

LWG3456

Pattern used by std::from_chars is underspecified (option B)

Not Adopted Yet

Complete

20

#118370

LWG3882

tuple relational operators have confused friendships

Not Adopted Yet

Complete

22

The comparison operators are constrained harder than the proposed resolution. libstdc++ and MSVC STL do the same.