Skip to content

VS 2019 16.5

Compare
Choose a tag to compare
@StephanTLavavej StephanTLavavej released this 09 Mar 05:16
· 2046 commits to main since this release
  • Hello, world!
    • Announced this repo at CppCon 2019.
    • Added initial documentation: readme, license, and roadmap.
    • Added initial CMake build scripts for Desktop-only msvcp. #5 #80 #98 #101
    • Investigated continuous integration options, like GitHub Actions or Azure Pipelines. (Chose Azure Pipelines.)
    • Automated builds running in PRs. #114
    • Investigated test harness solutions, either building our own to more closely match the internal system in a reasonable way, or using libcxx's lit. (Chose to use lit.)
    • Began auditing test case source files from the std and tr1 test suites.
    • Implemented Custom Autolinks in this repo.
  • Merged C++20 features:
  • Merged partial C++20 features:
  • Merged LWG issue resolutions:
    • LWG-2899 #193 is_(nothrow_)move_constructible and tuple, optional, and unique_ptr
    • LWG-3158 #195 tuple(allocator_arg_t, const Alloc&) should be conditionally explicit
    • LWG-3199 #353 istream >> bitset<0> fails
    • LWG-3257 #353 Missing feature testing macro update from P0858
    • LWG-3266 #353 to_chars(bool) should be deleted
  • Merged proposed resolutions for LWG issues (not yet accepted for the C++ Working Draft, but we've chosen to implement this speculatively):
    • LWG-3268 #151 memory_order::memory_order_meow broken in C++20
  • Fixed bugs:
    • Restored swap(unique_ptr&, unique_ptr&) which was mistakenly removed. #170
    • When erasing an empty range in a vector, avoided self-move-assigning all elements. #228
    • Removed a noexcept that was incorrectly applied to an allocating helper function in list. #77
    • valarray now uses argument-dependent lookup when calling sin(), cos(), pow(), sqrt(), etc. as required by the Standard. #286
    • Fixed <filesystem> linker errors for UWP developers. #356
    • Changed the return type of locale's assignment operator to const locale& as (perhaps surprisingly) required by the Standard. #324
    • Fixed regex_token_iterator to return correct results. #131
    • Non-member begin() and end() now take basic_string_view by value as required by the Standard. #119
    • Fixed list::splice() to work correctly when splicing exactly half of one list into another. #129
  • Improved performance:
    • Fixed a codegen size regression in atomic<integral> and atomic<pointer>. #227
    • Activated x64 FrameHandler4 exception handling, reducing the size of msvcp140.dll from 588 KB to 528 KB. #154
    • Reduced the stack space consumption of list and forward_list insertion. #366
    • Improved the performance of 64-bit atomic loads on x86. #87
  • Improved throughput:
    • Used if constexpr instead of tag dispatch in <any>. #173
  • Enhanced behavior:
    • Improved the error message for function<Ret (Args) noexcept>. #350
    • any now supports over-aligned types. #173
    • Improved the messages that are emitted when including newer headers in older Standard modes. #252
    • Strengthened noexcept for exchange(). #364
    • std::function now avoids using typeid(void) in our _HAS_STATIC_RTTI=0 mode, for compatibility with Clang's -fno-rtti mode. #375
    • Added an error message explaining that the <experimental/coroutine>, <experimental/generator>, and <experimental/resumable> headers aren't supported with Clang. #136
  • Code cleanups:
    • Removed unnecessary public keywords in struct inheritance. #219
    • Used iter[idx] for clarity in <algorithm>. #289 (Note that this was reverted in VS 2019 16.6 by #464.)
    • Fixed typos in comments and error messages. #96
    • Marked more virtual member functions as override. #302
    • Fused files together. #220 #374
    • Consistently used the modern int = 0 SFINAE technique. #226 #244 #328
    • Removed compiler bug workarounds. #175 #301 #372
    • Various cleanups (described in detail in the PRs, not repeated here). #168 #221 #269 #320 #373
  • Improved documentation:
    • Added a comment explaining part of invoke()'s implementation. #368
  • Infrastructure improvements:
    • Added clang-format validation. #132 #163 #255
    • Added more code format validation. #229
    • Updated dependencies. #167 #205 #231
      • Updated build compiler to VS 2019 16.4 Preview 2 (now required).
      • Updated Clang to 9.0.0 (now required).
  • Updated _MSVC_STL_UPDATE. #253 #358