1 // RUN: %clang_cc1 -fsyntax-only -verify %s
2 // expected-no-diagnostics
5 template<class T
> struct X
{};
6 template<typename T
> struct Y
: public X
<T
>::X
{ };
12 template<class C
> class B1
: public A1
{
15 class A2
{ A2(int x
, int y
); };
16 template <class C
> class B2
{
18 B2(C x
) : x(x
.x
, x
.y
) {}
20 template <class C
> class B3
{
26 template<typename _Container
> class insert_iterator
{
27 _Container
* container
;
28 insert_iterator(_Container
& __x
) : container(&__x
) {}
32 template<typename T
> struct s0
{};
33 template<typename T
> struct s0_traits
{};
34 template<typename T
> struct s1
: s0
<typename s0_traits
<T
>::t0
> {
41 class A
: public T::type
53 A(U
& init
) : U::other_type(init
) { }
57 template<typename T
, typename U
>
58 struct X0
: T::template apply
<U
> {
59 X0(int i
) : T::template apply
<U
>(i
) { }
64 template<typename Type
>
66 char mA
[sizeof(Type
*)];