2014-01-30 Alangi Derick <alangiderick@gmail.com>
[official-gcc.git] / gcc / testsuite / g++.dg / template / qualttp16.C
blob1fd0e1f3535fa3e4346291779e0c360cff3ece8c
1 // Copyright (C) 2001 Free Software Foundation
2 // Contributed by Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3 // { dg-do run }
5 extern "C" void abort();
7 struct A
9         template <class T> class B {};
12 template <template <class> class TT, class T> struct X
14         TT<int> y;
15         T z;
16         int f() { return 0; }
19 template <class T> struct X<T::template B, T>
21         typename T::template B<int> y;
22         T z;
23         int f() { return 1; }
26 template <class T> struct C
28         X<T::template B, A> x;
31 int main()
33         C<A> c;
34         X<A::B, A> x1;
35         X<A::B, int> x2;
36         if (x1.f() != 1)
37                 abort();
38         if (x2.f() != 0)
39                 abort();