Я изучаю 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