#include <iostream>
using namespace std;
class A
{
public:
void g() noexcept {}
void f() noexcept( noexcept( g() )) {};
};
A a;
int main()
{
cout<<noexcept(a.f())<<endl;
return 0;
}
当我尝试用 gcc 5.1.1 编译这个程序时,我得到了一个错误 -
错误:不能调用没有对象'void A::g()'的成员函数</p>
|| 无效 f() noexcept( noexcept( g() )) {};
但是,在 clang++3.6 中可以编译,输出为1
有没有办法解决这个问题?