libc++ C++20 Status

Overview

In July 2017, the C++ standard committee created a draft for the next version of the C++ standard, initially known as “C++2a”. In September 2020, the C++ standard committee approved this draft, and sent it to ISO for approval as C++20.

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

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

Notes

P0463R1

Endian just Endian

2017-07 (Toronto)

Complete

7.0

P0674R1

Extending make_shared to Support Arrays

2017-07 (Toronto)

Complete

15.0

P0020R6

Floating Point Atomic

2017-11 (Albuquerque)

Complete

18.0

P0053R7

C++ Synchronized Buffered Ostream

2017-11 (Albuquerque)

Complete

18.0

P0202R3

Add constexpr modifiers to functions in <algorithm> and <utility> Headers

2017-11 (Albuquerque)

Complete

12.0

P0415R1

Constexpr for std::complex

2017-11 (Albuquerque)

Complete

16.0

P0439R0

Make std::memory_order a scoped enumeration

2017-11 (Albuquerque)

Complete

P0457R2

String Prefix and Suffix Checking

2017-11 (Albuquerque)

Complete

6.0

P0550R2

Transformation Trait remove_cvref

2017-11 (Albuquerque)

Complete

6.0

P0600R1

nodiscard in the Library

2017-11 (Albuquerque)

Complete

16.0

P0616R0

de-pessimize legacy <numeric> algorithms with std::move

2017-11 (Albuquerque)

Complete

12.0

P0653R2

Utility to convert a pointer to a raw pointer

2017-11 (Albuquerque)

Complete

6.0

P0718R2

Atomic shared_ptr

2017-11 (Albuquerque)

P0767R1

Deprecate POD

2017-11 (Albuquerque)

Complete

7.0

P0768R1

Library Support for the Spaceship (Comparison) Operator

2017-11 (Albuquerque)

Complete

P0777R1

Treating Unnecessary decay

2017-11 (Albuquerque)

Complete

7.0

P0122R7

<span>

2018-03 (Jacksonville)

Complete

7.0

P0355R7

Extending chrono to Calendars and Time Zones

2018-03 (Jacksonville)

Partial

See the Github issue for detailed status

P0551R3

Thou Shalt Not Specialize std Function Templates!

2018-03 (Jacksonville)

Complete

11.0

P0753R2

Manipulators for C++ Synchronized Buffered Ostream

2018-03 (Jacksonville)

P0754R2

<version>

2018-03 (Jacksonville)

Complete

7.0

P0809R0

Comparing Unordered Containers

2018-03 (Jacksonville)

Nothing To Do

P0858R0

Constexpr iterator requirements

2018-03 (Jacksonville)

Complete

12.0

P0905R1

Symmetry for spaceship

2018-03 (Jacksonville)

Complete

7.0

P0966R1

string::reserve Should Not Shrink

2018-03 (Jacksonville)

Complete

12.0

It was previously erroneously marked as complete in version 8.0. See bug 45368

P0019R8

Atomic Ref

2018-06 (Rapperswil)

Complete

19.0

P0458R2

Checking for Existence of an Element in Associative Containers

2018-06 (Rapperswil)

Complete

13.0

P0475R1

LWG 2511: guaranteed copy elision for piecewise construction

2018-06 (Rapperswil)

Complete

P0476R2

Bit-casting object representations

2018-06 (Rapperswil)

Complete

14.0

P0528R3

The Curious Case of Padding Bits, Featuring Atomic Compare-and-Exchange

2018-06 (Rapperswil)

P0542R5

Support for contract based programming in C++

2018-06 (Rapperswil)

Nothing To Do

n/a

Pulled at the 2019-07 meeting in Cologne

P0556R3

Integral power-of-2 operations

2018-06 (Rapperswil)

Complete

9.0

P0619R4

Reviewing Deprecated Facilities of C++17 for C++20

2018-06 (Rapperswil)

Partial

Only sections D.7, D.8, D.9, D.10, D.11, D.12, and D.13 are implemented. Section D.4 remains undone.

P0646R1

Improving the Return Value of Erase-Like Algorithms

2018-06 (Rapperswil)

Complete

10.0

P0722R3

Efficient sized delete for variable sized classes

2018-06 (Rapperswil)

Complete

9.0

P0758R1

Implicit conversion traits and utility functions

2018-06 (Rapperswil)

Complete

P0759R1

fpos Requirements

2018-06 (Rapperswil)

Complete

11.0

P0769R2

Add shift to <algorithm>

2018-06 (Rapperswil)

Complete

12.0

P0788R3

Standard Library Specification in a Concepts and Contracts World

2018-06 (Rapperswil)

Nothing To Do

n/a

Pulled at the 2019-07 meeting in Cologne

P0879R0

Constexpr for swap and swap related functions Also resolves LWG issue 2800.

2018-06 (Rapperswil)

Complete

13.0

P0887R1

The identity metafunction

2018-06 (Rapperswil)

Complete

8.0

P0892R2

explicit(bool)

2018-06 (Rapperswil)

P0898R3

Standard Library Concepts

2018-06 (Rapperswil)

Complete

13.0

P0935R0

Eradicating unnecessarily explicit default constructors from the standard library

2018-06 (Rapperswil)

Complete

12.0

P0941R2

Integrating feature-test macros into the C++ WD

2018-06 (Rapperswil)

In Progress

P1023R0

constexpr comparison operators for std::array

2018-06 (Rapperswil)

Complete

8.0

P1025R1

Update The Reference To The Unicode Standard

2018-06 (Rapperswil)

P1120R0

Consistency improvements for <=> and other comparison operators

2018-06 (Rapperswil)

P0318R1

unwrap_ref_decay and unwrap_reference

2018-11 (San Diego)

Complete

8.0

P0356R5

Simplified partial function application

2018-11 (San Diego)

Complete

13.0

P0357R3

reference_wrapper for incomplete types

2018-11 (San Diego)

Complete

8.0

P0482R6

char8_t: A type for UTF-8 characters and strings

2018-11 (San Diego)

Complete

16.0

P0487R1

Fixing operator>>(basic_istream&, CharT*) (LWG 2499)

2018-11 (San Diego)

Complete

8.0

P0591R4

Utility functions to implement uses-allocator construction

2018-11 (San Diego)

Partial

The changes in [mem.poly.allocator.mem] are missing

P0595R2

std::is_constant_evaluated()

2018-11 (San Diego)

Complete

9.0

P0602R4

variant and optional should propagate copy/move triviality

2018-11 (San Diego)

Complete

8.0

P0608R3

A sane variant converting constructor

2018-11 (San Diego)

Complete

9.0

P0655R1

visit<R>: Explicit Return Type for visit

2018-11 (San Diego)

Complete

12.0

P0771R1

