Namespaces
Variants
Views
Actions

std::allocator_traits<Alloc>::destroy

From cppreference.com
 
 
Memory management library
(exposition only*)
Uninitialized memory algorithms
(C++17)
(C++17)
(C++17)
Constrained uninitialized
memory algorithms
C Library

Allocators
Memory resources
Garbage collection support
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
Uninitialized storage
(until C++20*)
(until C++20*)
Explicit lifetime management
 
 
Defined in header <memory>
template< class T >
static void destroy( Alloc& a, T* p );
(since C++11)
(constexpr since C++20)

Calls the destructor of the object pointed to by p. If possible, does so by calling a.destroy(p). If not possible (e.g. Alloc does not have the member function destroy()), then calls the destructor of *p directly, as p->~T()(until C++20)std::destroy_at(p)(since C++20).

Contents

[edit] Parameters

a - allocator to use for destruction
p - pointer to the object being destroyed

[edit] Return value

(none)

[edit] Notes

Because this function provides the automatic fall back to direct call to the destructor, the member function destroy() is an optional Allocator requirement since C++11.

[edit] Example

[edit] See also

(until C++20)
destructs an object in allocated storage
(public member function of std::allocator<T>) [edit]