C++11,`noexcept`修饰符,定义与声明的区别。

22
如果一个声明函数有一个noexcept指定符(noexcept, noexcept(true), noexcept(false), 或者任何其他的noexcept(expr),该表达式评估为truefalse),但是它在另一个位置被定义,我需要在定义中再次指定noexcept指定符吗?还是只需要在其前向声明中指定即可?
1个回答

23

[except.spec]/p4:

如果函数的任何声明具有非允许所有异常的 异常规格说明 而不是 免除异常规格说明 ,则该函数的所有声明,包括定义和任何显式专门化,都必须具有兼容的 异常规格说明

noexcept(some-constant-expression-that-evaluates-to-false)可以被省略。但其他内容必须在所有声明中出现。


确定声明中的 noexcept(false) 不需要出现在定义中吗?那继承和虚拟相关的呢? - Gelldur

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接