Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
Stephan T. Lavavej edited this pageNov 27, 2025 ·2595 revisions

Table of Contents

C++23 features generally require the/std:c++23preview or/std:c++latest compiler options.

MSVC Build Tools 14.51

MSVC Build Tools 14.51 Preview

  • Removed non-Standard features:
    • TR1, including thestd::tr1 namespace, the oldarray::assign() member function, the old<random> engines, and the old<random> distributionsuniform_int anduniform_real.#5763
      • Deprecated since VS 2017 15.5 in December 2017.
    • <hash_map> and<hash_set>.#5764
      • Deprecated since VS 2015 in July 2015.
    • <experimental/filesystem>.#5765
      • Deprecated since VS 2019 16.3 in September 2019.
    • stdext::checked_array_iterator andstdext::unchecked_array_iterator.#5817
      • Deprecated since VS 2022 17.8 in November 2023 (for C++17 and later) and VS 2022 17.11 in August 2024 (unconditionally).
    • basic_istream::ipfx()/isfx() andbasic_ostream::opfx()/osfx().#5834
      • Deprecated since VS 2022 17.9 in February 2024 (for C++17 and later) and VS 2022 17.11 in August 2024 (unconditionally).
    • locale::empty().#5834
      • Deprecated since VS 2022 17.14 in May 2025.
  • Merged C++26 features:
    • P3349R1#5683 Converting Contiguous Iterators To Pointers
    • P3503R3#5630 Make Type-Erased Allocator Use Inpromise Andpackaged_task Consistent
  • Merged C++23 features:
    • P2255R2#5537 Type Traits To Detect References Binding To Temporaries
      • Initially supported for Clang only.
    • P2674R1#5445is_implicit_lifetime
      • Initially supported for Clang only.
  • Mergedpartial C++20 features:
    • P0466R5 Layout-Compatibility And Pointer-Interconvertibility Traits
      • This feature was fully implemented for MSVC by#1575 in VS 2019 16.10.
      • is_layout_compatible andis_pointer_interconvertible_base_of are now implemented for Clang, as the necessary compiler builtins recently became available.#5621
      • is_pointer_interconvertible_with_class() andis_corresponding_member() remain to be implemented for Clang, as the necessary compiler builtins are not yet available.
  • Merged LWG issue resolutions:
    • LWG-4243#5867as_bytes/as_writable_bytes is broken withspan<volatile T>
    • LWG-4253#5868basic_const_iterator should provideiterator_type
    • LWG-4257#5895 Stream insertion forchrono::local_time should be constrained
    • LWG-4266#5880layout_stride::mapping should treat empty mappings as exhaustive
    • LWG-4272#5900 Forrank == 0,layout_stride is atypically convertible
    • LWG-4274#5893 Thechrono::hh_mm_ss constructor is ill-formed for unsigned durations
    • LWG-4294#5869bitset(const CharT*) constructor needs to be constrained
    • LWG-4301#5885condition_variable{_any}::wait_{for, until} should take timeout by value
    • LWG-4312#5904 Const and value category mismatch forallocator_arg_t/allocator_arg in the description of uses-allocator construction
    • LWG-4366#5896 Heterogeneous comparison ofexpected may be ill-formed
    • LWG-4398#5883enable_nonlocking_formatter_optimization should be disabled for container adaptors
    • LWG-4399#5897enable_nonlocking_formatter_optimization forpair andtuple needsremove_cvref_t
  • Fixed bugs:
    • Fixed<regex> to perform matching non-recursively, avoiding stack overflows.#5703#5714#5734#5745#5762#5774#5790#5798#5818#5828#5835#5865#5889
    • Fixed<regex> bugs when parsing repetitions in extremely unusual cases.#5716
    • Fixed<regex> to avoid throwing aregex_error when a repeated pattern contains a lookahead assertion.#5793
      • This fixed a regression that was introduced by#5456 in the MSVC Build Tools 14.50.
    • Fixed<regex> to perform matching correctly when a loop has a bounded number of repetitions and a context-dependent empty alternative.#5820
    • Fixedbasic_string::resize_and_overwrite() to require the given operation to return an integer-like type.#5695
    • Added a compiler bug workaround for Clang x86, fixing 64-bitatomic behavior.#5708
    • Fixed thevector<bool> optimization forcopy() to avoid a forbidden negative shift in a specific scenario.#5726
    • Fixedindependent_bits_engine to avoid forbidden full shifts in specific scenarios.#5740
    • Fixed compiler errors invector when programs are taking advantage of our non-Standard legacy support for mismatched allocator types (i.e.vector<T, MyAlloc<U>>, which is forbidden by the Standard).#5729
      • This fixed a regression that was introduced by#4977 in VS 2022 17.13.
    • Fixed compiler warnings and errors inbasic_string for allocators with unusualsize_types.#5562#5775
    • Fixed a crash in the x64/x86 vectorized implementations ofwstring::find_first_of() andwstring::find_last_of() that was specific to searching for certain combinations of characters inside and outside the [0, 255] range.#5758
      • This fixed a regression that was introduced by#5029 in VS 2022 17.14.
      • This fix was backported to VS 2022 17.14.20 and the MSVC Build Tools 14.50.
    • Fixedstd::pow(dbl, 2) to returndbl * dbl as a special case, working around an accuracy issue in UCRT::pow() that affects ~0.04% ofdouble values.#5771
      • This fixed a regression that was introduced by#903 in VS 2019 16.8.
      • For example, the square of 0.96211481342217475276612503876094706356525421142578125 (hexfloat0x1.ec9a50154a6f9p-1) is mathematically 0.9256649142063861358000347706773514725967013405547974870554600612150564220570458928705193102359771728515625, which cannot be exactly represented as a 64-bitdouble. UCRT::pow(x, 2.0) returns 0.92566491420638608023097049226635135710239410400390625 (hexfloat0x1.d9f0c06b2463dp-1), butx * x returns 0.9256649142063861912532729547820053994655609130859375 (hexfloat0x1.d9f0c06b2463ep-1). Thedouble value ofx * x is slightly closer to the mathematically exact square, therefore it is correctly rounded and should be returned.
    • Fixedranges::to, allowing it to create unions.#5794
    • Fixedstable_sort(),stable_partition(), andinplace_merge() to handle over-aligned elements by default.#5807
    • Fixedranges::partition to meet the Standard's complexity requirements for bidirectional non-common ranges.#5887
  • Improved performance:
    • Improved<ranges> performance by adding an optimized implementation of divide-ceiling for 128-bit integers.#5637
    • Updated<complex> to use Fused Multiply-Add (FMA) intrinsics for Clang.#5721
    • Optimizedsample(),shuffle(),ranges::sample, andranges::shuffle by using Daniel Lemire's algorithmFast Random Integer Generation in an Interval.
      • This was originally implemented foruniform_int_distribution by#3012 in VS 2022 17.5.
    • Added x64/x86 vectorized implementations of:
      • includes() andranges::includes.#5590
    • Added ARM64 vectorized implementations of:
      • swap_ranges() andranges::swap_ranges.#5819
      • rotate() andranges::rotate.#5845
      • reverse(),reverse_copy(),ranges::reverse, andranges::reverse_copy.#5870
    • Improved the x64/x86 vectorized implementations of:
      • search_n() andranges::search_n.#5544
      • mismatch() andranges::mismatch.#5591
      • count(),find(),find_last(),remove(),remove_copy(),replace(), and theirranges counterparts.#5767
    • Optimizedany::swap() by avoiding unnecessary copies.#5710
    • Optimizedtransform() forvector<bool> with the unary function objectlogical_not and the binary function objectslogical_and,logical_or,equal_to, andnot_equal_to.#5769
    • Constructing amove_only_function from astd::function now avoids double-wrapping.#5808
    • Optimizedsteady_clock::now() to more efficiently convert from a performance counter frequency of 24 MHz (commonly seen on ARM64 systems) to nanoseconds.#5832
  • Enhanced behavior:
    • Deprecated the non-Standard<experimental/coroutine>,<experimental/generator>, and<experimental/resumable> headers.#5804
    • Removed the confusing escape hatch macro_ALLOW_RTCc_IN_STL. The STL doesn't support the/RTCc compiler option because it rejects conformant code with runtime termination. Previously, the STL blocked/RTCc with a compiler error, but provided an escape hatch macro to suppress that compiler error (so that compile-time STL components, like<type_traits>, could theoretically be used). This escape hatch intentionally did nothing to the STL's conformant code that would attempt to avoid runtime termination, occasionally confusing users. Now that the escape hatch has been removed, users must remove the/RTCc compiler option.#5906
      • Note: The/RTCs and/RTCu compiler options (combined into/RTC1) are good and unaffected. They only complain about undefined behavior, and the STL is perfectly compatible with them.
    • Implemented compiler warnings when the Standard forbids user-defined specializations of Standard Library templates.#5536
      • This uses the recently-implemented attributes[[msvc::no_specializations("reason")]] and[[clang::no_specializations("reason")]].
    • Silenced spurious static analysis warnings invector<bool>::max_size().#5707
    • Silenced CodeQL warnings.#5711
    • Improved<random>'s engines and distributions to no longer derive from their non-Standard TR1 predecessors.#5712
    • Updatedtuple to apply the resolution ofLWG-3677 "Is acv-qualifiedpair specially handled in uses-allocator construction?".#5669
      • This was originally implemented forpair by#3396 in VS 2022 17.7.
    • Updated<format> to handle Unicode 17.#5571#5803
    • Updated the Standard Library Modules, when used with the UCRT from the Windows 11 SDK 10.0.26100.6901 or newer, to remove a workaround that affected various<ctime> functions.#5805
    • Updated C++23move_only_function to prepare for future interactions with C++26 features.#5849
    • Improvedis_clock_v to perform stricter checks beyond the Standard's minimum requirements.#5892
    • Improved the accuracy ofpoisson_distribution andbinomial_distribution by calling the UCRT'slgamma() function instead of highly inaccurate handwritten code.#5891
  • Improved test coverage:
    • Enabled ARM64EC test coverage for Clang.#5717
    • Removed/analyze from the libcxx test suite to reduce compiler memory consumption, as we have sufficient test coverage elsewhere.#5724
    • Fixed bogus tests for the most triumphant type trait functionsis_corresponding_member() andis_pointer_interconvertible_with_class().#5730#5737
    • Added test coverage forconstexprvector<bool>.#5728
    • Reactivated test coverage using Clang's Undefined Behavior Sanitizer (UBSan).#5746
    • Improved test coverage for<filesystem>.#5749
    • Added test coverage for<filesystem>'s long path support.#5783#5799
    • Added benchmarks for<charconv>'s floating-pointto_chars().#5700
    • Centralized test machinery for exercising code with varying levels of Instruction Set Architecture (ISA) extensions, and added assertions to verify that tests are being run on machines that actually support the highest level of ISA extensions being used.#5874
    • Updated our LLVM submodule, including new tests.#5888
  • Code cleanups:
    • Reduced code duplication for:
    • Removed compiler bug workarounds.#5717#5783#5809
    • Fixed a typo.#5713
    • Reworked internal macros to make it easier to add vectorized algorithms for ARM64.#5801
    • Cleaned up the separately compiled implementations of x64/x86 vectorized algorithms:
      • Addedtemplate andtypename keywords as required by the Standard.#5743
      • Removed unused functions.#5744
      • Avoided unnecessary unaligned memory accesses inbitset's constructors from strings.#5759
      • Avoided unnecessary unaligned memory accesses inswap_ranges(),ranges::swap_ranges,rotate(), andranges::rotate.#5760
      • Removed a bogus assumption (which was fortunately harmless).#5761
    • Various cleanups (described in detail in the PRs, not repeated here).#5753
    • Simplified<any>'s implementation.#5784
    • Updated the STL's internal implementation to be compatible with .NET 8.0.#5814
    • Avoided internal usage of a deprecated type trait.#5811
    • Deleted dozens of files containing thousands of lines of unnecessary code for floating-point functions.#5836
    • Avoided compiler warnings in the STL's separately compiled source files.#5875#5876
    • Removed comments that were citing proposed resolutions for LWG issues, now that those issues have been officially resolved by the November 2025 meeting.#5909
    • Simplified how<chrono> formatting validates modifier characters.#5905
    • Improvedzoned_time's constructors to be constrained with concepts instead of SFINAE.#5907
  • Infrastructure improvements:
    • Added ARM64 runtime test coverage.#5815
    • Added ARM64EC runtime test coverage.#5831
    • Added a Configure Tests stage to Azure Pipelines, validating that test paths are properly listed in various files.#5888
    • Improved CI reliability by not building the benchmarks with Clang for x86.#5704
      • This avoids a sporadic crash in lld-link.exe.
    • Updated the CI to print a histogram of test run times and a list of the slowest running tests.#5878
    • Updated dependencies.#5717#5783#5879#5888
      • Updated MSVC Compiler to 19.50.35719 (now required).
      • Updated Clang to 20.1.8 (now required).
      • Updated CMake to 4.1.1 (now required).
      • Updated Python to 3.14.0 (now required).
      • Updated Boost.Math to 1.89.0.
  • Build system improvements:
    • Added compiler and linker options to the GitHub CMake build system, fixing divergence with the MSVC-internal MSBuild build system.#5652
    • The STL now clearly rejects attempts to build a preset or test a build whose architecture doesn't match the Developer Command Prompt (which is x86-native, but very slightly different from the x86 Native Tools Command Prompt where enforcement was previously validated).#5731
  • Updated_MSVC_STL_UPDATE.#5709#5752#5822

