| 1 | // RUN: %clang_cc1 -fsyntax-only -verify %s |
|---|---|
| 2 | // expected-no-diagnostics |
| 3 | |
| 4 | class X { |
| 5 | template <typename T> class Y {}; |
| 6 | }; |
| 7 | |
| 8 | class A { |
| 9 | class B {}; |
| 10 | class C {}; |
| 11 | }; |
| 12 | |
| 13 | // C++0x [temp.explicit] 14.7.2/11: |
| 14 | // The usual access checking rules do not apply to names used to specify |
| 15 | // explicit instantiations. |
| 16 | template class X::Y<A::B>; |
| 17 | |
| 18 | // As an extension, this rule is applied to explicit specializations as well. |
| 19 | template <> class X::Y<A::C> {}; |
| 20 |