有以下代码:
错误信息如下:
为什么类B中的析构函数标记为noexcept(false)?似乎是从成员类中继承而来。这是由g++ 6.3编译的。
code
class Member
{
public:
~Member() noexcept(false) {}
};
class A
{
public:
virtual ~A() {}
};
class B : public A
{
public:
Member m;
};
错误信息如下:
main.cpp:13:7: error: looser throw specifier for ‘virtual B::~B() noexcept (false)’
class B : public A
^
main.cpp:10:11: error: overriding ‘virtual A::~A() noexcept’
virtual ~A() {}
^
为什么类B中的析构函数标记为noexcept(false)?似乎是从成员类中继承而来。这是由g++ 6.3编译的。