| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- // RUN: %clang_cc1 -fsyntax-only -verify %s
- // PR5061
- namespace a {
- template <typename T> class C {};
- }
- namespace b {
- template<typename T> void f0(a::C<T> &a0) { }
- }
- namespace test1 {
- int a = 0;
- template <class T> class Base { };
- template <class T> class Derived : public Base<T> {
- int foo() {
- return test1::a;
- }
- };
- }
- namespace test2 {
- class Impl {
- public:
- int foo();
- };
- template <class T> class Magic : public Impl {
- int foo() {
- return Impl::foo();
- }
- };
- }
- namespace PR6063 {
- template <typename T> void f(T, T);
-
- namespace detail
- {
- using PR6063::f;
- }
-
- template <typename T>
- void g(T a, T b)
- {
- detail::f(a, b);
- }
- }
- namespace PR12291 {
- template <typename T>
- class Outer2 {
- template <typename V>
- template <typename W>
- class Outer2<V>::Inner; // expected-error{{nested name specifier 'Outer2<V>::' for declaration does not refer into a class, class template or class template partial specialization}}
- };
- }
|