https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120397
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2025-05-22
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
When the type has a non-trivial default constructor then uninitialized_default
has the same problem:
#include <memory>
struct X { X() { } ~X() { } };
void val(X (*x)[1])
{
std::uninitialized_value_construct(x, x+1);
}
void val_n(X (*x)[1])
{
std::uninitialized_value_construct_n(x, 1);
}
void def(X (*x)[1])
{
std::uninitialized_default_construct(x, x+1);
}
void def_n(X (*x)[1])
{
std::uninitialized_default_construct_n(x, 1);
}
I don't think any of the other std::uninitialized_xxx algos in C++17 can be
used to create arrays, so it's only these ones.