跳到主要内容

C++ 命名需求: *可析构 (Destructible)*

指定类型的实例可以被析构。

要求

如果满足以下条件,类型 T 满足 *可析构 (Destructible)*:

给定

  • u,一个 T 类型的表达式

以下表达式必须有效并具有其指定的效果

pub表达式后置条件
pubu.~T()u 持有的所有资源都被回收,不抛出任何异常

备注

析构函数会在对象生命周期结束时隐式调用,例如离开作用域时或通过delete-expression调用。如类型需求表中所示的显式析构函数调用很少见。

由于伪析构函数调用,所有标量类型都满足 *可析构 (Destructible)* 的要求,而数组类型和引用类型则不满足。请注意,std::is_destructible 允许数组和引用类型。

C++ 命名需求: *可析构 (Destructible)*

指定类型的实例可以被析构。

要求

如果满足以下条件,类型 T 满足 *可析构 (Destructible)*:

给定

  • u,一个 T 类型的表达式

以下表达式必须有效并具有其指定的效果

pub表达式后置条件
pubu.~T()u 持有的所有资源都被回收,不抛出任何异常

备注

析构函数会在对象生命周期结束时隐式调用,例如离开作用域时或通过delete-expression调用。如类型需求表中所示的显式析构函数调用很少见。

由于伪析构函数调用,所有标量类型都满足 *可析构 (Destructible)* 的要求,而数组类型和引用类型则不满足。请注意,std::is_destructible 允许数组和引用类型。