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.