blob: 2efeba93dfe01c4dbb8591d2e7a58b9f2e765e77 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
// { dg-do run }
// Bug: g++ forgets about the instantiation of class1 when looking up
// class11_value, and tries to look things up in class1<class2>.
template<class ItIsInt>
struct class1 {
struct class11 {
typedef ItIsInt class11_value;
};
};
template<class ItIsClass2>
struct class3 {
int f();
};
template<class ItIsClass2>
int class3<ItIsClass2>::f()
{
return typename class1<typename ItIsClass2::class2_value>::class11::class11_value(10);
}
struct class2 {
typedef int class2_value;
};
int main()
{
class3<class2> the_class3;
the_class3.f();
}
|