[Bug c++/91262] New: using template type parameter after typename

barry.revzin at gmail dot com gcc-bugzilla@gcc.gnu.org
Thu Jul 25 18:23:00 GMT 2019


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91262

            Bug ID: 91262
           Summary: using template type parameter after typename
           Product: gcc
           Version: 9.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: barry.revzin at gmail dot com
  Target Milestone: ---

Reduced from StackOverflow (https://stackoverflow.com/q/57206006/2069064), this
short example:

struct Wrapper {
    template <class T>
    using type = T;
};

template <class T>
void foobar(typename Wrapper::template type<T>);

fails to compile with:

foo.cxx:7:40: error: using template type parameter ‘Wrapper::type<T>’ after
‘typename’
    7 | void foobar(typename Wrapper::template type<T>);
      |                

But this is fine - just because Wrapper::type isn't dependent doesn't disallow
us from using these keywords. clang accepts the example.


More information about the Gcc-bugs mailing list