...
When manually managing the lifetime of an object, the constructor must be called to initiate the lifetime of the object. Similarly, the destructor must be called to terminate the lifetime of the object. Use of an object outside of its lifetime may result in undefined behavior. The constructor for an object may be called explicitly by using the placement placement new operator or by calling the construct()
function of an allocator object. The destructor for an object may be called explicitly or by calling the destroy()
function of an allocator object.
...