// RUN: %clang_cc1 -fsyntax-only -verify -std=c++0x %s // Examples from CWG1056. namespace Example1 { template struct A; template using B = A; template struct A { struct C {}; B::C bc; // ok, B is the current instantiation. }; template struct A> { struct C {}; B>::C bc; // ok, B> is the current instantiation. }; template struct A>> { struct C {}; B>::C bc; // expected-error {{missing 'typename'}} }; } namespace Example2 { template struct A { void g(); }; template using B = A; template void B::g() {} // ok. }