>> I see this lack in both the text of draft n4849 and the current draft text.
>> e.g.
>> auto (*p)() -> auto; // ill-formed (as all major compilers act)
> For this example we have to check whether both `auto`s are legal.
> The first one is legal under p3. The second one is not legal: it appears in the type-specifier-seq of the trailing return type, but the declarator in this case doesn't declare a function. So, the entire declaration is ill-formed.
Dear Brian, thanks for the answer.
Please, note that my example "auto (*p)() -> auto;" was exactly discussed as the illegal case due to the second 'auto'.
My discussion was exactly focused on the fact that the overall text of [decl.spec.auto.general] seems not excluding this case.