Unless stated otherwise, all papers are implemented to work with the minimum C++ standard (currently C++20).
Paper | Name | Status | Comment |
---|---|---|---|
P2988R3 | std::optional<T&> |
WIP | |
P1684R5 | <mdarray> |
WIP | |
P1144R10 | std::is_trivially_relocatable |
||
P0843R10 | <inplace_vector> |
WIP |
Paper | Name | Status | Comment |
---|---|---|---|
P2937R0 | Freestanding: removing std::strtok |
Done | |
P2918R2 | Runtime format strings | ||
P2868R1 | Removing deprecated typedef std::allocator::is_always_equal |
||
P2821R5 | std::span::at() |
||
P2819R2 | Added tuple protocol to std::complex |
WIP | |
P2757R3 | Type checking format args | ||
P2734R0 | Adding the new 2022 SI prefixes on ratios: std::quecto , std::ronto , std::ronna , and std::quetta |
||
P2714R1 | std::bind_front , std::bind_back , and std::not_fn to NTTP callables |
||
P2697R1 | Interfacing bitset with string_view |
Done | |
P2641R4 | std::is_within_lifetime |
||
P2637R3 | Member visit | ||
P2630R4 | std::submdspan() |
WIP | |
P2592R3 | Hashing support for std::chrono value classes |
||
P2587R3 | Arithmetic overloads of std::to_string and std::to_wstring use std::format |
||
P2562R1 | constexpr stable sorting | Done | |
P2548R6 | std::copyable_function |
||
P2546R5 | <debugging> : Debugging Support |
WIP | |
P2545R4 | Read-Copy Update | ||
P2538R1 | ADL-proof std::projected |
||
P2530R3 | Hazard Pointers | ||
P2510R3 | Formatting pointers | ||
P2497R0 | Testing for success or failure of <charconv> functions |
Done | |
P2495R3 | Interfacing string streams with std::string_view |
||
P2447R4 | std::span over an initializer list |
||
P2363R5 | Extending associative containers with the remaining heterogeneous overloads | ||
P2264R7 | Make assert() macro user friendly for C and C++ |
||
P2013R5 | Freestanding Language: Optional ::operator new |
||
P1901R2 | Enabling the use of std::weak_ptr as keys in unordered associative containers | ||
P1885R12 | std::text_encoding : text encodings identification |
||
P1759R6 | Native handles in file streams | ||
P1673R13 | <linalg> : A free function linear algebra interface based on the BLAS |
WIP | |
P1383R2 | More constexpr for <cmath> and <complex> |
Done | |
P0952R1 | A new specification for std::generate_canonical |
||
P0792R14 | std::function_ref : type-erased callable reference |
WIP | |
P0543R3 | Saturation Arithmetic | WIP |
Paper | Name | Status | Comment |
---|---|---|---|
P2549R1 | std::unexpected<E> should have error() as member accessor |
Done | |
P2517R1 | Add a conditional noexcept specification to std::apply |
||
P2505R5 | Monadic operations for std::expected |
WIP | |
P2445R1 | std::forward_like() |
Done | |
P2417R2 | constexpr std::bitset |
Done | |
P2401R0 | Add a conditional noexcept specification to std::exchange |
Done | |
P2291R3 | constexpr for integral overloads of std::to_chars() and std::from_chars() . |
Done | |
P2251R1 | Require std::span & std::basic_string_view to be TriviallyCopyable |
Done | |
P2231R1 | DR20: constexpr for std::optional and std::variant |
||
P2166R1 | Prohibiting std::basic_string and std::basic_string_view construction from nullptr |
Done | |
P2162R2 | DR17: std::visit() for classes derived from std::variant |
||
P2136R3 | std::invoke_r() |
Done | |
P1989R2 | Range constructor for std::basic_string_view |
||
P1951R1 | Default template arguments for std::pair 's forwarding constructor |
Done | |
P1682R3 | std::to_underlying |
Done | |
P1679R3 | std::basic_string::contains() and std::basic_string_view::contains() |
Done | |
P1272R4 | std::byteswap() |
Done | |
P1222R4 | <flat_set> |
WIP | |
P1072R10 | std::basic_string::resize_and_overwrite() |
||
P1048R1 | std::is_scoped_enum |
Done | |
P0798R8 | Monadic operations for std::optional |
WIP | |
P0627R6 | std::unreachable() |
Done | |
P0533R9 | constexpr for <cmath> and <cstdlib> |
Done | |
P0429R9 | <flat_map> |
||
P0323R12 | <expected> |
WIP |
Paper | Name | Status | Comment |
---|---|---|---|
P1956R1 | On the names of low-level bit manipulation functions | Done | |
P0980R1 | constexpr std::string |
||
P0972R0 | <chrono> zero() , min() , and max() should be noexcept |
||
P0919R3 | Heterogeneous lookup for unordered containers | ||
P0898R3 | Concepts library | WIP | |
P0896R4 | The One Ranges Proposal | WIP | |
P0887R1 | std::type_identity |
Done | |
P0879R0 | Constexpr for std::swap() and swap related functions |
Done | |
P0858R0 | ConstexprIterator requirements | ||
P0811R3 | std::lerp() and std::midpoint() |
Done | |
P0784R7 | constexpr std::allocator and related utilities |
||
P0771R1 | std::function 's move constructor should be noexcept |
||
P0769R2 | Add std::shift_left/right to |
Done | |
P0768R1 | Library support for operator<=> <compare> |
||
P0758R1 | std::is_nothrow_convertible |
Done | |
P0754R2 | <version> |
Done | |
P0722R3 | std::destroying_delete |
||
P0653R2 | Utility to convert a pointer to a raw pointer | ||
P0646R1 | Improving the return value of erase-like algorithms | WIP | |
P0631R8 | Mathematical constants | Done | |
P0616R0 | Using std::move in numeric algorithms |
Done | |
P0608R3 | A sane std::variant converting constructor |
WIP | |
P0602R4 | DR17: std::variant and std::optional should propagate copy/move triviality |
WIP | |
P0600R1 | [[nodiscard]] in the standard library |
Done | |
P0591R4 | Utility functions to implement uses-allocator construction | ||
P0586R2 | Safe integral comparisons | Done | |
P0550R2 | std::remove_cvref |
Done | |
P0556R3 | Integral power-of-2 operations | Done | |
P0553R4 | Bit operations | Done | |
P0482R6 | Library support for char8_t |
||
P0476R2 | std::bit_cast() |
Done | |
P0475R1 | DR11: Guaranteed copy elision for piecewise construction | ||
P0466R5 | Layout-compatibility and pointer-interconvertibility traits | ||
P0463R1 | std::endian |
Done | |
P0458R2 | contains() member function of associative containers, e.g.std::map::contains() |
Done | |
P0457R2 | String prefix and suffix checking: string(_view) ::starts_with/ends_with | Done | |
P0415R1 | More constexpr for <complex> |
Done | |
P0357R3 | std::reference_wrapper for incomplete types |
||
P0356R5 | std::bind_front() |
WIP | |
P0355R7 | Calendar and timezone | WIP | |
P0339R6 | polymorphic_allocator<> as a vocabulary type |
||
P0325R4 | std::to_array() |
Done | |
P0318R1 | std::unwrap_ref_decay and std::unwrap_reference |
||
P0202R3 | constexpr for <algorithm> and <utility> |
Done | |
P0122R7 | std::span |
Done |
Paper | Name | Status | Comment |
---|---|---|---|
LWG3657 | DR17: std::hash<std::filesystem::path> |
||
LWG2911 | std::is_aggregate |
Done | |
P0414R2 | std::shared_ptr and std::weak_ptr with array support |
||
P0358R1 | Fixes for std::not_fn |
Done | |
P0298R3 | std::byte |
Done | |
P0295R0 | std::gcd() and std::lcm() |
Done | |
P0258R2 | std::has_unique_object_representations |
Done | |
P0220R1 | Adopt Library Fundamentals V1 TS Components for C++17 (R1) | WIP | |
P0220R1 | std::any |
||
P0220R1 | std::optional |
Done | |
P0220R1 | Polymorphic memory resources | ||
P0226R1 | Mathematical special functions | ||
P0218R1 | File system library | ||
P0209R2 | std::make_from_tuple() |
Done | |
P0185R1 | (nothrow-)swappable traits | Done | |
P0156R2 | std::scoped_lock |
||
P0154R1 | Hardware interference size | Done | |
P0088R3 | std::variant |
Done | |
P0084R2 | return type of emplace functions of some containers changed from void to reference |
Done | |
P0083R3 | Splicing Maps and Sets | ||
P0067R5 | Elementary string conversions | WIP | |
P0063R3 | Major portion of C11 standard library | WIP | |
P0025R1 | std::clamp() |
Done | |
P0024R2 | Parallel algorithms and execution policies | ||
P0013R1 | Logical operator type traits | Done | |
P0006R0 | Type traits variable templates | Done | |
P0005R4 | std::not_fn |
Done | |
N4508 | std::shared_mutex (untimed) |
||
N4389 | std::bool_constant |
Done | |
N4387 | Improving std::pair and std::tuple |
Done | |
N4280 | std::size() , std::empty() and std::data() |
Done | |
N4259 | std::uncaught_exceptions() |
||
N3921 | string_view : a non-owning reference to a string, revision 7 |
Done | |
N3911 | std::void_t |
Done |
Paper | Name | Status | Comment |
---|---|---|---|
N3671 | Dual-Range std::equal , std::is_permutation , std::mismatch |
Done | |
N3670 | std::get<T>() |
Done | |
N3669 | fixing constexpr member functions without const | Done | |
N3668 | std::exchange |
Done | |
N3659 | std::shared_timed_mutex | ||
N3658 | std::integer_sequence |
Done | |
N3657 | Heterogeneous associative lookup | Done | |
N3656 | std::make_unique |
||
N3654 | std::quoted |
||
N3644 | Null forward iterators | Done | |
N3642 | User-defined literals for <chrono> and <string> |
Done | |
N3545 | Improved std::integral_constant | Done | |
N3471 | constexpr for <initializer_list> , <utility> and <tuple> |
Done | |
N3470 | constexpr for <array> |
Done | |
N3469 | constexpr for <chrono> |
Done | |
N3462 | std::result_of and SFINAE |
Done | |
N3421 | Transparent operator functors | Done | |
N3302 | constexpr for <complex> |
Done |