Рекурсивное использование оператора noException компилируется в gcc, но не в clang и msvc.C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Рекурсивное использование оператора noException компилируется в gcc, но не в clang и msvc.

Сообщение Anonymous »

Я изучаю C++ по книгам, перечисленным здесь. Я написал следующий пример (по чисто академическим причинам), который компилируется с помощью GCC, но не с Clang и MSVC. Демо.
struct C {
static bool f() noexcept(!noexcept(C::f()))
{
return true;
}
};

Как мы видим, приведенный выше пример компилируется с помощью gcc, но не с msvc и clang.
Итак, мой вопрос > какой компилятор находится здесь (если есть).

GCC компилирует это.
MSVC говорит:
(2): fatal error C1202: recursive type or function dependency context too complex

Кланг говорит:
:2:40: error: exception specification is not available until end of class definition
static bool f() noexcept(!noexcept(C::f()))


Подробнее здесь: https://stackoverflow.com/questions/740 ... g-and-msvc
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»