跳到主要内容

std::allocator<T>::destroy

定义于头文件 <memory>

直到 C++11
// 1)
void destroy( pointer p );
C++11 起,C++17 中弃用,C++20 中移除
// 2)
template< class U >
void destroy( U* p );

调用 p 所指向对象的析构函数。

调用 p->~T()
2) 调用 p->~U()

参数

p - 指向即将被销毁的对象的指针

返回值

(无)

缺陷报告

以下改变行为的缺陷报告已追溯应用于先前发布的 C++ 标准。

DR应用于发布时的行为正确行为
LWG 400C++98p 被转换为 T*,这是 p 的类型移除了冗余的类型转换

std::allocator<T>::destroy

定义于头文件 <memory>

直到 C++11
// 1)
void destroy( pointer p );
C++11 起,C++17 中弃用,C++20 中移除
// 2)
template< class U >
void destroy( U* p );

调用 p 所指向对象的析构函数。

调用 p->~T()
2) 调用 p->~U()

参数

p - 指向即将被销毁的对象的指针

返回值

(无)

缺陷报告

以下改变行为的缺陷报告已追溯应用于先前发布的 C++ 标准。

DR应用于发布时的行为正确行为
LWG 400C++98p 被转换为 T*,这是 p 的类型移除了冗余的类型转换