std::function move constructor should be noexcept

2018-11 (San Diego)

Complete

6.0

P0896R4

The One Ranges Proposal

2018-11 (San Diego)

Complete

15.0

P0899R1

P0899R1 - LWG 3016 is not a defect

2018-11 (San Diego)

Nothing To Do

P0919R3

Heterogeneous lookup for unordered containers

2018-11 (San Diego)

Complete

12.0

P0972R0

<chrono> zero(), min(), and max() should be noexcept

2018-11 (San Diego)

Complete

8.0

P1006R1

Constexpr in std::pointer_traits

2018-11 (San Diego)

Complete

8.0

P1007R3

std::assume_aligned

2018-11 (San Diego)

Complete

15.0

P1020R1

Smart pointer creation with default initialization

2018-11 (San Diego)

Complete

16.0

P1032R1

Misc constexpr bits

2018-11 (San Diego)

Complete

13.0

P1085R2

Should Span be Regular?

2018-11 (San Diego)

Complete

8.0

P1123R0

Editorial Guidance for merging P0019r8 and P0528r3

2018-11 (San Diego)

P1148R0

Cleaning up Clause 20

2018-11 (San Diego)

P1165R1

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

2018-11 (San Diego)

Complete

15.0

P1209R0

Adopt Consistent Container Erasure from Library Fundamentals 2 for C++20

2018-11 (San Diego)

Complete

8.0

P1210R0

P1210R0: Completing the Rebase of Library Fundamentals, Version 3, Working Draft

2018-11 (San Diego)

Nothing To Do

P1236R1

Alternative Wording for P0907R4 Signed Integers are Two’s Complement

2018-11 (San Diego)

P1248R1

Remove CommonReference requirement from StrictWeakOrdering (a.k.a Fixing Relations)

2018-11 (San Diego)

Complete

13.0

P1285R0

Improving Completeness Requirements for Type Traits

2018-11 (San Diego)

P1353R0

Missing feature test macros

2018-11 (San Diego)

In Progress

P0339R6

polymorphic_allocator<> as a vocabulary type

2019-02 (Kona)

Complete

16.0

P0340R3

Making std::underlying_type SFINAE-friendly

2019-02 (Kona)

Complete

9.0

P0738R2

I Stream, You Stream, We All Stream for istream_iterator

2019-02 (Kona)

P0811R3

Well-behaved interpolation for numbers and pointers

2019-02 (Kona)

Complete

9.0

P0920R2

Precalculated hash values in lookup

2019-02 (Kona)

Nothing To Do

Reverted by P1661

P1001R2

Target Vectorization Policies from Parallelism V2 TS to C++20

2019-02 (Kona)

Complete

17.0

P1024R3

Usability Enhancements for std::span

2019-02 (Kona)

Complete

9.0

P1164R1

Make create_directory() Intuitive

2019-02 (Kona)

Complete

12.0

P1227R2

Signed ssize() functions, unsigned size() functions

2019-02 (Kona)

Complete

9.0

P1252R2

Ranges Design Cleanup

2019-02 (Kona)

Complete

15.0

P1286R2

Contra CWG DR1778

2019-02 (Kona)

P1357R1

Traits for [Un]bounded Arrays

2019-02 (Kona)

Complete

9.0

P1458R1

Mandating the Standard Library: Clause 16 - Language support library

2019-02 (Kona)

Complete

9.0

P1459R1

Mandating the Standard Library: Clause 18 - Diagnostics library

2019-02 (Kona)

Complete

9.0

P1462R1

Mandating the Standard Library: Clause 20 - Strings library

2019-02 (Kona)

Complete

9.0

P1463R1

Mandating the Standard Library: Clause 21 - Containers library

2019-02 (Kona)

P1464R1

Mandating the Standard Library: Clause 22 - Iterators library

2019-02 (Kona)

Complete

9.0

P0325R4

to_array from LFTS with updates

2019-07 (Cologne)

Complete

10.0

P0408R7

Efficient Access to basic_stringbuf’s Buffer

2019-07 (Cologne)

Complete

17.0

P0466R5

Layout-compatibility and Pointer-interconvertibility Traits

2019-07 (Cologne)

P0553R4

Bit operations

2019-07 (Cologne)

Complete

9.0

P0631R8

Math Constants

2019-07 (Cologne)

Complete

11.0

P0645R10

Text Formatting

2019-07 (Cologne)

Complete

14.0

The implementation was complete since LLVM 14, but the feature-test macro was not set until LLVM 19

P0660R10

Stop Token and Joining Thread, Rev 10.

2019-07 (Cologne)

Complete

20.0

The feature was implemented since LLVM 18 but was guarded behind -fexperimental-library.

P0784R7

More constexpr containers

2019-07 (Cologne)

Complete

12.0

P0980R1

Making std::string constexpr

2019-07 (Cologne)

Complete

15.0

P1004R2

Making std::vector constexpr

2019-07 (Cologne)

Complete

15.0

P1035R7

Input Range Adaptors

2019-07 (Cologne)

Complete

16.0

P1065R2

Constexpr INVOKE

2019-07 (Cologne)

Complete

12.0

P1135R6

The C++20 Synchronization Library

2019-07 (Cologne)

Complete

11.0

P1207R4

Movability of Single-pass Iterators

2019-07 (Cologne)

Complete

15.0

P1208R6

Adopt source_location for C++20

2019-07 (Cologne)

Complete

16.0

P1355R2

Exposing a narrow contract for ceil2

2019-07 (Cologne)

Complete

9.0

P1361R2

Integration of chrono with text formatting

2019-07 (Cologne)

Partial

P1423R3

char8_t backward compatibility remediation

2019-07 (Cologne)

Complete

15.0

P1424R1

‘constexpr’ feature macro concerns

2019-07 (Cologne)

Nothing To Do

Superseded by P1902

P1466R3

Miscellaneous minor fixes for chrono

2019-07 (Cologne)

Partial

P1474R1

Helpful pointers for ContiguousIterator

2019-07 (Cologne)

Complete

15.0

P1502R1

Standard library header units for C++20

2019-07 (Cologne)

P1522R1

Iterator Difference Type and Integer Overflow

2019-07 (Cologne)

Complete

15.0

P1523R1

Views and Size Types

2019-07 (Cologne)

Complete

15.0

P1612R1

Relocate Endian’s Specification

2019-07 (Cologne)

Complete

10.0

P1614R2

The Mothership has Landed

2019-07 (Cologne)

Complete

19.0

std::strong_order(long double, long double) is partly implemented.

P1638R1

basic_istream_view::iterator should not be copyable

2019-07 (Cologne)

Complete

16.0

P1643R1

Add wait/notify to atomic_ref

2019-07 (Cologne)

Complete

19.0

