3901. Is uses-allocator construction of a cv-qualified object type still well-formed after LWG 3870?

Section: 20.2.8 [allocator.uses] Status: NAD Submitter: Jiang An Opened: 2023-03-05 Last modified: 2024-06-24

Priority: Not Prioritized

View all issues with NAD status.

Discussion:

LWG 3870 made std::construct_at unable to create an object of a cv-qualified type, which affects std::uninitialized_construct_using_allocator. However, uses-allocator construction is currently not required to be equivalent to some call to std::uninitialized_construct_using_allocator, which possibly implies that uses-allocator construction of a cv-qualified type may still be required to be well-formed.

Should we make such construction ill-formed?

[2023-03-22; Reflector poll]

Set status to Tentatively NAD.

Not all uses-allocator construction is done using construct_at. std::tuple<const T>(allocator_arg, alloc) does uses-allocator construction of a const type, so we can't make it ill-formed.

[St. Louis 2024-06-24 Status changed: Tentatively NAD → NAD.]

Proposed resolution: