ReleaseMicrosoftMicrosoftpublished Aug 15, 2024seen 1d

microsoft/STL vs-2022-17.11

microsoft/STL

Open original ↗

Captured source

source ↗
published Aug 15, 2024seen 1dcaptured 9hhttp 200method plain

VS 2022 17.11

Repository: microsoft/STL

Tag: vs-2022-17.11

Published: 2024-08-15T11:47:14Z

Prerelease: no

Release notes:

  • Merged C++26 features:
  • P2875R4 #4532 Undeprecate polymorphic_allocator::destroy
  • P3142R0 #4611 Printing Blank Lines With println()
  • Merged *partial* C++23 features:
  • P2286R8 Formatting Ranges:

+ Implemented formatter for pair and tuple. #4438 #4631 #4681 + Implemented range_formatter. #4642

  • Merged LWG issue resolutions:
  • LWG-3767 #4542 codecvt incorrectly added to locale
  • LWG-3919 #4526 enumerate_view may invoke UB for sized common non-forward underlying ranges
  • LWG-3950 #4510 std::basic_string_view comparison operators are overspecified
  • LWG-3984 #4543 ranges::to's recursion branch may be ill-formed
  • LWG-4012 #4529 common_view::begin/end are missing the *simple-view* check
  • LWG-4013 #4530 lazy_split_view::*outer-iterator*::value_type should not provide default constructor
  • LWG-4016 #4539 *container-insertable* checks do not match what *container-inserter* does
  • LWG-4035 #4525 single_view should provide empty
  • LWG-4053 #4685 Unary call to std::views::repeat does not decay the argument
  • LWG-4054 #4540 Repeating a repeat_view should repeat the view
  • Fixed bugs:
  • Fixed condition_variable::wait_until() and condition_variable_any::wait_until() to consistently use the given time_point's clock type, instead of also depending on the system clock. This also fixed condition_variable::wait_for() to consistently use steady_clock. #4457
  • Fixed ` to always perform compile-time format string checking for wchar_t`, even when the narrow execution character set doesn't support it. #4459
  • Fixed compiler errors when constexpr basic_string interacted with the undocumented compiler option /d1initall. #4474
  • Fixed atomic_ref for 16-byte objects to correctly report is_lock_free() and is_always_lock_free on x64 (when the optional mode _STD_ATOMIC_ALWAYS_USE_CMPXCHG16B is defined to be 1) and ARM64 (always). #4478
  • Removed the vectorized implementation of ranges::find with unreachable_sentinel as it was fundamentally incompatible with ASan (Address Sanitizer). #4486

+ This was introduced by #2434 in VS 2022 17.3.

  • Fixed incorrect results from the vectorized implementation of ranges::find_last for certain combinations of value and element types. #4561

+ This fixed a regression that was introduced by #3925 in VS 2022 17.9.

  • Fixed the STL to avoid emitting the off-by-default warning C4365 (signed/unsigned mismatch) when the `/ZI` compiler option (debug info for Edit and Continue) is used. #4487

+ These warnings were most noticeable when building the Standard Library Modules, but they were also emitted by classic includes.

  • Fixed the STL to avoid emitting the off-by-default warning C5246 (brace elision). #4527
  • Fixed compiler errors involving incomplete types in:

+ pair and tuple machinery. #4488

  • Fixed make_from_tuple() to properly implement LWG-3528 with a constraint instead of a static_assert. #4528
  • Added integral overloads for `'s classification functions fpclassify(), isfinite(), isinf(), isnan(), isnormal(), and signbit()`. #4537
  • Fixed is_trivial to correctly handle unusual types. #4576
  • Avoided mentioning __vectorcall for ARM64EC, where it is not yet supported. #4600
  • Fixed std.ixx to include ` in the Global Module Fragment, fixing compiler errors with import std;` in certain scenarios. #4626
  • Fixed compiler errors when a user-defined formatter calls basic_format_parse_context::next_arg_id() with an empty format-spec. #4640
  • Fixed compiler errors when using ` in /permissive` mode. #4658

+ *Note:* While /permissive mode is discouraged, it's currently supported for most STL components.

  • Fixed compiler errors when inheriting expected's constructors in certain scenarios. #4664
  • Fixed pair's self-swap() behavior to follow the Standard by self-swapping its elements. #4674
  • Fixed atomic and atomic_ref to provide difference_type. #4689
  • Improved performance:
  • Helped the compiler…

Excerpt shown — open the source for the full document.