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

            Bug ID: 89600
           Summary: rejects-valid on dependent block-scope using
                    declaration
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: richard-gccbugzilla at metafoo dot co.uk
  Target Milestone: ---

GCC rejects this valid code:

template<typename T> T f() { using T::Bar; return Bar; }

As follows:

<source>: In function 'T f()':
<source>:2:39: error: 'T' is not a namespace or unscoped enum
    2 | template<typename T> T f() { using T::Bar; return Bar; }
      |                                       ^~~

... which is wrong; T could be an unscoped enumeration:

enum E { Bar };
E e = f<E>();

Reply via email to