P1644R0

Add wait/notify to atomic<shared_ptr>

2019-07 (Cologne)

P1650R0

Output std::chrono::days with ‘d’ suffix

2019-07 (Cologne)

Complete

16.0

P1651R0

bind_front should not unwrap reference_wrapper

2019-07 (Cologne)

Complete

13.0

P1652R1

Printf corner cases in std::format

2019-07 (Cologne)

Complete

14.0

P1661R1

Remove dedicated precalculated hash lookup interface

2019-07 (Cologne)

Nothing To Do

P1754R1

Rename concepts to standard_case for C++20, while we still can

2019-07 (Cologne)

Complete

15.0

P0883R2

Fixing Atomic Initialization

2019-11 (Belfast)

Complete

14.0

shared_ptr and floating-point changes weren’t applied as they themselves aren’t implemented yet. Also, ATOMIC_FLAG_INIT was marked deprecated in version 14.0, but was undeprecated with the implementation of LWG3659 in version 15.0.

P1391R4

Range constructor for std::string_view

2019-11 (Belfast)

Complete

14.0

P1394R4

Range constructor for std::span

2019-11 (Belfast)

Complete

14.0

P1456R1

Move-only views

2019-11 (Belfast)

Complete

15.0

P1622R3

Mandating the Standard Library: Clause 32 - Thread support library

2019-11 (Belfast)

P1645R1

constexpr for numeric algorithms

2019-11 (Belfast)

Complete

12.0

P1686R2

Mandating the Standard Library: Clause 27 - Time library

2019-11 (Belfast)

P1690R1

Refinement Proposal for P0919 Heterogeneous lookup for unordered containers

2019-11 (Belfast)

Complete

12.0

P1716R3

ranges compare algorithm are over-constrained

2019-11 (Belfast)

Complete

15.0

P1718R2

Mandating the Standard Library: Clause 25 - Algorithms library

2019-11 (Belfast)

P1719R2

Mandating the Standard Library: Clause 26 - Numerics library

2019-11 (Belfast)

P1720R2

Mandating the Standard Library: Clause 28 - Localization library

2019-11 (Belfast)

P1721R2

Mandating the Standard Library: Clause 29 - Input/Output library

2019-11 (Belfast)

P1722R2

Mandating the Standard Library: Clause 30 - Regular Expression library

2019-11 (Belfast)

P1723R2

Mandating the Standard Library: Clause 31 - Atomics library

2019-11 (Belfast)

P1855R0

Make <compare> freestanding

2019-11 (Belfast)

P1862R1

Ranges adaptors for non-copyable iterators

2019-11 (Belfast)

Complete

16.0

P1865R1

Add max() to latch and barrier

2019-11 (Belfast)

Complete

11.0

P1869R1

Rename ‘condition_variable_any’ interruptible wait methods

2019-11 (Belfast)

Complete

18.0

P1870R1

forwarding-range is too subtle

2019-11 (Belfast)

Complete

15.0

P1871R1

Concept traits should be named after concepts

2019-11 (Belfast)

Complete

14.0

P1872R0

span should have size_type, not index_type

2019-11 (Belfast)

Complete

10.0

P1878R1

Constraining Readable Types

2019-11 (Belfast)

Complete

15.0

P1892R1

Extended locale-specific presentation specifiers for std::format

2019-11 (Belfast)

Complete

14.0

P1902R1

Missing feature-test macros 2018-2019

2019-11 (Belfast)

P1959R0

Remove std::weak_equality and std::strong_equality

2019-11 (Belfast)

Nothing To Do

P1960R0

NB Comment Changes Reviewed by SG1

2019-11 (Belfast)

P1961R0

Harmonizing the definitions of total order for pointers

2019-11 (Belfast)

P1965R0

Blanket Wording for Specifying “Hidden Friends”

2019-11 (Belfast)

P0586R2

Safe integral comparisons

2020-02 (Prague)

Complete

13.0

P0593R6

Implicit creation of objects for low-level object manipulation

2020-02 (Prague)

P1115R3

Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if

2020-02 (Prague)

Complete

11.0

P1243R4

Rangify New Algorithms

2020-02 (Prague)

Complete

15.0

P1460R1

Mandating the Standard Library: Clause 20 - Utilities library

2020-02 (Prague)

P1739R4

Avoid template bloat for safe_ranges in combination with “subrange-y” view adaptors

2020-02 (Prague)

Complete

15.0

P1831R1

Deprecating volatile: library

2020-02 (Prague)

P1868R2

width: clarifying units of width and precision in std::format

2020-02 (Prague)

Complete

14.0

P1956R1

On the names of low-level bit manipulation functions

2020-02 (Prague)

Complete

12.0

P1957R2

Converting from T* to bool should be considered narrowing (re: US 212)

2020-02 (Prague)

Complete

18.0

P1963R0

Fixing US 313

2020-02 (Prague)

P1964R2

Wording for boolean-testable

2020-02 (Prague)

Complete

13.0

P1970R2

Consistency for size() functions: Add ranges::ssize

2020-02 (Prague)

Complete

15.0

P1973R1

Rename “_default_init” Functions, Rev1

2020-02 (Prague)

Complete

16.0

P1976R2

Fixed-size span construction from dynamic range

2020-02 (Prague)

Complete

11.0

P1981R0

Rename leap to leap_second

2020-02 (Prague)

Complete

19.0

P1982R0

Rename link to time_zone_link

2020-02 (Prague)

Complete

19.0

P1983R0

Wording for GB301, US296, US292, US291, and US283

2020-02 (Prague)

Complete

15.0

P1994R1

elements_view needs its own sentinel

2020-02 (Prague)

Complete

16.0

P2002R1

Defaulted comparison specification cleanups

2020-02 (Prague)

Complete

7.0

P2045R1

Missing Mandates for the standard library

2020-02 (Prague)

P2085R0

Consistent defaulted comparisons

2020-02 (Prague)

P2091R0

Issues with range access CPOs

2020-02 (Prague)

Complete

15.0

P2101R0

P2101R0: ‘Models’ subsumes ‘satisfies’ (Wording for US298 and US300)

2020-02 (Prague)

Nothing To Do

P2102R0

Make ‘implicit expression variations’ more explicit (Wording for US185)

2020-02 (Prague)

Complete

15.0

P2106R0

Alternative wording for GB315 and GB316

2020-02 (Prague)

Complete

15.0

P2116R0

Remove tuple-like protocol support from fixed-extent span

2020-02 (Prague)

Complete

11.0

P2231R1

Missing constexpr in std::optional and std::variant

2021-06 (Virtual)

Complete

19.0

P2325R3

Views should not be required to be default constructible

2021-06 (Virtual)

Complete

16.0

P2210R2

Superior String Splitting

