>> 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.
It seems you haven't really read my 3 points, just focused on the example.
Please, be patient and check again details of my discussion.
That detail is not even present in [dcl.fct]-p(1.3) that just forces to have return type auto in decl-specifiers in case there is trailing-return-type,
and I really believe that detail shuld be precise in [decl.spec.auto.general].
Thanks,
Mauro.