1 #include <stdio.h>
2 #include <stdint.h>
3 
4 namespace a {
5     class c {
6     public:
7         c();
8         ~c();
9         void func1()
10         {
11             puts (__PRETTY_FUNCTION__);
12         }
13         void func2()
14         {
15             puts (__PRETTY_FUNCTION__);
16         }
17         void func3()
18         {
19             puts (__PRETTY_FUNCTION__);
20         }
21     };
22 
23     c::c() {}
24     c::~c() {}
25 }
26 
27 namespace aa {
28     class cc {
29     public:
30         cc();
31         ~cc();
32         void func1()
33         {
34             puts (__PRETTY_FUNCTION__);
35         }
36         void func2()
37         {
38             puts (__PRETTY_FUNCTION__);
39         }
40         void func3()
41         {
42             puts (__PRETTY_FUNCTION__);
43         }
44     };
45 
46     cc::cc() {}
47     cc::~cc() {}
48 }
49 
50 namespace b {
51     class c {
52     public:
53         c();
54         ~c();
55         void func1()
56         {
57             puts (__PRETTY_FUNCTION__);
58         }
59         void func3()
60         {
61             puts (__PRETTY_FUNCTION__);
62         }
63     };
64 
65     c::c() {}
66     c::~c() {}
67 }
68 
69 namespace c {
70     class d {
71     public:
72         d () {}
73         ~d() {}
74         void func2()
75         {
76             puts (__PRETTY_FUNCTION__);
77         }
78         void func3()
79         {
80             puts (__PRETTY_FUNCTION__);
81         }
82     };
83 }
84 
85 int main (int argc, char const *argv[])
86 {
87     a::c ac;
88     aa::cc aac;
89     b::c bc;
90     c::d cd;
91     ac.func1();
92     ac.func2();
93     ac.func3();
94     aac.func1();
95     aac.func2();
96     aac.func3();
97     bc.func1();
98     bc.func3();
99     cd.func2();
100     cd.func3();
101     return 0;
102 }
103