2021-06 (Virtual)

Complete

16.0

P2216R3

std::format improvements

2021-06 (Virtual)

Complete

15.0

P2281R1

Clarifying range adaptor objects

2021-06 (Virtual)

Complete

14.0

P2328R1

join_view should join all views of ranges

2021-06 (Virtual)

Complete

15.0

P2367R0

Remove misuses of list-initialization from Clause 24

2021-06 (Virtual)

Complete

15.0

P2372R3

Fixing locale handling in chrono formatters

2021-10 (Virtual)

In Progress

P2415R2

What is a view

2021-10 (Virtual)

Complete

14.0

P2418R2

Add support for std::generator-like types to std::format

2021-10 (Virtual)

Complete

15.0

P2432R1

Fix istream_view

2021-10 (Virtual)

Complete

16.0

Library Working Group Issues Status

Issue #

Issue Name

Meeting

Status

First released version

Notes

LWG2070

allocate_shared should use allocator_traits<A>::construct

2017-07 (Toronto)

Nothing To Do

Resolved by P0674R1

LWG2444

Inconsistent complexity for std::sort_heap

2017-07 (Toronto)

Nothing To Do

LWG2593

Moved-from state of Allocators

2017-07 (Toronto)

Nothing To Do

LWG2597

std::log misspecified for complex numbers

2017-07 (Toronto)

LWG2783

stack::emplace() and queue::emplace() should return decltype(auto)

2017-07 (Toronto)

Complete

LWG2932

Constraints on parallel algorithm implementations are underspecified

2017-07 (Toronto)

LWG2937

Is equivalent("existing_thing", "not_existing_thing") an error

2017-07 (Toronto)

Complete

LWG2940

result_of specification also needs a little cleanup

2017-07 (Toronto)

Nothing To Do

LWG2942

LWG 2873’s resolution missed weak_ptr::owner_before

2017-07 (Toronto)

Complete

LWG2954

Specialization of the convenience variable templates should be prohibited

2017-07 (Toronto)

Complete

LWG2961

Bad postcondition for set_default_resource

2017-07 (Toronto)

Complete

16.0

LWG2966

Incomplete resolution of US 74

2017-07 (Toronto)

Nothing To Do

LWG2974

Diagnose out of bounds tuple_element/variant_alternative

2017-07 (Toronto)

Complete

LWG2779

[networking.ts] Relax requirements on buffer sequence iterators

2017-11 (Albuquerque)

LWG2870

Default value of parameter theta of polar should be dependent

2017-11 (Albuquerque)

Complete

LWG2935

What should create_directories do when p already exists but is not a directory?

2017-11 (Albuquerque)

Nothing To Do

LWG2941

[thread.req.timing] wording should apply to both member and namespace-level functions

2017-11 (Albuquerque)

Nothing To Do

LWG2944

LWG 2905 accidentally removed requirement that construction of the deleter doesn’t throw an exception

2017-11 (Albuquerque)

Nothing To Do

LWG2945

Order of template parameters in optional comparisons

2017-11 (Albuquerque)

Complete

LWG2948

unique_ptr does not define operator<< for stream output

2017-11 (Albuquerque)

Complete

LWG2950

std::byte operations are misspecified

2017-11 (Albuquerque)

Complete

LWG2952

iterator_traits should work for pointers to cv T

2017-11 (Albuquerque)

Complete

LWG2953

LWG 2853 should apply to deque::erase too

2017-11 (Albuquerque)

Complete

LWG2958

Moves improperly defined as deleted

2017-11 (Albuquerque)

Complete

LWG2964

Apparently redundant requirement for dynamic_pointer_cast

2017-11 (Albuquerque)

LWG2965

Non-existing path::native_string() in filesystem_error::what() specification

2017-11 (Albuquerque)

Nothing To Do

LWG2972

What is is_trivially_destructible_v<int>?

2017-11 (Albuquerque)

Complete

LWG2976

Dangling uses_allocator specialization for packaged_task

2017-11 (Albuquerque)

Complete

20.0

Originally implemented in LLVM 6.0 but reverted later. Old documentation incorrectly said it was implemented.

LWG2977

unordered_meow::merge() has incorrect Throws: clause

2017-11 (Albuquerque)

Nothing To Do

LWG2978

Hash support for pmr::string and friends

2017-11 (Albuquerque)

Complete

16.0

LWG2979

aligned_union should require complete object types

2017-11 (Albuquerque)

Complete

LWG2980

Cannot compare_exchange empty pointers

2017-11 (Albuquerque)

LWG2981

Remove redundant deduction guides from standard library

2017-11 (Albuquerque)

Nothing To Do

LWG2982

Making size_type consistent in associative container deduction guides

2017-11 (Albuquerque)

LWG2988

Clause 32 cleanup missed one typename

2017-11 (Albuquerque)

Complete

13.0

LWG2993

reference_wrapper<T> conversion from T&&

2017-11 (Albuquerque)

Complete

13.0

LWG2998

Requirements on function objects passed to {forward_,}list-specific algorithms

2017-11 (Albuquerque)

Nothing To Do

LWG3001

weak_ptr::element_type needs remove_extent_t

2017-11 (Albuquerque)

Complete

14.0

LWG3024

variant’s copies must be deleted instead of disabled via SFINAE

2017-11 (Albuquerque)

Complete

LWG2164

What are the semantics of vector.emplace(vector.begin(), vector.back())?

2018-03 (Jacksonville)

Complete

LWG2243

istream::putback problem

2018-03 (Jacksonville)

Complete

LWG2816

resize_file has impossible postcondition

2018-03 (Jacksonville)

Nothing To Do

LWG2843

Unclear behavior of std::pmr::memory_resource::do_allocate()

2018-03 (Jacksonville)

Complete

LWG2849

Why does !is_regular_file(from) cause copy_file to report a “file already exists” error?

2018-03 (Jacksonville)

Nothing To Do

LWG2851

std::filesystem enum classes are now underspecified

2018-03 (Jacksonville)

Nothing To Do

LWG2946

LWG 2758’s resolution missed further corrections

2018-03 (Jacksonville)

Complete

LWG2969

polymorphic_allocator::construct() shouldn’t pass resource()

2018-03 (Jacksonville)

Complete

LWG2975

Missing case for pair construction in scoped and polymorphic allocators

2018-03 (Jacksonville)

LWG2989

path‘s stream insertion operator lets you insert everything under the sun

2018-03 (Jacksonville)

Complete

LWG3000

monotonic_memory_resource::do_is_equal uses dynamic_cast unnecessarily

2018-03 (Jacksonville)

Complete

16.0

LWG3002

[networking.ts] basic_socket_acceptor::is_open() isn’t noexcept

2018-03 (Jacksonville)

LWG3004

