Defined in header <memory>
void destroy( pointer p );
(until C++11)
template< class U >
void destroy( U* p );
(since C++11)
(deprecated in C++17)
(removed in C++20)

Calls the destructor of the object pointed to by p.

1) Calls p->~T().
2) Calls p->~U().


p - pointer to the object that is going to be destroyed

Return value


Defect reports

The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

DR Applied to Behavior as published Correct behavior
LWG 400 C++98 p was casted to T*, which is the type of p removed the redundant cast

See also

destructs an object stored in the allocated storage
(function template)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.