override 和 noexcept 的顺序是标准所要求的吗?
class Base
{
public:
virtual void foo() {}
};
class Derived : public Base
{
public:
// virtual void foo() override {} // Ok
// virtual void foo() noexcept {} // Ok
// virtual void foo() noexcept override {} // Ok
virtual void foo() override noexcept {} // Error
};
int main() {}
我正在使用 gcc 4.7.2。
在 8.3.5 [dcl.fct] 中我们看到:
D1 ( 参数声明子句 ) cv-qualifier-seq opt
ref-qualifier opt 异常规范 opt attribute-specifier-seq opt
...在 9.2 [class.mem] 中我们看到:
声明符 virt-说明符-seq opt pure-说明符 opt
这表明override
and final
必须在之后noexcept
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)