https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102771
Bug ID: 102771 Summary: show fix-it for missing period in variadic template: template<typename.. T> Product: gcc Version: 12.0 Status: UNCONFIRMED Keywords: diagnostic Severity: enhancement Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: redi at gcc dot gnu.org Target Milestone: --- template<typename.. T> void f(T...) { } vart.C:1:18: error: expected nested-name-specifier before ‘.’ token 1 | template<typename.. T> void f(T...) { } | ^ vart.C:1:18: error: expected ‘>’ before ‘.’ token vart.C:1:29: error: variable or field ‘f’ declared void 1 | template<typename.. T> void f(T...) { } | ^ vart.C:1:31: error: ‘T’ was not declared in this scope 1 | template<typename.. T> void f(T...) { } | ^ This could be improved. If we see a . token after "typename" or "class" (or "auto"?) then instead of just giving an error, see if the next token is also "." and if so, the user probably meant to write "..." We should show a fix-it saying "did you mean '...'?"