https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104091
Bug ID: 104091 Summary: -std=c++20 causing meaningless error message "'auto' not allowed in alias declaration" which should be "missing template arguments after ..." Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: nickhuang99 at hotmail dot com Target Milestone: --- considering following snippet of code: template<typename T, template<typename...>typename Template> struct Specialization{}; template<template<typename...>typename Template, typename...Args> struct Specialization<Template<Args...>, Template>{ using type=Template; }; Using -std=c++20 gives meaningless error message of "'auto' not allowed in alias declaration". While -std=c++17 or before all give correct error message: "missing template arguments after 'Template<...auto...>'". And -std=c++14 is even better with "invalid use of template-name 'Template' without an argument list". See https://godbolt.org/z/Wb9nKzcPT