Моя теория в том, что gcc имеет ошибку. Следующие компилирует в обоих лязгом и НКУ:Использование псевдонима для ссылки на анонимную структуру приводит к ошибке
using type = const struct {}&;
Но теперь, когда я изменить его на ссылки RValue он компилирует с лязгом, но не с GCC:
using type = const struct {}&&;
// main.cpp:8:17: error: expected ';' after struct definition
// typedef struct {}&& type;
// ^
// main.cpp:8:17: error: missing type-name in typedef-declaration
// main.cpp:8:22: error: expected constructor, destructor, or type conversion before ';' token
// typedef const struct {}&& type;
// ^
Это терпит неудачу с версией typedef
, а также с той же ошибкой:
typedef const struct {}&& type;
Почему это не скомпилировано в gcc? Это проблема со стандартом или ошибкой?