microsoft/STL msvc-build-tools-14.50
microsoft/STL
Captured source
source ↗MSVC Build Tools 14.50
Repository: microsoft/STL
Tag: msvc-build-tools-14.50
Published: 2025-11-14T23:38:25Z
Prerelease: no
Release notes: This shipped in VS 2026 18.0.
- The STL no longer supports targeting Windows 7 / Server 2008 R2, Windows 8 / Server 2012, and Windows 8.1 / Server 2012 R2:
- Improved the performance of
system_clock::now()andatomic::wait()by directly calling APIs that were added in Windows 8. #5432 #5496 - Improved the performance of STL Hardening by using the MSVC `__fastfail` intrinsic that was added in Windows 8, and the Clang `__builtin_verbose_trap` intrinsic. #5433 #5458
- Simplified the `` implementation by unconditionally calling APIs that were added in Windows 8. #5434
- Windows 10 / Server 2016 are our minimum supported operating systems. #5510
- The STL no longer supports targeting 32-bit ARM. #5594
- Merged C++26 features:
- P0472R3 #5382 Put
monostateIn `` - P3223R2 #5604 Making
istream::ignore()Less Surprising - Merged *partial* C++26 features:
- P3697R1 #5650 Minor Additions To Standard Library Hardening
- Merged LWG issue resolutions:
- LWG-2503 #5535
multilineoption should be added tosyntax_option_type
+ For us, this is a regex behavioral change, so we added an escape hatch. By default, we define _REGEX_LEGACY_MULTILINE_MODE to 0, which requests Standard behavior:
- For ECMAScript, matching is non-multiline by default, but
regex_constants::multilinecan be requested. - For POSIX grammars, matching is non-multiline, and
regex_constants::multilineis ignored; see N5008 \[tab:re.synopt\].
+ Defining _REGEX_LEGACY_MULTILINE_MODE to 1 requests legacy behavior:
- For all grammars, matching is multiline, and
regex_constants::multilineis redundant. - LWG-4186 #5444
regex_traits::transform_primarymistakenly detectstypeidof a function - LWG-4222 #5602
expectedconstructor from a single value missing a constraint - LWG-4242 #5603
ranges::distancedoes not work with volatile iterators - Merged *proposed* resolutions for LWG issues (not yet accepted for the C++ Working Draft, but we've chosen to implement this speculatively):
- LWG-4270 #5572 Diagnose misuse of
std::projected::operator* - LWG-4273 #5578 Standard execution policy types should be conventional tag class types
- LWG-4303 #5603
std::decay_tin the specification ofranges::distanceis problematic - Fixed bugs:
- Fixed
regex's behavior:
+ For the basic and grep grammars to properly handle ^ caret characters. #5165 + For the basic and grep grammars to properly handle $ dollar characters. #5362 + For the basic and grep grammars to make backreferences to unmatched capture groups fail to match anything, instead of matching the empty string "". #5376 + For the basic and grep grammars to properly handle backslashes inside square-bracket character classes. #5523 + For POSIX grammars to allow a ] right square bracket at the beginning of a character range. #5364 + For POSIX grammars to avoid resetting matched capture groups. #5377 + For the ECMAScript grammar's (?!pattern) negative lookahead assertions to make capture groups within them always match nothing after the assertions succeed. #5366 + For the ECMAScript grammar's \b word boundary assertion to not match the empty string "" (and inversely for the \B negative word boundary assertion). #5375 + For the ECMAScript grammar's \c escapes to require the following ControlLetter to be an ASCII alphabetic character. #5524
- That is, only
\cathrough\czand\cAthrough\cZare allowed.
+ For the ECMAScript grammar to reset all capture groups to "unmatched" at the start of each repetition of a loop. #5456 + For the ECMAScript grammar to reject bogus groups by throwing a regex_error with the code regex_constants::error_badrepeat, removing the non-Standard code regex_constants::error_syntax that was previously used. #5542
- That is, only non-capture groups
(?:meow)and positive/negative lookahead assertions(?=meow)/(?!meow)are allowed; other characters following(?are bogus. Notably, the C++ Standard doesn't support the lookbehind assertions(?to follow the locale's collation order when compiling with `/Zc:wchar_t-` (makingwchar_ta non-Standard typedef forunsigned short) and linking to the STL dynamically (with/MDor/MDd). #5361 - Fixed how
collate::do_transform()handles wrongly encoded input.…
Excerpt shown — open the source for the full document.