int main(){
decltype(auto)&& a = 100;
}
Приведенный выше код, ошибка в GCC и Clang.
int main(){
decltype(int)&& a = 100;
}
Этот код правильный.
In N4296,
В § 8.3.2 / 6
Если typedef (7.1.3), параметр шаблона типа (14.3.1) или спецификатор decltype (7.1.6.2) обозначают тип TR, который является ссылкой на тип T, попытка создать тип « Ссылка lvalue на cv TR »создает тип« ссылка lvalue на T », а попытка создать тип« ссылка rvalue на cv TR »создает тип TR.
спецификатор-декларации в § 7.1.6.2
спецификатор decltype:
decltype (выражение)
decltype (авто)
Я думаю, что в § 8.3.2 / 6 проблема с формулировкой.
Почему ссылка на decltype (auto) недопустима. Подскажите пожалуйста формулировку соответствующего стандарта. Извините за плохой английский. Спасибо.