§[string.capacity] and §[vector.capacity] should specify time complexity for capacity()

2018-03 (Jacksonville)

Nothing To Do

LWG3005

Destruction order of arrays by make_shared/allocate_shared only recommended?

2018-03 (Jacksonville)

LWG3007

allocate_shared should rebind allocator to cv-unqualified value_type for construction

2018-03 (Jacksonville)

LWG3009

Including <string_view> doesn’t provide std::size/empty/data

2018-03 (Jacksonville)

Complete

LWG3010

[networking.ts] uses_executor says “if a type T::executor_type exists”

2018-03 (Jacksonville)

LWG3013

(recursive_)directory_iterator construction and traversal should not be noexcept

2018-03 (Jacksonville)

Complete

LWG3014

More noexcept issues with filesystem operations

2018-03 (Jacksonville)

Complete

LWG3015

copy_options::*unspecified* underspecified

2018-03 (Jacksonville)

Nothing To Do

LWG3017

list splice functions should use addressof

2018-03 (Jacksonville)

Complete

LWG3020

[networking.ts] Remove spurious nested value_type buffer sequence requirement

2018-03 (Jacksonville)

LWG3026

filesystem::weakly_canonical still defined in terms of canonical(p, base)

2018-03 (Jacksonville)

Complete

LWG3030

Who shall meet the requirements of try_lock?

2018-03 (Jacksonville)

Nothing To Do

LWG3034

P0767R1 breaks previously-standard-layout types

2018-03 (Jacksonville)

Complete

LWG3035

std::allocator‘s constructors should be constexpr

2018-03 (Jacksonville)

Complete

LWG3039

Unnecessary decay in thread and packaged_task

2018-03 (Jacksonville)

Complete

LWG3041

Unnecessary decay in reference_wrapper

2018-03 (Jacksonville)

Complete

LWG3042

is_literal_type_v should be inline

2018-03 (Jacksonville)

Complete

LWG3043

Bogus postcondition for filesystem_error constructor

2018-03 (Jacksonville)

Complete

LWG3045

atomic<floating-point> doesn’t have value_type or difference_type

2018-03 (Jacksonville)

Complete

18.0

LWG3048

transform_reduce(exec, first1, last1, first2, init) discards execution policy

2018-03 (Jacksonville)

Complete

17.0

LWG3051

Floating point classifications were inadvertently changed in P0175

2018-03 (Jacksonville)

Nothing To Do

LWG3075

basic_string needs deduction guides from basic_string_view

2018-03 (Jacksonville)

Complete

LWG2139

What is a user-defined type?

2018-06 (Rapperswil)

LWG2970

Return type of std::visit misspecified

2018-06 (Rapperswil)

Complete

11.0

LWG3058

Parallel adjacent_difference shouldn’t require creating temporaries

2018-06 (Rapperswil)

LWG3062

Unnecessary decay_t in is_execution_policy_v should be remove_cvref_t

2018-06 (Rapperswil)

Complete

17.0

LWG3067

recursive_directory_iterator::pop must invalidate

2018-06 (Rapperswil)

Nothing To Do

LWG3071

[networking.ts] read_until still refers to “input sequence”

2018-06 (Rapperswil)

Nothing To Do

LWG3074

Non-member functions for valarray should only deduce from the valarray

2018-06 (Rapperswil)

LWG3076

basic_string CTAD ambiguity

2018-06 (Rapperswil)

Complete

LWG3079

LWG 2935 forgot to fix the existing_p overloads of create_directory

2018-06 (Rapperswil)

Nothing To Do

LWG3080

Floating point from_chars pattern specification breaks round-tripping

2018-06 (Rapperswil)

LWG3083

What should ios::iword(-1) do?

2018-06 (Rapperswil)

Nothing To Do

LWG3094

[time.duration.io]p4 makes surprising claims about encoding

2018-06 (Rapperswil)

LWG3100

Unnecessary and confusing “empty span” wording

2018-06 (Rapperswil)

Nothing To Do

LWG3102

Clarify span iterator and const_iterator behavior

2018-06 (Rapperswil)

Complete

LWG3104

Fixing duration division

2018-06 (Rapperswil)

Complete

LWG2183

Muddled allocator requirements for match_results constructors

2018-11 (San Diego)

Complete

LWG2184

Muddled allocator requirements for match_results assignments

2018-11 (San Diego)

Complete

LWG2412

promise::set_value() and promise::get_future() should not race

2018-11 (San Diego)

LWG2499

operator>>(basic_istream&, CharT*) makes it hard to avoid buffer overflows

2018-11 (San Diego)

Nothing To Do

Resolved by P0487R1

LWG2682

filesystem::copy() won’t create a symlink to a directory

2018-11 (San Diego)

Nothing To Do

LWG2697

[concurr.ts] Behavior of future/shared_future unwrapping constructor when given an invalid future

2018-11 (San Diego)

LWG2797

Trait precondition violations

2018-11 (San Diego)

Nothing To Do

Resolved by P1285R0

LWG2936

Path comparison is defined in terms of the generic format

2018-11 (San Diego)

Complete

LWG2943

Problematic specification of the wide version of basic_filebuf::open

2018-11 (San Diego)

Nothing To Do

LWG2960

[fund.ts.v3] nonesuch is insufficiently useless

2018-11 (San Diego)

Complete

LWG2995

basic_stringbuf default constructor forbids it from using SSO capacity

2018-11 (San Diego)

Complete

20.0

LWG2996

Missing rvalue overloads for shared_ptr operations

2018-11 (San Diego)

Complete

17.0

LWG3008

make_shared (sub)object destruction semantics are not specified

2018-11 (San Diego)

Complete

16.0

LWG3022

is_convertible<derived*, base*> may lead to ODR

2018-11 (San Diego)

Nothing To Do

Resolved by P1285R0

LWG3025

Map-like container deduction guides should use pair<Key, T>, not pair<const Key, T>

2018-11 (San Diego)

Complete

LWG3031

Algorithms and predicates with non-const reference arguments

2018-11 (San Diego)

LWG3037

polymorphic_allocator and incomplete types

2018-11 (San Diego)

Complete

16.0

LWG3038

polymorphic_allocator::allocate should not allow integer overflow to create vulnerabilities

2018-11 (San Diego)

Complete

14.0

LWG3054

uninitialized_copy appears to not be able to meet its exception-safety guarantee

2018-11 (San Diego)

Nothing To Do

LWG3065

LWG 2989 missed that all path‘s other operators should be hidden friends as well

2018-11 (San Diego)

Complete

LWG3096

path::lexically_relative is confused by trailing slashes

2018-11 (San Diego)

Complete

LWG3116

OUTERMOST_ALLOC_TRAITS needs remove_reference_t

