跳到主要内容

std::allocator_traits<Alloc>::destroy

自 C++20 起
template< class T >
static constexpr void destroy( Alloc& a, T* p );
从 C++11 起,直到 C++20
template< class T >
static void destroy( Alloc& a, T* p );

调用由 p 指向的对象的析构函数。如果可能,通过调用 a.destroy(p) 来实现。如果不可能(例如 Alloc 没有成员函数 destroy() ),则直接调用 *p 的析构函数,如 p->~T()  (截至 C++20) std::destroy_at(p)  (自 C++20 起)

参数

a - 用于销毁的分配器
p - 被销毁对象的指针

返回值

(无)

备注

由于此函数提供自动回退到直接调用析构函数的功能,因此自 C++11 起,成员函数 destroy() 是一个可选的 Allocator 要求。

std::allocator_traits<Alloc>::destroy

自 C++20 起
template< class T >
static constexpr void destroy( Alloc& a, T* p );
从 C++11 起,直到 C++20
template< class T >
static void destroy( Alloc& a, T* p );

调用由 p 指向的对象的析构函数。如果可能,通过调用 a.destroy(p) 来实现。如果不可能(例如 Alloc 没有成员函数 destroy() ),则直接调用 *p 的析构函数,如 p->~T()  (截至 C++20) std::destroy_at(p)  (自 C++20 起)

参数

a - 用于销毁的分配器
p - 被销毁对象的指针

返回值

(无)

备注

由于此函数提供自动回退到直接调用析构函数的功能,因此自 C++11 起,成员函数 destroy() 是一个可选的 Allocator 要求。