-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
<xmemory>
: Remove std::allocator<void>
full specialization
#2726
<xmemory>
: Remove std::allocator<void>
full specialization
#2726
Conversation
Also remove non-Standard member types.
related to std::allocator<void>.
Add mysterious spaces.
tests/std/tests/GH_000527_remove_allocator_void/test.compile.pass.cpp
Outdated
Show resolved
Hide resolved
tests/std/tests/GH_000527_remove_allocator_void/test.compile.pass.cpp
Outdated
Show resolved
Hide resolved
Thanks! I pushed a couple of style changes. |
#endif | ||
|
||
STATIC_ASSERT(has_cxx20 == has_member_size_type<allocator<void>>); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pure style, and totally not worth resetting testing if we change nothing else: I would have written these as [Actual value] == [Expected value]
, which I think is more consistent with our test conventions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's my preferred style too - but I did it this way so that they would line up, and make the pattern obvious.
I'm mirroring this to the MSVC-internal repo - please notify me if any further changes are pushed. |
Thanks for fixing this C++20 conformance issue! ✅ 😸 🚀 |
…soft#2726) Co-authored-by: Casey Carter <[email protected]> Co-authored-by: Stephan T. Lavavej <[email protected]>
The removal of
std::allocator<void>
full specialization is observable via SFINAE techniques. As of C++20, usingstd::allocator<void>::allocate
is no longer a substitution failure, but a hard error. This PR tests such changes.This PR also removes
propagate_on_container_move_assignment
andis_always_equal
fromstd::allocator<void>
full specialization according to N4659. It seems that MSVC STL applied LWG-2103 and LWG-2108 (WG21-N4258) tostd::allocator<void>
full specialization, but these member types haven't gone intostd::allocator<void>
in C++17, see N4659 [depr.default.allocator].Works towards WG21-P0619.
Fixes #527.