Title
construct_at without constructor call
Status
drwp
Section
7.7 [expr.const]
Submitter
CWG

Created on 2023-06-16.00:00:00 last changed 11 months ago

Messages

Date: 2023-06-16.10:55:18

Proposed resolution:

For the purposes of determining whether an expression E is a core constant expression, the evaluation of the body of a member function of std::allocator<T> as defined in 20.2.10.2 [allocator.members], where T is a literal type, is ignored. Similarly, the evaluation of the body of std::construct_at or std::ranges::construct_at is considered to include only the underlying constructor call initialization of the T object if the first argument (of type T*) points to storage allocated with std::allocator<T> or to an object whose lifetime began within the evaluation of E.
Date: 2023-06-15.00:00:00

[Accepted as a DR at the June, 2023 meeting.]

Subclause 7.7 [expr.const] paragraph 6 talks about invoking the "underlying constructor", but there is no constructor when creating an aggregate or a scalar type.

History
Date User Action Args
2023-12-19 10:15:28adminsetstatus: dr -> drwp
2023-07-16 13:00:43adminsetstatus: ready -> dr
2023-06-16 11:01:38adminsetstatus: open -> ready
2023-06-16 10:55:18adminsetmessages: + msg7326
2023-06-16 00:00:00admincreate