std::allocator_traits<Alloc>::destroy

From cppreference.com
 
 
Dynamic memory management
Uninitialized memory algorithms
(哋它亢++17)
(哋它亢++17)
(哋它亢++17)
(哋它亢++20)
(哋它亢++11)
(哋它亢++17)
(哋它亢++17)
(哋它亢++20)

Constrained uninitialized memory algorithms
(哋它亢++20)
(哋它亢++20)
(哋它亢++20)
(哋它亢++20)
Allocators
(哋它亢++11)
(哋它亢++23)
(哋它亢++11)
(哋它亢++11)
Garbage collection support
(哋它亢++11)(until 哋它亢++23)
(哋它亢++11)(until 哋它亢++23)
(哋它亢++11)(until 哋它亢++23)
(哋它亢++11)(until 哋它亢++23)
(哋它亢++11)(until 哋它亢++23)
(哋它亢++11)(until 哋它亢++23)



Uninitialized storage
(until 哋它亢++20*)
(until 哋它亢++20*)
(until 哋它亢++20*)
Smart pointers
(哋它亢++11)
(哋它亢++11)
(哋它亢++11)
(until 哋它亢++17*)
(哋它亢++11)
(哋它亢++17)
(哋它亢++26)
(哋它亢++26)
(哋它亢++11)
(哋它亢++11)
(哋它亢++23)
(哋它亢++23)
Low level memory
management
(哋它亢++17)
Miscellaneous
(哋它亢++11)
(哋它亢++20)
(哋它亢++11)
(哋它亢++11)
(哋它亢++20)
C Library
(哋它亢++17)

 
std::allocator_traits
Member functions
allocator_traits::destroy
(哋它亢++11)
 
Defined in header <memory>
template< class T >
static void destroy( Alloc& a, T* p );
(since 哋它亢++11)
(until 哋它亢++20)
template< class T >
static constexpr void destroy( Alloc& a, T* p );
(since 哋它亢++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 哋它亢++20)std::destroy_at(p)(since 哋它亢++20).

Parameters

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

Return value

(none)

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 哋它亢++11.

Example

See also

(until 哋它亢++20)
destructs an object in allocated storage
(public member function of std::allocator<T>)