Ответ 1
Чтобы ответить на этот вопрос, нам нужно указать предыдущий параграф, в котором указывается, что T
. В этом случае [dcl.type.auto.deduct]/2 говорит (внимание мое):
Тип T, содержащий тип заполнителя, и соответствующий инициализатор e, определяются следующим образом:
- для переменной, объявленной с типом , который содержит тип заполнителя, T - объявленный тип переменной, а e - инициализатор. Если инициализация является инициализацией прямого списка, Инициализатор должен быть списком со списком бит-init, содержащим только один выражение-присваивание и e - выражение-присваивание;
В этом случае T
- это весь объявленный тип sz_text
, cv-qualifiers и все. И в параграфе, который вы цитируете, совершенно ясно, что если он содержит decltype(auto)
в качестве заполнителя, он должен быть таким и не более.
Так что ошибка GCC. И уже сообщалось об этом.