Стандарт утверждает, что
Если заполнитель является спецификатором типа
decltype(auto)
,T
должен быть только заполнителем.
decltype(auto)*x7d = &i;
//ошибка, объявленный тип не является простымdecltype(auto)
Неясно, разрешены ли cv-квалификаторы. Было бы разумно, если бы они были разрешены. Компиляторы, похоже, не согласны с этим вопросом. Следующий код принимается g++, но отклонен clang++, vС++, похоже, вообще не поддерживает переменные decltype(auto)
:
int main()
{
const decltype(auto) sz_text{"test"};
}