https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119754

Jiang An <de34 at live dot cn> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |de34 at live dot cn

--- Comment #5 from Jiang An <de34 at live dot cn> ---
It seems that we should do actual construction and destruction for all types
during constant evaluation.

> However, our implementation just call `::operator new`, that starts lifetime 
> of
> both array and it's elements:

This doesn't seem able to be handled in the library side.

> Except that `::operator new` does not perform implicit object creation at
> compile time per https://eel.is/c++draft/intro.object#14:

This restriction is talking about non-allocating `::operator new` (made
constexpr in C++26) and user-provided `operator new` that are constexpr. The
`operator new` called by std::allocator::allocate is not constexpr yet, while
implementations can add necessary magics to it as long as the magics can't be
touched by user code.

Reply via email to