noexcept: различное поведение на clang++ и g ++

#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

Есть ли способ решить эту проблему?

0 ответов

Другие вопросы по тегам