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 要求。