Если вы напишите:
T *p = new T;
, который выделяет достаточно памяти для хранения T, а затем создает T в него.Если вы напишите:
T *p = ::operator new(sizeof(T));
Это выделяет достаточно памяти для хранения T, но не создает T. Один из случаев, когда вы можете увидеть это, когда люди также используют новое размещение:
T *p = ::operator new(sizeof(T)); // allocate memory for a T
new (p) T; // construct a T into the allocated memory
p->~T(); // destroy the T again
::operator delete(p); // deallocate the memory