2018-11 (San Diego)

LWG3122

__cpp_lib_chrono_udls was accidentally dropped

2018-11 (San Diego)

Complete

LWG3127

basic_osyncstream::rdbuf needs a const_cast

2018-11 (San Diego)

Complete

18.0

LWG3128

strstream::rdbuf needs a const_cast

2018-11 (San Diego)

Nothing To Do

LWG3129

regex_token_iterator constructor uses wrong pointer arithmetic

2018-11 (San Diego)

LWG3130

§[input.output] needs many addressof

2018-11 (San Diego)

Complete

20.0

LWG3131

addressof all the things

2018-11 (San Diego)

LWG3132

Library needs to ban macros named expects or ensures

2018-11 (San Diego)

Nothing To Do

LWG3134

[fund.ts.v3] LFTSv3 contains extraneous [meta] variable templates that should have been deleted by P09961

2018-11 (San Diego)

Nothing To Do

Resolved by P1210R0

LWG3137

Header for __cpp_lib_to_chars

2018-11 (San Diego)

Complete

LWG3140

COMMON_REF is unimplementable as specified

2018-11 (San Diego)

Nothing To Do

LWG3145

file_clock breaks ABI for C++17 implementations

2018-11 (San Diego)

Complete

LWG3147

Definitions of “likely” and “unlikely” are likely to cause problems

2018-11 (San Diego)

Nothing To Do

LWG3148

<concepts> should be freestanding

2018-11 (San Diego)

LWG3153

Common and common_type have too little in common

2018-11 (San Diego)

Complete

13.0

LWG3154

Common and CommonReference have a common defect

2018-11 (San Diego)

Nothing To Do

LWG3012

atomic<T> is unimplementable for non-is_trivially_copy_constructible T

2019-02 (Kona)

LWG3040

basic_string_view::starts_with Effects are incorrect

2019-02 (Kona)

Complete

LWG3077

(push|emplace)_back should invalidate the end iterator

2019-02 (Kona)

Nothing To Do

LWG3087

One final &x in §[list.ops]

2019-02 (Kona)

Nothing To Do

LWG3101

span‘s Container constructors need another constraint

2019-02 (Kona)

Complete

LWG3112

system_error and filesystem_error constructors taking a string may not be able to meet their postconditions

2019-02 (Kona)

Nothing To Do

LWG3119

Program-definedness of closure types

2019-02 (Kona)

Nothing To Do

LWG3133

Modernizing numeric type requirements

2019-02 (Kona)

LWG3144

span does not have a const_pointer typedef

2019-02 (Kona)

Complete

LWG3173

Enable CTAD for ref-view

2019-02 (Kona)

Complete

15.0

LWG3179

subrange should always model Range

2019-02 (Kona)

Nothing To Do

LWG3180

Inconsistently named return type for ranges::minmax_element

2019-02 (Kona)

Complete

15.0

LWG3182

Specification of Same could be clearer

2019-02 (Kona)

Complete

15.0

LWG2899

is_(nothrow_)move_constructible and tuple, optional and unique_ptr

2019-07 (Cologne)

LWG3055

path::operator+=(*single-character*) misspecified

2019-07 (Cologne)

Complete

7.0

LWG3158

tuple(allocator_arg_t, const Alloc&) should be conditionally explicit

2019-07 (Cologne)

Complete

10.0

LWG3169

ranges permutation generators discard useful information

2019-07 (Cologne)

Complete

15.0

LWG3183

Normative permission to specialize Ranges variable templates

2019-07 (Cologne)

Nothing To Do

LWG3184

Inconsistencies in bind_front wording

2019-07 (Cologne)

Complete

13.0

LWG3185

Uses-allocator construction functions missing constexpr and noexcept

2019-07 (Cologne)

Complete

16.0

LWG3186

ranges removal, partition, and partial_sort_copy algorithms discard useful information

2019-07 (Cologne)

Complete

15.0

LWG3187

P0591R4 reverted DR 2586 fixes to scoped_allocator_adaptor::construct()

2019-07 (Cologne)

LWG3191

std::ranges::shuffle synopsis does not match algorithm definition

2019-07 (Cologne)

Complete

15.0

LWG3196

std::optional<T> is ill-formed is T is an array

2019-07 (Cologne)

Complete

LWG3198

Bad constraint on std::span::span()

2019-07 (Cologne)

Complete

LWG3199

istream >> bitset<0> fails

2019-07 (Cologne)

Complete

10.0

LWG3202

P0318R1 was supposed to be revised

2019-07 (Cologne)

Complete

LWG3206

year_month_day conversion to sys_days uses not-existing member function

2019-07 (Cologne)

Complete

LWG3208

Boolean‘s expression requirements are ordered inconsistently

2019-07 (Cologne)

Nothing To Do

LWG3209

Expression in year::ok() returns clause is ill-formed

2019-07 (Cologne)

Complete

LWG3231

year_month_day_last::day specification does not cover !ok() values

2019-11 (Belfast)

Nothing To Do

LWG3225

zoned_time converting constructor shall not be noexcept

2019-11 (Belfast)

Complete

19.0

LWG3190

std::allocator::allocate sometimes returns too little storage

2019-11 (Belfast)

Complete

14.0

LWG3218

Modifier for %d parse flag does not match POSIX and format specification

2019-11 (Belfast)

LWG3224

zoned_time constructor from TimeZonePtr does not specify initialization of tp_

2019-11 (Belfast)

Complete

19.0

LWG3230

Format specifier %y/%Y is missing locale alternative versions

2019-11 (Belfast)

Complete

16.0

LWG3232

Inconsistency in zoned_time deduction guides

2019-11 (Belfast)

Complete

19.0

LWG3222

P0574R1 introduced preconditions on non-existent parameters

2019-11 (Belfast)

LWG3221

Result of year_month arithmetic with months is ambiguous

2019-11 (Belfast)

Complete

8.0

LWG3235

parse manipulator without abbreviation is not callable

2019-11 (Belfast)

LWG3246

LWG3246: What are the constraints on the template parameter of basic_format_arg?

2019-11 (Belfast)

Nothing To Do

LWG3253

basic_syncbuf::basic_syncbuf() should not be explicit

2019-11 (Belfast)

Complete

20.0

LWG3245

Unnecessary restriction on '%p' parse specifier

2019-11 (Belfast)

LWG3244

Constraints for Source in §[fs.path.req] insufficiently constrainty

2019-11 (Belfast)

LWG3241

chrono-spec grammar ambiguity in §[time.format]

2019-11 (Belfast)

Complete

16.0

LWG3257

Missing feature testing macro update from P0858

2019-11 (Belfast)

Complete

12.0

LWG3256

Feature testing macro for constexpr algorithms

2019-11 (Belfast)

