Czy UB ponownie wykorzystuje pamięć obiektu bez niszczenia go w pierwszej kolejności?

Biorąc pod uwagę typ bez PODT:

auto p = new T();
::new (p) T();
/* ... */
delete p;

To jest UB, prawda?

Najwyraźniej nie przepuszczam bezpośrednio przydzielonej pamięciT (i jeśli nie ma żadnych pośrednich członków, to w ogóle nic nie wycieku), ale nigdy nie został zniszczony, co wydaje mi się doskonałym kandydatem do spontanicznego unicestwienia galaktyk zaludnionych przez czujące istoty podobne do kota.

Dzięki@ Xeo za, „inspirowanie” tego pytania w C ++ Lounge.

questionAnswers(1)

yourAnswerToTheQuestion