xref: /Universal-ctags/Units/parser-cxx.r/bug-github-2263.cpp.d/input.cc (revision 21ec1b8d534376b112048c0c92a2380ce3cda6f2)
1 template <class T> class C0 {
2   T t;
3 };
4 
5 template <class T, typename T0 = C0<const T>> class C1 {
6   T0 t0;
7 public:
c1rehash()8   void c1rehash() {}
9 };
10 
11 template <class T, typename T1 = C0<C0<const T>>> class C2 {
12   T1 t1;
13 public:
c2rehash()14   void c2rehash() {}
15 };
16 
17 template <class T, typename T2 = C0<C0<C0<const T>>>> class C3 {
18   T2 t2;
19 public:
c3rehash()20   void c3rehash() {}
21 };
22 
23 template <class T, typename T3 = C0<C0<C0<C0<const T>>>>> class C4 {
24   T3 t3;
25 public:
c4rehash()26   void c4rehash() {}
27 };
28 
29 template <class T, typename T4 = C0<C0<C0<C0<C0<const T>>>>>> class C5 {
30   T4 t4;
31 public:
c5rehash()32   void c5rehash() {}
33 };
34 
35 template <class T, typename T3 = C0<C0<C0<C0<const T>>>>, class S = int> class C4x1 {
36   T3 t3;
37   S  s;
38 public:
c4x1rehash()39   void c4x1rehash() {}
40 };
41 
42 template <class T, typename T3 = C0<C0<C0<C0<const T>>>>, class S = C0<const T>> class C4x2 {
43   T3 t3;
44   S  s;
45 public:
c4x2rehash()46   void c4x2rehash() {}
47 };
48 
49 
50 int
main(void)51 main(void)
52 {
53   C0 <int> c0;
54   C1 <int> c1();
55   C2 <int> c2();
56   C3 <int> c3();
57   C4 <int> c4();
58   C4x1 <int, int, int> cx41();
59   C4x2 <int, int, int> cx42();
60   return 0;
61 }
62