http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46748

           Summary: Error "using typename" in template class
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: i...@airs.com


When I compile this test case:

template<typename T> class B 
{
 public:
  typedef int T2;
  static void F(T* f, T2* v);
};

template<typename T> class D : public B<T>
{
 public:
  using typename B<T>::T2;
  using B<T>::F;

  static void F2(T* f) {
    T2 v;
    F(f, &v);
  }
};

with current mainline, I get this:

foo.cc: In static member function ‘static void D<T>::F2(T*)’:
foo.cc:15:8: error: expected ‘;’ before ‘v’
foo.cc:16:11: error: ‘v’ was not declared in this scope

As far as I can see, this should work without an error.

Reply via email to