【问题标题】:C++11, `noexcept` specifier, definition versus declarationC++11,`noexcept` 说明符,定义与声明
【发布时间】:2015-06-28 20:17:10
【问题描述】:

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

【问题讨论】:

    标签: c++ c++11 function-declaration noexcept


    【解决方案1】:

    [except.spec]/p4:

    如果函数的任何声明具有 异常规范 不是 noexcept-specification 允许所有异常,所有 声明,包括定义和任何显式 专业化,该功能应具有兼容的 异常规范

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

    【讨论】:

    • 可以肯定的是,声明中的 noexcept(false) 不必出现在定义中?继承和虚拟的东西呢?
    猜你喜欢
    • 2014-01-17
    • 2019-09-22
    • 2012-10-01
    • 1970-01-01
    • 2016-02-13
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    • 2015-10-17
    相关资源
    最近更新 更多