Рассмотрите упрощенную программу:
Код: Выделить всё
auto f() {
struct A { struct B; };
return A{};
}
using A = decltype( f() );
struct A::B {};
EDG говорит, что это не разрешено:
ошибка: класс «A::B» не может быть определен в текущей области
GCC аварийно завершает работу с внутренним компилятором Ошибка, но и Clang, и MSVC прекрасно принимают программу.
Онлайн-демо
Какая реализация здесь правильная?
Подробнее здесь: https://stackoverflow.com/questions/798 ... obal-scope
Мобильная версия