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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
| | /* Examples provided by Sam Kendall <kendall@mv.mv.com>, Jan 1997 */
// check use of references with nested/local classes
// This example causes etags 13 to abort when compiled with -DDEBUG.
// Etags 13 cannot deal with nested structures after the first level.
struct A {
struct B {
struct C {
int x;
C(int i) {x = i;}
operator int() const {return x;}
};
typedef C T;
};
typedef B T2;
};
class String;
class A {
class B {
class C {};
int f() { return 5; }
};
};
int A::B::f() { return 2; }
A::B::C abc(-37);
main()
{
if (abc != -37 || abt != -37) return 1;
class D : public A::B::C {
public:
D() : ::A::T2::T(97), x(1066) {}
int x;
} &d = D();
if (d.x != 1066 || d.A::T2::T::x != 97) return 2;
return 0;
}
template <class T>
|