At what point does the lifetime of a trivial type created by placement-new start?
问题 During a dive into dynamic memory, it occurred to me it appears contradictory how trivial types begin their lifetime. Consider the snippet void* p = ::operator new(sizeof(int)); // 1 // 2 new (p) int; // 3 When does the int start its lifetime? Only acquires storage, ::operator new is specified to have the effect (from [new.delete.single]) The allocation functions called by a new-expression to allocate size bytes of storage. [...] allocates storage suitably aligned to represent any object of