0
#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

有没有办法解决这个问题?

4

0 回答 0