Complete

13.0

LWG3273

Specify weekday_indexed to range of [0, 7]

2019-11 (Belfast)

Complete

16.0

LWG3070

path::lexically_relative causes surprising results if a filename can also be a root-name

2019-11 (Belfast)

LWG3266

to_chars(bool) should be deleted

2019-11 (Belfast)

Complete

14.0

LWG3272

%I%p should parse/format duration since midnight

2019-11 (Belfast)

LWG3259

The definition of constexpr iterators should be adjusted

2019-11 (Belfast)

Nothing To Do

LWG3103

Errors in taking subview of span should be ill-formed where possible

2019-11 (Belfast)

Complete

11.0

LWG3274

Missing feature test macro for <span>

2019-11 (Belfast)

Complete

11.0

LWG3276

Class split_view::outer_iterator::value_type should inherit from view_interface

2019-11 (Belfast)

Complete

15.0

LWG3277

Pre-increment on prvalues is not a requirement of weakly_incrementable

2019-11 (Belfast)

Nothing To Do

LWG3149

DefaultConstructible should require default initialization

2019-11 (Belfast)

Complete

13.0

LWG1203

More useful rvalue stream insertion

2020-02 (Prague)

Complete

12.0

LWG2859

Definition of reachable in [ptr.launder] misses pointer arithmetic from pointer-interconvertible object

2020-02 (Prague)

LWG3018

shared_ptr of function type

2020-02 (Prague)

Nothing To Do

LWG3050

Conversion specification problem in chrono::duration constructor

2020-02 (Prague)

Complete

19.0

LWG3141

CopyConstructible doesn’t preserve source values

2020-02 (Prague)

Nothing To Do

LWG3150

UniformRandomBitGenerator should validate min and max

2020-02 (Prague)

Complete

13.0

LWG3175

The CommonReference requirement of concept SwappableWith is not satisfied in the example

2020-02 (Prague)

Complete

13.0

LWG3194

ConvertibleTo prose does not match code

2020-02 (Prague)

Complete

13.0

LWG3200

midpoint should not constrain T is complete

2020-02 (Prague)

Nothing To Do

LWG3201

lerp should be marked as noexcept

2020-02 (Prague)

Complete

LWG3226

zoned_time constructor from string_view should accept zoned_time<Duration2, TimeZonePtr2>

2020-02 (Prague)

Complete

19.0

LWG3233

Broken requirements for shared_ptr converting constructors

2020-02 (Prague)

Complete

19.0

LWG3237

LWG 3038 and 3190 have inconsistent PRs

2020-02 (Prague)

Complete

16.0

LWG3238

Insufficiently-defined behavior of std::function deduction guides

2020-02 (Prague)

Nothing To Do

LWG3242

std::format: missing rules for arg-id in width and precision

2020-02 (Prague)

Complete

14.0

LWG3243

std::format and negative zeroes

2020-02 (Prague)

Complete

14.0

LWG3247

ranges::iter_move should perform ADL-only lookup of iter_move

2020-02 (Prague)

Complete

15.0

LWG3248

std::format #b, #B, #o, #x, and #X presentation types misformat negative numbers

2020-02 (Prague)

Complete

14.0

LWG3250

std::format: # (alternate form) for NaN and inf

2020-02 (Prague)

Complete

14.0

LWG3251

Are std::format alignment specifiers applied to string arguments?

2020-02 (Prague)

Complete

14.0

LWG3252

Parse locale’s aware modifiers for commands are not consistent with POSIX spec

2020-02 (Prague)

LWG3254

Strike stop_token‘s operator!=

2020-02 (Prague)

Complete

17.0

LWG3255

span‘s array constructor is too strict

2020-02 (Prague)

Complete

LWG3260

year_month* arithmetic rejects durations convertible to years

2020-02 (Prague)

LWG3262

Formatting of negative durations is not specified

2020-02 (Prague)

Complete

16.0

LWG3264

sized_range and ranges::size redundantly use disable_sized_range

2020-02 (Prague)

Complete

15.0

LWG3269

Parse manipulators do not specify the result of the extraction from stream

2020-02 (Prague)

LWG3270

Parsing and formatting %j with durations

2020-02 (Prague)

Partial

LWG3280

View converting constructors can cause constraint recursion and are unneeded

2020-02 (Prague)

Complete

15.0

LWG3281

Conversion from *pair-like* types to subrange is a silent semantic promotion

2020-02 (Prague)

Complete

13.0

LWG3282

subrange converting constructor should disallow derived to base conversions

2020-02 (Prague)

Complete

15.0

LWG3284

random_access_iterator semantic constraints accidentally promote difference type using unary negate

2020-02 (Prague)

Nothing To Do

LWG3285

The type of a customization point object shall satisfy semiregular

2020-02 (Prague)

Nothing To Do

LWG3286

ranges::size is not required to be valid after a call to ranges::begin on an input range

2020-02 (Prague)

Complete

15.0

LWG3291

iota_view::iterator has the wrong iterator_category

2020-02 (Prague)

Complete

15.0

LWG3292

iota_view is under-constrained

2020-02 (Prague)

Complete

15.0

LWG3294

zoned_time deduction guides misinterprets string/char*

2020-02 (Prague)

Complete

19.0

LWG3296

Inconsistent default argument for basic_regex<>::assign

2020-02 (Prague)

Complete

LWG3299

Pointers don’t need customized iterator behavior

2020-02 (Prague)

Complete

15.0

LWG3300

Non-array ssize overload is underconstrained

2020-02 (Prague)

Nothing To Do

LWG3301

transform_view::iterator has incorrect iterator_category

2020-02 (Prague)

Complete

15.0

LWG3302

Range adaptor objects keys and values are unspecified

2020-02 (Prague)

Complete

16.0

LWG3303

Bad “constexpr“ marker for destroy/destroy_n

2020-02 (Prague)

LWG3304

Allocate functions of std::polymorphic_allocator should require [[nodiscard]]

2020-02 (Prague)

Complete

16.0

LWG3307

std::allocator<void>().allocate(n)

2020-02 (Prague)

Complete

20.0

LWG3310

Replace SIZE_MAX with numeric_limits<size_t>::max()

2020-02 (Prague)

Complete

16.0

LWG3313

join_view::iterator::operator-- is incorrectly constrained

2020-02 (Prague)

Complete

14.0

LWG3314

Is stream insertion behavior locale dependent when Period::type is micro?

2020-02 (Prague)

Complete

16.0

LWG3315

LWG3315: Correct Allocator Default Behavior

2020-02 (Prague)

Complete

LWG3316

Correctly define epoch for utc_clock / utc_timepoint

2020-02 (Prague)

LWG3317

Incorrect operator<< for floating-point durations

2020-02 (Prague)

