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
  • [Bug c++/104091] New: -std=c++... nickhuang99 at hotmail dot com via Gcc-bugs

Reply via email to