#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()'
,则无法调用成员函数|| void f()noexcept(noexcept(g())){};
但是,在clang ++ 3.6中,这可以编译,输出为1
有什么方法可以解决这个问题吗?