Разрешено ли объявлять вложенный объект класса вне области видимости? - PullRequest
5 голосов
/ 22 апреля 2020
#include <type_traits>

auto f()
{
    struct A { int f() { return 0; } };

    return A();
}

int main()
{
    std::remove_cvref_t<decltype(f())> a;

    return a.f();
}

Код выше может быть успешно скомпилирован. Мне просто интересно:

Законно ли это в соответствии со стандартом C ++?

...