c ++标准部分ID,其中提到析构函数隐式不抛出

阿伦

我在某处读到,从c ++ 11开始,析构函数是隐式声明的noexcept(true)

从标准第12.4节开始

没有异常规范的析构函数的声明具有与隐式声明相同的异常规范

但是我在标准的任何地方都找不到一段暗示析构函数是隐含的noexcept(true)谁能指出我可以找到此信息的部分?

巴里

我相信您正在寻找§15.4/ 14(重点是我的):

继承构造函数(12.9)和隐式声明的特殊成员函数(第12节)具有异常规范。如果f是继承构造函数或隐式声明的默认构造函数,副本构造函数,move构造函数,destructor,副本赋值运算符或移动赋值运算符,T则当且仅当T异常规范允许时,其隐式异常规范指定type-idf的隐式定义直接调用的函数f如果直接调用的任何函数均允许所有异常,则允许所有异常;如果直接调用的每个函数均不允许异常,则f具有异常规范noexcept(true)。[注: 由此可见,fnoexcept(true)如果不调用其他函数,则具有异常规范—尾注]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章