In C++20 mode, `__cpp_lib_optional` and `__cpp_lib_variant` should be `202106L` due to DR P2231R1. In C++26 mode, `__cpp_lib_variant` should be bumped to `202306L` due to P2637R3. - Clang 16/17 shouldn't get this bumping (as member `visit` requires explicit object parameters), but it's very tricky to make the bumping conditionally enabled. I _hope_ unconditionally bumping in C++26 will be OK for LLVM 20 when the support for Clang 17 is dropped. Related PRs: - https://reviews.llvm.org/D102119 - #83335 - #76447
9.1 KiB
9.1 KiB
| 1 | Paper # | Paper Name | Meeting | Status | First released version | Notes |
|---|---|---|---|---|---|---|
| 2 | `P2497R0 <https://wg21.link/P2497R0>`__ | Testing for success or failure of ``<charconv>`` functions | 2023-06 (Varna) | |Complete| | 18.0 | |
| 3 | `P2592R3 <https://wg21.link/P2592R3>`__ | Hashing support for ``std::chrono`` value classes | 2023-06 (Varna) | |||
| 4 | `P2587R3 <https://wg21.link/P2587R3>`__ | ``to_string`` or not ``to_string`` | 2023-06 (Varna) | |||
| 5 | `P2562R1 <https://wg21.link/P2562R1>`__ | ``constexpr`` Stable Sorting | 2023-06 (Varna) | |||
| 6 | `P2545R4 <https://wg21.link/P2545R4>`__ | Read-Copy Update (RCU) | 2023-06 (Varna) | |||
| 7 | `P2530R3 <https://wg21.link/P2530R3>`__ | Hazard Pointers for C++26 | 2023-06 (Varna) | |||
| 8 | `P2538R1 <https://wg21.link/P2538R1>`__ | ADL-proof ``std::projected`` | 2023-06 (Varna) | |Complete| | 18.0 | |
| 9 | `P2495R3 <https://wg21.link/P2495R3>`__ | Interfacing ``stringstream``\s with ``string_view`` | 2023-06 (Varna) | |Complete| | 19.0 | |
| 10 | `P2510R3 <https://wg21.link/P2510R3>`__ | Formatting pointers | 2023-06 (Varna) | |Complete| | 17.0 | Implemented as a DR against C++20. (MSVC STL and libstdc++ will do the same.) |
| 11 | `P2198R7 <https://wg21.link/P2198R7>`__ | Freestanding Feature-Test Macros and Implementation-Defined Extensions | 2023-06 (Varna) | |||
| 12 | `P2338R4 <https://wg21.link/P2338R4>`__ | Freestanding Library: Character primitives and the C library | 2023-06 (Varna) | |||
| 13 | `P2013R5 <https://wg21.link/P2013R5>`__ | Freestanding Language: Optional ``::operator new`` | 2023-06 (Varna) | |||
| 14 | `P2363R5 <https://wg21.link/P2363R5>`__ | Extending associative containers with the remaining heterogeneous overloads | 2023-06 (Varna) | |||
| 15 | `P1901R2 <https://wg21.link/P1901R2>`__ | Enabling the Use of ``weak_ptr`` as Keys in Unordered Associative Containers | 2023-06 (Varna) | |||
| 16 | `P1885R12 <https://wg21.link/P1885R12>`__ | Naming Text Encodings to Demystify Them | 2023-06 (Varna) | |||
| 17 | `P0792R14 <https://wg21.link/P0792R14>`__ | ``function_ref``: a type-erased callable reference | 2023-06 (Varna) | |||
| 18 | `P2874R2 <https://wg21.link/P2874R2>`__ | Mandating Annex D Require No More | 2023-06 (Varna) | |||
| 19 | `P2757R3 <https://wg21.link/P2757R3>`__ | Type-checking format args | 2023-06 (Varna) | |||
| 20 | `P2637R3 <https://wg21.link/P2637R3>`__ | Member ``visit`` | 2023-06 (Varna) | |Complete| | 19.0 | Change of ``__cpp_lib_variant`` is completed in LLVM 20. Change of ``__cpp_lib_format`` is blocked by `P2419R2 <https://wg21.link/P2419R2>`__. |
| 21 | `P2641R4 <https://wg21.link/P2641R4>`__ | Checking if a ``union`` alternative is active | 2023-06 (Varna) | |||
| 22 | `P1759R6 <https://wg21.link/P1759R6>`__ | Native handles and file streams | 2023-06 (Varna) | |Complete| | 18.0 | |
| 23 | `P2697R1 <https://wg21.link/P2697R1>`__ | Interfacing ``bitset`` with ``string_view`` | 2023-06 (Varna) | |Complete| | 18.0 | |
| 24 | `P1383R2 <https://wg21.link/P1383R2>`__ | More ``constexpr`` for ``<cmath>`` and ``<complex>`` | 2023-06 (Varna) | |||
| 25 | `P2734R0 <https://wg21.link/P2734R0>`__ | Adding the new SI prefixes | 2023-06 (Varna) | |Complete| | 17.0 | |
| 26 | `P2548R6 <https://wg21.link/P2548R6>`__ | ``copyable_function`` | 2023-06 (Varna) | |||
| 27 | `P2714R1 <https://wg21.link/P2714R1>`__ | Bind front and back to NTTP callables | 2023-06 (Varna) | |||
| 28 | `P2630R4 <https://wg21.link/P2630R4>`__ | ``submdspan`` | 2023-06 (Varna) | |||
| 29 | ||||||
| 30 | `P0543R3 <https://wg21.link/P0543R3>`__ | Saturation arithmetic | 2023-11 (Kona) | |Complete| | 18.0 | |
| 31 | `P2407R5 <https://wg21.link/P2407R5>`__ | Freestanding Library: Partial Classes | 2023-11 (Kona) | |||
| 32 | `P2546R5 <https://wg21.link/P2546R5>`__ | Debugging Support | 2023-11 (Kona) | |||
| 33 | `P2905R2 <https://wg21.link/P2905R2>`__ | Runtime format strings | 2023-11 (Kona) | |Complete| | 18.0 | |
| 34 | `P2918R2 <https://wg21.link/P2918R2>`__ | Runtime format strings II | 2023-11 (Kona) | |Complete| | 18.0 | |
| 35 | `P2909R4 <https://wg21.link/P2909R4>`__ | Fix formatting of code units as integers (Dude, where’s my ``char``?) | 2023-11 (Kona) | |Complete| | 18.0 | |
| 36 | `P0952R2 <https://wg21.link/P0952R2>`__ | A new specification for ``std::generate_canonical`` | 2023-11 (Kona) | |||
| 37 | `P2447R6 <https://wg21.link/P2447R6>`__ | ``std::span`` over an initializer list | 2023-11 (Kona) | |Complete| | 18.0 | |
| 38 | `P2821R5 <https://wg21.link/P2821R5>`__ | ``span.at()`` | 2023-11 (Kona) | |Complete| | 18.0 | |
| 39 | `P2868R3 <https://wg21.link/P2868R3>`__ | Remove Deprecated ``std::allocator`` Typedef From C++26 | 2023-11 (Kona) | |Complete| | 18.0 | |
| 40 | `P2870R3 <https://wg21.link/P2870R3>`__ | Remove ``basic_string::reserve()`` From C++26 | 2023-11 (Kona) | |Complete| | 18.0 | |
| 41 | `P2871R3 <https://wg21.link/P2871R3>`__ | Remove Deprecated Unicode Conversion Facets from C++26 | 2023-11 (Kona) | |Complete| | 18.0 | |
| 42 | `P2819R2 <https://wg21.link/P2819R2>`__ | Add tuple protocol to complex | 2023-11 (Kona) | |Complete| | 19.0 | |
| 43 | `P2937R0 <https://wg21.link/P2937R0>`__ | Freestanding: Remove ``strtok`` | 2023-11 (Kona) | |||
| 44 | `P2833R2 <https://wg21.link/P2833R2>`__ | Freestanding Library: inout expected span | 2023-11 (Kona) | |||
| 45 | `P2836R1 <https://wg21.link/P2836R1>`__ | ``std::basic_const_iterator`` should follow its underlying type's convertibility | 2023-11 (Kona) | |||
| 46 | `P2264R7 <https://wg21.link/P2264R7>`__ | Make ``assert()`` macro user friendly for C and C++ | 2023-11 (Kona) | |||
| 47 | `P1673R13 <https://wg21.link/P1673R13>`__ | A free function linear algebra interface based on the BLAS | 2023-11 (Kona) | |||
| 48 | ||||||
| 49 | `P2875R4 <https://wg21.link/P2875R4>`__ | Undeprecate ``polymorphic_allocator::destroy`` for C++26 | 2024-03 (Tokyo) | |Complete| | 15.0 | |
| 50 | `P2867R2 <https://wg21.link/P2867R2>`__ | Remove Deprecated ``strstreams`` From C++26 | 2024-03 (Tokyo) | |Complete| | 19.0 | |
| 51 | `P2869R4 <https://wg21.link/P2869R4>`__ | Remove Deprecated ``shared_ptr`` Atomic Access APIs from C++26 | 2024-03 (Tokyo) | |||
| 52 | `P2872R3 <https://wg21.link/P2872R3>`__ | Remove ``wstring_convert`` From C++26 | 2024-03 (Tokyo) | |Complete| | 19.0 | |
| 53 | `P3107R5 <https://wg21.link/P3107R5>`__ | Permit an efficient implementation of ``std::print`` | 2024-03 (Tokyo) | |||
| 54 | `P3142R0 <https://wg21.link/P3142R0>`__ | Printing Blank Lines with ``println`` | 2024-03 (Tokyo) | |Complete| | 19.0 | Implemented as a DR against C++23. (MSVC STL and libstdc++ will do the same.) |
| 55 | `P2845R8 <https://wg21.link/P2845R8>`__ | Formatting of ``std::filesystem::path`` | 2024-03 (Tokyo) | |||
| 56 | `P0493R5 <https://wg21.link/P0493R5>`__ | Atomic minimum/maximum | 2024-03 (Tokyo) | |||
| 57 | `P2542R8 <https://wg21.link/P2542R8>`__ | ``views::concat`` | 2024-03 (Tokyo) | |||
| 58 | `P2591R5 <https://wg21.link/P2591R5>`__ | Concatenation of strings and string views | 2024-03 (Tokyo) | |Complete| | 19.0 | |
| 59 | `P2248R8 <https://wg21.link/P2248R8>`__ | Enabling list-initialization for algorithms | 2024-03 (Tokyo) | |||
| 60 | `P2810R4 <https://wg21.link/P2810R4>`__ | ``is_debugger_present`` ``is_replaceable`` | 2024-03 (Tokyo) | |||
| 61 | `P1068R11 <https://wg21.link/P1068R11>`__ | Vector API for random number generation | 2024-03 (Tokyo) | |||
| 62 | `P2944R3 <https://wg21.link/P2944R3>`__ | Comparisons for ``reference_wrapper`` | 2024-03 (Tokyo) | |Partial| | 19.0 | Implemented comparisons for ``reference_wrapper`` only |
| 63 | `P2642R6 <https://wg21.link/P2642R6>`__ | Padded ``mdspan`` layouts | 2024-03 (Tokyo) | |||
| 64 | `P3029R1 <https://wg21.link/P3029R1>`__ | Better ``mdspan``'s CTAD | 2024-03 (Tokyo) | |Complete| | 19.0 | |
| 65 | ||||||
| 66 | `P2747R2 <https://wg21.link/P2747R2>`__ | ``constexpr`` placement new | 2024-06 (St. Louis) | |Complete| | 20.0 | |
| 67 | `P2997R1 <https://wg21.link/P2997R1>`__ | Removing the common reference requirement from the indirectly invocable concepts | 2024-06 (St. Louis) | |Complete| | 19.0 | Implemented as a DR against C++20. (MSVC STL and libstdc++ will do the same.) |
| 68 | `P2389R2 <https://wg21.link/P2389R2>`__ | ``dextents`` Index Type Parameter | 2024-06 (St. Louis) | |Complete| | 19.0 | |
| 69 | `P3168R2 <https://wg21.link/P3168R2>`__ | Give ``std::optional`` Range Support | 2024-06 (St. Louis) | |||
| 70 | `P3217R0 <https://wg21.link/P3217R0>`__ | Adjoints to 'Enabling list-initialization for algorithms': find_last | 2024-06 (St. Louis) | |||
| 71 | `P2985R0 <https://wg21.link/P2985R0>`__ | A type trait for detecting virtual base classes | 2024-06 (St. Louis) | |Complete| | 20.0 | |
| 72 | `P0843R14 <https://wg21.link/P0843R14>`__ | ``inplace_vector`` | 2024-06 (St. Louis) | |||
| 73 | `P3235R3 <https://wg21.link/P3235R3>`__ | ``std::print`` more types faster with less memory | 2024-06 (St. Louis) | |||
| 74 | `P2968R2 <https://wg21.link/P2968R2>`__ | Make ``std::ignore`` a first-class object | 2024-06 (St. Louis) | |Complete| | 19.0 | |
| 75 | `P2075R6 <https://wg21.link/P2075R6>`__ | Philox as an extension of the C++ RNG engines | 2024-06 (St. Louis) | |||
| 76 | `P2422R1 <https://wg21.link/P2422R1>`__ | Remove ``nodiscard`` annotations from the standard library specification | 2024-06 (St. Louis) | |Complete| | 19.0 | ``nodiscard`` attributes were kept as a conforming extension |
| 77 | `P2300R10 <https://wg21.link/P2300R10>`__ | ``std::execution`` | 2024-06 (St. Louis) | |||
| 78 |