Implement LWG-4312 Const and value category mismatch for allocator_arg_t/allocator_arg in the description of uses-allocator construction by frederick-vs-ja · Pull Request #5904 · microsoft/STL (original) (raw)

Fixes #5866.

Note that the difference between allocator_arg/allocator_arg_t{} is only observable for (contrived) user-defined types, so we only need to modify _Tuple_val and _Uses_alloc_construct_non_pair (pre-C++20 only).

For scoped_allocator_adaptor and polymorphic_allocator, the changes make the pre-C++20 behavior more consistent and closer to C++20 behavior.