blob: 8a56fd7e048a2f04f8d0f5c33eb6b743c7944889 [file] [log] [blame]
Aleksandr Urakov709426b2018-09-10 08:08:43 +00001namespace N0 {
2namespace N1 {
3
4namespace {
5enum Enum { Enum_0 = 1, Enum_1 = 2, Enum_2 = 4, Enum_3 = 8 };
6}
7
8Enum Global = Enum_3;
9
10struct Base {
11 Enum m_e = Enum_1;
12};
13
14class Class : public Base {
15public:
16 Class(Enum e) : m_ce(e) {}
17
18 static int StaticFunc(const Class &c) {
19 return c.PrivateFunc(c.m_inner) + Global + ClassStatic;
20 }
21
22 const Enum m_ce;
23
24 static int ClassStatic;
25
26private:
27 struct Inner {
28 char x;
29 short y;
30 int z;
31 };
32
33 int PrivateFunc(const Inner &i) const { return i.z; }
34
35 Inner m_inner{};
36};
37int Class::ClassStatic = 7;
38
39void foo() { Class::StaticFunc(Class(Enum_0)); }
40
41} // namespace N1
42} // namespace N0
43
44int main() {
45 N0::N1::foo();
46 return 0;
47}