microsoft/STL vs-2022-17.12
microsoft/STL
Captured source
source ↗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:
inoutexpectedspan - P2968R2 #4777 Make
std::ignoreA 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
charto sequences ofwchar_t - LWG-4061 #4758 Should
std::basic_format_contextbe default-constructible/copyable/movable? - LWG-4074 #4814 *
compatible-joinable-ranges* is underconstrained - LWG-4083 #4786
views::as_rvalueshould reject non-input ranges - LWG-4096 #4785
views::iota(views::iota(0))should be rejected - LWG-4098 #4815
views::adjacentshould reject non-forward ranges - LWG-4106 #4757
basic_format_argsshould 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 returntruefor 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 themaxvalue 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 usesteady_clock. #4755 - Removed a broken and useless visualizer for
ranges::view_interface. #4835 - Fixed the visualizer for
move_iteratorto 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
expectedto 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_mergeandranges::minmaxin 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(), andtransform_exclusive_scan()when the intermediate and output types are different. #4701 - Fixed the vectorized implementation of floating-point
ranges::min,ranges::max, andranges::minmaxto return correct results for negative zeros. #4734 - Fixed Clang compiler errors for certain
constexprvariantscenarios 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.