VS 2019 16.5
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 uselit
.) - Began auditing test case source files from the
std
andtr1
test suites. - Implemented Custom Autolinks in this repo.
- Merged C++20 features:
- P0325R4 #135
to_array()
- P0340R3 #284 SFINAE-Friendly
underlying_type
- P0356R5 #158
bind_front()
- P0439R0 #124
enum class memory_order
- P0553R4 #310
<bit>
Rotating And Counting Functions - P0556R3 #310
<bit>
ispow2()
,ceil2()
,floor2()
,log2p1()
bit_length()
- P1355R2 Narrow Contract For
ceil2()
- P1355R2 Narrow Contract For
- P0595R2 #353
is_constant_evaluated()
- P0631R8 #261
<numbers>
Math Constants - P0655R1 #201
visit<R>()
- P0738R2 #246
istream_iterator
Cleanup - P0767R1 #179 Deprecating
is_pod
- P0966R1 #176
string::reserve()
Should Not Shrink - P1209R0 #236
erase_if()
,erase()
- P1227R2 #130 Signed
std::ssize()
- P1357R1 #127
is_bounded_array
,is_unbounded_array
- P1612R1 #305 Relocating
endian
To<bit>
- P1690R1 #341 Refining Heterogeneous Lookup For Unordered Containers
- P1902R1 #287 #353 Missing Feature-Test Macros 2017-2019
- P1959R0 #381 Removing
weak_equality
Andstrong_equality
- P0325R4 #135
- Merged partial C++20 features:
- Merged LWG issue resolutions:
- LWG-2899 #193
is_(nothrow_)move_constructible
andtuple
,optional
, andunique_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
- LWG-2899 #193
- Merged proposed resolutions for LWG issues (not yet accepted for the C++ Working Draft, but we've chosen to implement this speculatively):
- 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 inlist
. #77 valarray
now uses argument-dependent lookup when callingsin()
,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 toconst locale&
as (perhaps surprisingly) required by the Standard. #324 - Fixed
regex_token_iterator
to return correct results. #131 - Non-member
begin()
andend()
now takebasic_string_view
by value as required by the Standard. #119 - Fixed
list::splice()
to work correctly when splicing exactly half of onelist
into another. #129
- Restored
- Improved performance:
- Fixed a codegen size regression in
atomic<integral>
andatomic<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
andforward_list
insertion. #366 - Improved the performance of 64-bit
atomic
loads on x86. #87
- Fixed a codegen size regression in
- Improved throughput:
- Used
if constexpr
instead of tag dispatch in<any>
. #173
- Used
- 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
forexchange()
. #364 std::function
now avoids usingtypeid(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
- Improved the error message for
- Code cleanups:
- Removed unnecessary
public
keywords instruct
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 asoverride
. #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
- Removed unnecessary
- Improved documentation:
- Added a comment explaining part of
invoke()
's implementation. #368
- Added a comment explaining part of
- Infrastructure improvements:
- Updated
_MSVC_STL_UPDATE
. #253 #358