Я могу создать следующее:
using Foo = struct { /*Implementation*/ };
template<class>
using Bar = Foo;
Однако следующее не разрешено:
template<class>
using Bar = struct { /*Implementation*/ };
Ошибка от Clang более полезна, чем GCC, и гласит:
ошибка: «(анонимная структура в файл: строка: столбец )» не может быть определена
в шаблоне псевдонима типа
Какие-либо причины, по которым второй пример кода не разрешен?
Примечание:
Пожалуйста, укажите любые примеры, для которых второй пример кода (если разрешен) может вызвать проблемы с языком.
Любая цитата из стандарта также полезна.