C++11,“noexcept”说明符,定义与声明

C++11, `noexcept` specifier, definition versus declaration

本文关键字:定义 声明 说明符 noexcept C++11      更新时间:2023-10-16

如果一个声明的函数有一个noexcept的指定符(noexceptnoexcept(true)noexcept(false),或任何其他计算结果为 truefalsenoexcept(expr)),但它是在另一个地方定义的,我是否需要在定义中再次指定noexcept说明符,还是仅在其前向声明中指定?

[except.spec]/p4:

如果函数的任何声明具有异常规范 不是允许所有例外的例外规范,所有 声明,包括定义和任何明确的声明 专业化,该职能应具有兼容的 异常规范

noexcept(some-constant-expression-that-evaluates-to-false)可以省略。其他任何内容都必须存在于所有声明中。