OSDN Git Service

Patch PR c++/45200
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.dg / template / typedef34.C
1 // Origin PR c++/45200
2 // { dg-do compile }
3
4 template<typename T>
5 struct remove_reference
6 {
7   typedef T type;
8 };
9
10 template<typename TestType>
11 struct forward_as_lref
12 {
13 };
14
15 template<typename Seq, typename N>
16 struct apply1
17 {
18   typedef typename remove_reference<Seq>::type seq;
19   typedef forward_as_lref<typename seq::seq_type> type; //#0
20 };
21
22 template<typename Seq>
23 struct apply
24 {
25   typedef forward_as_lref<typename remove_reference<Seq>::type::seq_type> type; //#1
26 };
27
28 struct reverse_view
29 {
30   typedef int seq_type;
31 };
32
33 int
34 main()
35 {
36   apply<reverse_view >::type a2;
37 }