Complete

16.0

LWG3318

Clarify whether clocks can represent time before their epoch

2020-02 (Prague)

LWG3319

Properly reference specification of IANA time zone database

2020-02 (Prague)

Nothing To Do

LWG3320

span::cbegin/cend methods produce different results than std::[ranges::]cbegin/cend

2020-02 (Prague)

Complete

LWG3321

uninitialized_construct_using_allocator should use construct_at

2020-02 (Prague)

Complete

16.0

LWG3323

*has-tuple-element* helper concept needs convertible_to

2020-02 (Prague)

Complete

16.0

LWG3324

Special-case std::strong/weak/partial_order for pointers

2020-02 (Prague)

Complete

14.0

LWG3325

Constrain return type of transformation function for transform_view

2020-02 (Prague)

Complete

15.0

LWG3326

enable_view has false positives

2020-02 (Prague)

Complete

15.0

LWG3327

Format alignment specifiers vs. text direction

2020-02 (Prague)

Nothing To Do

LWG3328

Clarify that std::string is not good for UTF-8

2020-02 (Prague)

Nothing To Do

LWG3329

totally_ordered_with both directly and indirectly requires common_reference_with

2020-02 (Prague)

Complete

13.0

LWG3330

Include <compare> from most library headers

2020-02 (Prague)

Complete

13.0

LWG3331

Define totally_ordered/_with in terms of partially-ordered-with

2020-02 (Prague)

Complete

13.0

LWG3332

Issue in §[time.format]

2020-02 (Prague)

Complete

16.0

LWG3334

basic_osyncstream move assignment and destruction calls basic_syncbuf::emit() twice

2020-02 (Prague)

Complete

18.0

LWG3335

Resolve C++20 NB comments US 273 and GB 274

2020-02 (Prague)

Complete

15.0

LWG3338

Rename default_constructible to default_initializable

2020-02 (Prague)

Complete

13.0

LWG3340

Formatting functions should throw on argument/format string mismatch in §[format.functions]

2020-02 (Prague)

Complete

14.0

LWG3346

pair and tuple copy and move constructor have backwards specification

2020-02 (Prague)

Nothing To Do

LWG3347

std::pair<T, U> now requires T and U to be less-than-comparable

2020-02 (Prague)

Complete

17.0

LWG3348

__cpp_lib_unwrap_ref in wrong header

2020-02 (Prague)

Complete

12.0

LWG3349

Missing __cpp_lib_constexpr_complex for P0415R1

2020-02 (Prague)

Complete

16.0

LWG3350

Simplify return type of lexicographical_compare_three_way

2020-02 (Prague)

Complete

17.0

LWG3351

ranges::enable_safe_range should not be constrained

2020-02 (Prague)

Complete

15.0

LWG3352

strong_equality isn’t a thing

2020-02 (Prague)

Complete

19.0

LWG3354

has_strong_structural_equality has a meaningless definition

2020-02 (Prague)

Nothing To Do

LWG3355

The memory algorithms should support move-only input iterators introduced by P1207

2020-02 (Prague)

Complete

15.0

LWG3356

__cpp_lib_nothrow_convertible should be __cpp_lib_is_nothrow_convertible

2020-02 (Prague)

Complete

12.0

LWG3358

§[span.cons] is mistaken that to_address can throw

2020-02 (Prague)

Complete

17.0

LWG3359

<chrono> leap second support should allow for negative leap seconds

2020-02 (Prague)

In Progress

LWG3360

three_way_comparable_with is inconsistent with similar concepts

2020-02 (Prague)

Nothing To Do

LWG3362

Strike stop_source‘s operator!=

2020-02 (Prague)

Complete

17.0

LWG3363

drop_while_view should opt-out of sized_range

2020-02 (Prague)

Nothing To Do

LWG3364

Initialize data members of ranges and their iterators

2020-02 (Prague)

Complete

16.0

LWG3367

Integer-class conversions should not throw

2020-02 (Prague)

Nothing To Do

LWG3369

span‘s deduction-guide for built-in arrays doesn’t work

2020-02 (Prague)

Complete

14.0

LWG3371

visit_format_arg and make_format_args are not hidden friends

2020-02 (Prague)

Complete

14.0

LWG3372

vformat_to should not try to deduce Out twice

2020-02 (Prague)

Complete

14.0

LWG3373

{to,from}_chars_result and format_to_n_result need the “we really mean what we say” wording

2020-02 (Prague)

Complete

14.0

LWG3374

P0653 + P1006 should have made the other std::to_address overload constexpr

2020-02 (Prague)

Complete

12.0

LWG3375

decay in viewable_range should be remove_cvref

2020-02 (Prague)

Complete

15.0

LWG3377

elements_view::iterator befriends a specialization of itself

2020-02 (Prague)

Nothing To Do

LWG3379

safe“ in several library names is misleading

2020-02 (Prague)

Complete

15.0

LWG3380

common_type and comparison categories

2020-02 (Prague)

Complete

15.0

LWG3381

begin and data must agree for contiguous_range

2020-02 (Prague)

Nothing To Do

LWG3382

NTTP for pair and array

2020-02 (Prague)

Nothing To Do

LWG3383

§[time.zone.leap.nonmembers] sys_seconds should be replaced with seconds

2020-02 (Prague)

Complete

19.0

LWG3384

transform_view::*sentinel* has an incorrect operator-

2020-02 (Prague)

Complete

15.0

LWG3385

common_iterator is not sufficiently constrained for non-copyable iterators

2020-02 (Prague)

Complete

15.0

LWG3387

§[range.reverse.view] reverse_view<V> unintentionally requires range<const V>

2020-02 (Prague)

Complete

15.0

LWG3388

view iterator types have ill-formed <=> operators

2020-02 (Prague)

Complete

16.0

LWG3389

A move-only iterator still does not have a counted_iterator

2020-02 (Prague)

Complete

15.0

LWG3390

make_move_iterator() cannot be used to construct a move_iterator for a move-only iterator

2020-02 (Prague)

Complete

14.0

LWG3393

Missing/incorrect feature test macro for coroutines

2020-02 (Prague)

Complete

14.0

LWG3395

LWG3395: Definition for three-way comparison needs to be updated (US 152)

2020-02 (Prague)

Nothing To Do

LWG3396

Clarify point of reference for source_location::current() (DE 169)

2020-02 (Prague)

Nothing To Do

16.0

LWG3397

ranges::basic_istream_view::iterator should not provide iterator_category

2020-02 (Prague)

Complete

16.0

LWG3398

tuple_element_t is also wrong for const subrange

2020-02 (Prague)

Complete

14.0

LWG3446

indirectly_readable_traits ambiguity for types with both value_type and element_type

2020-11 (Virtual)

Complete

13.0