New
Unclaimed project
Are you a maintainer of STL? Claim this project to take control of your public changelog and roadmap.
_MSVC_STL_HARDENING to 1 project-wide.__fastfail() for hardened precondition violations._MSVC_STL_DESTRUCTOR_TOMBSTONES to 1 project-wide.optional and expected)co_yielding elements of an lvalue generator is unnecessarily inefficientallocator_arg_t overloads of generator::promise_type::operator new should not be constrainedstd::uninitialized_move/_n and guaranteed copy elisionchrono::parse uses from_stream as a customization pointstd::subtract_with_carry_engine codepossibly-const-range should prefer returning const R&std::fixed ignores std::uppercasehas-arrow should require operator->() to be const-qualifiedgenerator::promise_type::yield_value(ranges::elements_of<R, Alloc>)'s nested generator may be ill-formedzoned_time with resolution coarser than secondsstd::erase for list should specify return type as boolunique_ptr<T&, D>std::atomic<T>'s default constructor should be constrainedunique_lock self-move-assignment is brokensystem_category().message() to prefer US English, followed by the system locale, with an ultimate fallback of FormatMessageA's behavior for dwLanguageId == 0. #5104
generic_category().message() (which always returns US English in our implementation) and has the best chance of returning something intelligible instead of "unknown error" or "???".regex's behavior:
R"([\d-e])". #5158\D for non-digits, \S for non-whitespace, \W for non-words) when matching against Unicode characters:
basic grammar to parse a single digit for backreferences. #5167. (dot). #5192filesystem::equivalent() to return correct results when shared folders are involved. #5130chrono::weekday's constructor to avoid integer overflow for extreme inputs. #5156push_range() for stack, queue, and priority_queue to forward the range to c.append_range() when possible, exactly as depicted in the Standard. #5168ranges::begin and ranges::end exactly as depicted in the Standard:
range_formatter involving highly unusual contiguous ranges. #5187views::counted involving highly unusual types. #5223this_thread::sleep_for() with extremely small units (e.g. picoseconds). #5237basic_string::reserve()'s ASan annotations to detect writes to its unused capacity. #5252<format> handles field width for alternate form general floating-point. #5261basic_ispanstream from a modifiable basic_string. #5309
<format> in a CUDA project, by adding a compiler bug workaround. #5335basic_const_iterator. #5325basic_string::find() for a character. #5101basic_string::find_first_of() and basic_string::find_last_of(). #5029regex_traits::translate() is now an identity function, as required by the Standard, instead of an expensive locale operation. #5209static operator() in earlier Standard modes, slightly improving codegen. #5284 #5312minstd_rand and minstd_rand0 random number engines by avoiding constant divisions. #5256move_only_function's constructors to do less work when setting the object to be empty. #5328std::expected, std::unexpected, and all STL exception types are now marked [[nodiscard]]. #5174
locale::empty() static member function. #5197is_trivial, which is being deprecated in C++26. #5202ctest. Now we always directly invoke stl-lit.py. #5169basic_string::reserve() and vector::reserve(). #5241libcxx tests in response to a new compiler warning C5321, which warns when the resolution to CWG-1656 affects a u8 string literal. #5283