Размещение нового эквивалента поведения

У меня есть вопрос относительно размещения синтаксиса newв C++. следующие два фрагмента кода функционально эквивалентны и могут использоваться взаимозаменяемо (я не имею в виду, что следует использовать второй, когда подходит первый)?

#1

T* myObj = new T();
// Do something with myObj
delete myObj;

#2

char* mem = new char[sizeof(T)];
T* myObj = new (mem) T();
// Do something with myObj
myObj->~T();
delete[] mem;

Есть ли что-то, что я должен делать особенно осторожны, когда я использую новый синтаксис размещения, подобный этому?

5
задан 14 May 2012 в 14:52
поделиться