OSDN Git Service

b3c4b90228fce3e4b11a3b8c83c6f7d56593e5ca
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.dg / template / typedef32.C
1 // Origin: PR c++/43704
2 // { dg-do compile }
3
4 template<typename T2, typename T3>
5 struct if_
6 {
7  typedef T2 type;
8 };
9
10 template<class I1>
11 struct iterator_restrict_traits
12 {
13 };
14
15 template<class T>
16 class matrix
17 {
18  class ci {};
19  class i {};
20 };
21
22 template<class M, class TRI>
23 struct triangular_adaptor
24 {
25    typedef typename if_<typename M::ci,typename M::i>::type ty1;
26    class iterator2 :  iterator_restrict_traits<typename ty1::ic>::iterator_category
27    {
28    };
29 };
30
31 template<class M>
32 struct banded_adaptor
33 {
34   typedef typename if_<typename M::ci,typename M::i>::type ty1;
35   class iterator1 :  iterator_restrict_traits<typename ty1::ic>::iterator_category
36   {
37   };
38 };
39
40 template<class T>
41 struct singular_decomposition
42 {
43   banded_adaptor<matrix<double> >::iterator1 it1;
44 };
45