ReleaseMicrosoftMicrosoftpublished Nov 14, 2024seen 1d

microsoft/STL vs-2022-17.12

microsoft/STL

Open original ↗

Captured source

source ↗
published Nov 14, 2024seen 1dcaptured 9hhttp 200method plain

VS 2022 17.12

Repository: microsoft/STL

Tag: vs-2022-17.12

Published: 2024-11-14T22:58:09Z

Prerelease: no

Release notes:

  • Merged C++26 features:
  • P0952R2 #4740 #4850 A New Specification For generate_canonical()
  • P2407R5 #4743 Freestanding Library: Partial Classes
  • P2833R2 #4743 Freestanding Library: inout expected span
  • P2968R2 #4777 Make std::ignore A First-Class Object
  • P2997R1 #4816 Removing The Common Reference Requirement From The Indirectly Invocable Concepts
  • Merged C++23 features:
  • P2286R8 Formatting Ranges, completed by:

+ Implemented *range-default-formatter*. #4716 + Implemented formatter for the container adaptors stack, queue, and priority_queue. #4825

  • Merged LWG issue resolutions:
  • LWG-3944 #4784 Formatters converting sequences of char to sequences of wchar_t
  • LWG-4061 #4758 Should std::basic_format_context be default-constructible/copyable/movable?
  • LWG-4074 #4814 *compatible-joinable-ranges* is underconstrained
  • LWG-4083 #4786 views::as_rvalue should reject non-input ranges
  • LWG-4096 #4785 views::iota(views::iota(0)) should be rejected
  • LWG-4098 #4815 views::adjacent should reject non-forward ranges
  • LWG-4106 #4757 basic_format_args should not be default-constructible
  • Merged *proposed* resolutions for LWG issues (not yet accepted for the C++ Working Draft, but we've chosen to implement this speculatively):
  • LWG-4139 #4902 \[time.zone.leap\] recursive constraint in ``
  • Fixed bugs:
  • Fixed static analysis warning C26818 "Switch statement does not cover all cases. Consider adding a 'default' label (es.79)." #4715

+ *Note:* The STL has always attempted to be /W4 /analyze clean, but does not yet attempt to be clean with respect to all additional static analysis rulesets.

  • Fixed atomic_ref::is_lock_free() on x64 to return true for 1, 2, 4, 8, and 16 bytes only. #4729
  • Fixed uniform_real_distribution{min, max} to stay within the inclusive-exclusive range [min, max) and never generate the max value exactly. #4740
  • Fixed filesystem::weakly_canonical() to avoid failing on Windows 11 24H2 in certain scenarios. #4844
  • Fixed condition_variable_any::wait_for() to consistently use steady_clock. #4755
  • Removed a broken and useless visualizer for ranges::view_interface. #4835
  • Fixed the visualizer for move_iterator to use the updated name of its internal data member. #4836

+ This fixed a regression that was introduced by #1080 in VS 2019 16.8.

  • Fixed expected to conditionally delete its copy constructor and copy assignment operator as depicted in the Standard, which affects overload resolution in unusual scenarios. #4837
  • Fixed time_put/put_time() to avoid crashing for:

+ Unknown conversion specifiers. (Now they're copied unchanged.) #4840 + Out-of-range tm fields. (Now they're replaced with a ? character.) #4883

  • Fixed compiler errors in ranges::inplace_merge and ranges::minmax in unusual scenarios. #4841
  • Fixed truncation warnings when:

+ Using conjunction and disjunction with non-bool_constant arguments. #4846 + Calling algorithms with contiguous iterators whose difference types are narrower than ptrdiff_t. #4898

  • Improved array::size() and `` static analysis annotations, fixing warnings in some scenarios. #4856
  • Fixed lexicographical_compare_three_way() to enforce the Standard's mandate that the comparison returns a comparison category type. #4878
  • Fixed compiler errors in the parallel scan algorithms inclusive_scan(), exclusive_scan(), transform_inclusive_scan(), and transform_exclusive_scan() when the intermediate and output types are different. #4701
  • Fixed the vectorized implementation of floating-point ranges::min, ranges::max, and ranges::minmax to return correct results for negative zeros. #4734
  • Fixed Clang compiler errors for certain constexpr variant scenarios by adding a compiler bug workaround. #4903
  • Fixed compiler errors when using ` machinery (e.g. generate_canonical(), uniform_real_distribution`) via Standard Library Modules or Standard Library Header Units by adding compiler bug workarounds. #4906
  • Fixed compiler errors when using `` machinery in user-defined modules by adding compiler…

Excerpt shown — open the source for the full document.