MSVC Build Tools 14.50

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 ofsystem_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<filesystem> 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:
  • Mergedpartial C++26 features:
  • Merged LWG issue resolutions:
    • LWG-2503#5535multiline option should be added tosyntax_option_type
      • For us, this is aregex behavioral change, so we added an escape hatch. By default, we define_REGEX_LEGACY_MULTILINE_MODE to0, which requests Standard behavior:
        • For ECMAScript, matching is non-multiline by default, butregex_constants::multiline can be requested.
        • For POSIX grammars, matching is non-multiline, andregex_constants::multiline is ignored; seeN5008 [tab:re.synopt].
      • Defining_REGEX_LEGACY_MULTILINE_MODE to1 requests legacy behavior:
        • For all grammars, matching is multiline, andregex_constants::multiline is redundant.
    • LWG-4186#5444regex_traits::transform_primary mistakenly detectstypeid of a function
    • LWG-4222#5602expected constructor from a single value missing a constraint
    • LWG-4242#5603ranges::distance does not work with volatile iterators
  • Mergedproposed 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 ofstd::projected::operator*
    • LWG-4273#5578 Standard execution policy types should be conventional tag class types
    • LWG-4303#5603std::decay_t in the specification ofranges::distance is problematic
  • Fixed bugs:
    • Fixedregex's behavior:
      • For thebasic andgrep grammars to properly handle^ caret characters.#5165
      • For thebasic andgrep grammars to properly handle$ dollar characters.#5362
      • For thebasic andgrep grammars to make backreferences to unmatched capture groups fail to match anything, instead of matching the empty string"".#5376
      • For thebasic andgrep 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 theECMAScript grammar's(?!pattern) negative lookahead assertions to make capture groups within them always match nothing after the assertions succeed.#5366
      • For theECMAScript grammar's\b word boundary assertion to not match the empty string"" (and inversely for the\B negative word boundary assertion).#5375
      • For theECMAScript grammar's\c escapes to require the following ControlLetter to be an ASCII alphabetic character.#5524
        • That is, only\ca through\cz and\cA through\cZ are allowed.
      • For theECMAScript grammar to reset all capture groups to "unmatched" at the start of each repetition of a loop.#5456
      • For theECMAScript grammar to reject bogus groups by throwing aregex_error with the coderegex_constants::error_badrepeat, removing the non-Standard coderegex_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(?<=meow)/(?<!meow) that were added in later versions of ECMAScript.
      • For theECMAScript,basic,grep, andawk grammars to properly handle escape sequences.#5380
        • POSIX grammars now accept\] as an identity escape for a right square bracket.#5399
      • For capture groups to follow ECMAScript's depth-first and POSIX's leftmost-longest matching rules.#5218
        • Removed unnecessary code for POSIX's leftmost-longest rule, reducing stack space consumption.#5405
      • For empty matches to follow ECMAScript's and POSIX's slightly different rules.#5494
      • For negated character class escapes (\D for non-digits,\S for non-whitespace,\W for non-words) inside square-bracket character classes when matching against Unicode characters.#5403#5487
        • This completes a series of fixes started by#5160 and#5214 in VS 2022 17.14.
      • For combinations of character class escapes inside square-bracket character classes (like[\w\s] for words and whitespace) when matching against Unicode characters.#5438
      • For character ranges withregex_constants::collate to follow the locale's collation order.#5238
      • For collating symbols and equivalence classes.#5392#5444
      • For small character ranges containing U+00FF and U+0100.#5437
      • Forregex_constants::icase andregex_constants::collate to translate each character exactly once before any comparisons.#5553
      • For extremely unusual user-defined character types.#5592#5675
      • To avoid requiring non-Standard typedefs in custom regex traits classes.#5671
    • Fixedcollate<wchar_t> to follow the locale's collation order when compiling with/Zc:wchar_t- (makingwchar_t a non-Standard typedef forunsigned short) and linking to the STL dynamically (with/MD or/MDd).#5361
    • Fixed howcollate::do_transform() handles wrongly encoded input.#5431
    • Fixedcollate::do_hash() to return equal hashes for strings that collate as equivalent.#5469
    • Fixedranges::enable_view to correctly reportfalse forranges::view_interface itself.#5369#5407
    • Fixed<filesystem> status functions to avoid failing for invalid paths when the current directory is a network path.#5381
    • Fixed compiler errors inrepeat_view's piecewise constructor for certain scenarios.#5388
    • Fixed compiler errors inconstexprcopy() forvector<bool>.#5347
      • This fixed a regression that was introduced by#3353 in VS 2022 17.9.
    • Fixed thebarrier constructor's exception specification to be conditionally "strengthened", instead of unconditionally.#5398
    • Fixed heap-use-after-free bugs in our undocumented/quasi-supported_HAS_EXCEPTIONS=0 mode when constructingsystem_error,chrono::ambiguous_local_time, andchrono::nonexistent_local_time.#5406
    • Fixed compiler errors when passingvolatile ranges tobasic_string'sfrom_range constructor andappend_range(),assign_range(),insert_range(), andreplace_with_range() member functions.#5409
    • Fixednth_element() andranges::nth_element to have worst-case linear complexity, instead of quadratic.#5100
    • Fixed compiler errors when passing iterators with unusual integer-class difference types to vectorized algorithms.#5471
    • Fixeddestroy(),destroy_at(),destroy_n(),ranges::destroy,ranges::destroy_at, andranges::destroy_n to destroy objects during constant evaluation even when they're trivially destructible.#5449
    • Fixednum_get::do_get() forbool to properly handle bad digit groupings.#5476
    • Fixedthread::hardware_concurrency() to correctly report the total number of logical processors when more than 64 are available, for both single-socket and multi-socket machines.#5459
    • Fixed<mdspan>'slayout_stride::mapping<E>::is_exhaustive() to correctly handle unusual extents.#5477
    • Fixedreverse_copy() andranges::reverse_copy being improperly vectorized forpair<T&, U&> on x86 (where suchpairs are 8 bytes).#5528
      • This fixed a regression that was introduced by#804 in VS 2019 16.8.
    • Fixedchrono::zoned_time to provide a fallback time zone abbreviation (of the form"-05" or"+0530") when the system's code page can't represent the localized abbreviation that would normally be returned.#5558
    • Fixedcounting_semaphore::try_acquire_for() to consistently usesteady_clock.#5575
    • Silenced a static analysis warning C6510 emitted by the extremely unusual scenario ofbasic_string<char_like_struct>.#5563
    • Fixed compiler errors involving incomplete types in<chrono>.#5629
    • Fixed occurrences of Clang 21's new-Wcharacter-conversion warning in<locale> by avoiding implicit conversions betweencharN_t types.#5653
    • Fixed integer overflow instable_sort() andranges::stable_sort when sorting huge inputs on x86.#5677
      • This affected 32-bit architectures with over a billion 1-byte elements. 64-bit architectures were immune.
      • This fix was backported to VS 2022 17.14.20.
    • Fixedfilesystem::temp_directory_path(error_code&) to return an emptyfilesystem::path when an error is encountered.#5570
  • Improved performance:
    • Improved performance forregex matching:
      • When aregex starts with a? question mark quantifier or several alternatives, by avoiding quadratic complexity.#5457
      • When aregex starts with a+ plus quantifier (or{min,} or{min,max} quantifiers requiring at least 1 repetition).#5509
      • When aregex contains no capture groups, by avoiding unnecessary allocations.#5518
      • For allregex patterns, by not generating unnecessary "if" nodes with a single branch.#5539
      • When aregex starts with positive/negative word boundary assertions\b/\B and lookahead assertions(?=meow)/(?!meow).#5576
      • By callingstd::search() internally.#5586
      • By avoiding unnecessary work inregex_constants::collate mode.#5672
    • Started using[[msvc::no_unique_address]] as a space optimization in several C++23 components.#4960
    • Added x64/x86 vectorized implementations of:
      • basic_string::find_first_not_of() andbasic_string::find_last_not_of() for one character.#5102
      • basic_string::find_first_not_of() andbasic_string::find_last_not_of() for multiple characters.#5206
      • adjacent_find() andranges::adjacent_find.#5331
      • unique() andranges::unique.#5092#5363
      • search_n() andranges::search_n for small values of n.#5352
      • remove_copy(),ranges::remove_copy,unique_copy(), andranges::unique_copy.#5355
      • is_sorted_until() andranges::is_sorted_until.#5420#5540
      • search(),ranges::search,default_searcher,find_end(), andranges::find_end, for 4-byte and 8-byte elements.#5484#5519
        • They were vectorized for 1-byte and 2-byte elements in VS 2022 17.13.
      • rotate() andranges::rotate.#5502#5525
    • Improved the x64/x86 vectorized implementations of:
      • reverse_copy() andranges::reverse_copy.#5493
    • Improved the ARM64EC vectorized implementations of:
      • find() andranges::find.#5597
    • Improved the performance ofranges::find for 2-byte elements on ARM64, matchingfind()'s behavior.#5628
    • Used Clang's builtin__is_trivially_equality_comparable to improve the performance ofequal(),ranges::equal, and many vectorized algorithms for more types.#5527
    • Optimizedsearch_n() andranges::search_n for n=1 to internally callfind() andranges::find.#5346
    • Improved codegen forhas_single_bit(), especially whenpopcount() intrinsics are unconditionally available.#5367#5534
      • For example, x86/x64 with/arch:AVX and ARM64 can unconditionally usepopcount() intrinsics.
    • Optimizedpoisson_distribution's constructor by avoiding unnecessary work.#5411
    • Implemented an exponential speedup (yes, literally) forminstd_rand andminstd_rand0'sdiscard() member function.#5412
    • Improvedlinear_congruential_engine performance by using our modern internal implementation of 128-bit integers.#5436#5473
    • Significantly improved performance forchrono::tzdb::locate_zone() by using binary searches for time zone names.#5548
    • Improvedstd::includes() to have the same performance asranges::includes.#5543#5595
    • Improved the performance ofcount() forvector<bool>.#5640
  • Enhanced behavior:
    • Used a new Clang compiler intrinsic to implementis_scoped_enum.#5358
    • Added debug checks for overlapping ranges inreplace_copy(),replace_copy_if(),reverse_copy(),rotate_copy(), and theirranges counterparts.#5495
    • Improved<mdspan>'s debug checks inlayout_stride::mapping<E>'s constructor.#5505
    • Avoided compiler warnings invector<bool>::max_size() with the compiler's upcoming implementation of Defect ReportP2280R4.#5550#5566
    • Updated several checks for precondition violations and impossible situations to use the STL's usual error reporting mechanism.#5560
    • Improvedregex parsing to detect excessive recursion (caused by extreme numbers of non-capturing groups or lookahead assertions) and throw aregex_error with the coderegex_constants::error_stack.#5588
    • Changed<regex> matching to use heap allocations for saved match state, slightly reducing stack pressure.#5682
    • Silenced CodeQL warnings.#5625
    • Silenced a new compiler warning C5291 throughout the STL.#5645
  • Improved debugger visualization:
    • Fixed an off-by-one mistake in the displayed year forsystem_clock::time_point.#5389
    • Updated the visualizer forsystem_clock::time_point to recognize the synonymous but slightly different type name emitted by Clang.#5390
  • Improved test coverage:
    • Updated our LLVM submodule, including new tests.#5349#5467#5688
    • Changed the benchmark build from/O2 /Ob1 to/O2 /Ob2, producing more realistic and useful results.#5370
    • Added benchmarks for:
      • fill() andfill_n().#5400
      • reverse() andreverse_copy().#5493
      • Thecount() optimization forvector<bool>.#5684
    • Improved the consistency of hownormal_distribution is used in benchmarks and tests.#5404
    • Increased the consistency of several benchmarks by adding allocators to control alignment.#5443
    • Updated the benchmarks to support being built with Clang.#5533
    • Updated aniter_rvalue_reference_t test in response to a compiler change.#5378
    • Fixed sporadic test failures by avoiding excessive compiler memory consumption.#5383
    • Improved the runtime performance of the major test for vectorized algorithms.#5425
    • Added more test coverage forsearch_n() andranges::search_n.#5439#5440
    • Updated the test harness to properly detect the locale name"Czech_Czechia.1250".#5480
    • Updatedsource_location test coverage to handle upcoming changes in the EDG front-end used for IntelliSense.#5551
    • Categorized the remaining<regex> test failures in the libcxx suite.#5587
    • Avoided/suppressed compiler warnings in tests.#5654#5655#5656#5657#5676
    • Worked around assertions in thelerp() test on ARM64.#5687
  • Improved documentation:
    • Clarified our machine-searchable SPDX-License-Identifier comments to properly describe how we usedRyu to implement<charconv>.#5401
    • Fixed confusing comments around the control macro for vectorizing algorithms with floating-point types.#5417
  • Code cleanups:
    • Simplified the control flow inranges::search_n.#5343
    • Simplified the implementation ofregex quantifiers.#5253
    • Removed comments that were citing proposed resolutions for LWG issues, now that those issues have been officially resolved by the November 2024 and June 2025 meetings.#5360#5584
    • Removed compiler bug workarounds.#5410#5580#5634#5661#5674
    • Significantly cleaned up the implementation of x64/x86 vectorized algorithms.#5429#5450#5485#5532
    • Removed an unnecessarily verbose internal macro.#5475
    • Removed unnecessary code for constant evaluation inchar_traits::assign().#5488
    • Various cleanups (described in detail in the PRs, not repeated here).#5498#5500#5541#5565#5636
    • Restructured code toif constexpr (condition) { ... } else { ... }, improving clarity and avoiding unreachable code.#5643
    • Simplified how<chrono> initializes atm struct.#5662
  • Infrastructure improvements:
    • Added ARM64EC stages to Azure Pipelines.#5492#5517#5521
      • Including an Early Build, benchmarks, and tests.
    • Improved code format validation to report line numbers in error messages.#5559
    • Updated dependencies.#5370#5410#5478#5512#5530#5580#5641#5659#5674
      • Updated build compiler to VS 2022 17.14.12 Preview 1.
      • Updated CMake to 3.31 (now required).
      • Updated Google Benchmark to 1.9.4.
      • Updated Python to 3.13.6.
      • Updated to Windows 11 SDK 26100. This is now required for building and testing the STL, but not for using it.
  • Updated_MSVC_STL_UPDATE and_MSVC_STL_VERSION.#5385#5464#5568#5633#5664

Older Versions

Clone this wiki locally


[8]ページ先頭

©2009-2025 Movatter.jp