| class MyClass | |
| { | |
| public: | |
| int memberResult() | |
| { | |
| return 1; | |
| } | |
| static int staticResult() | |
| { | |
| return 1; | |
| } | |
| int externResult(); | |
| }; | |
| // -- | |
| int MyClass::externResult() | |
| { | |
| return 1; | |
| } | |
| // -- | |
| MyClass m; | |
| // -- | |
| enum MyEnum { | |
| myEnumOne = 1, | |
| myEnumTwo, | |
| myEnumThree | |
| }; | |
| // -- | |
| class AnotherClass | |
| { | |
| public: | |
| __attribute__ ((always_inline)) int complicatedFunction() | |
| { | |
| struct { | |
| int i; | |
| } s = { 15 }; | |
| int numbers[4] = { 2, 3, 4, 5 }; | |
| for (signed char number: numbers) | |
| { | |
| s.i -= number; | |
| } | |
| return s.i; | |
| } | |
| }; | |
| // -- | |
| class DiamondA | |
| { | |
| private: | |
| struct { | |
| int m_i; | |
| }; | |
| public: | |
| DiamondA(int i) : m_i(i) { } | |
| int accessor() { return m_i; } | |
| }; | |
| // -- | |
| class DiamondB : public virtual DiamondA | |
| { | |
| public: | |
| DiamondB(int i) : DiamondA(i) { } | |
| }; | |
| // -- | |
| class DiamondC : public virtual DiamondA | |
| { | |
| public: | |
| DiamondC(int i) : DiamondA(i) { } | |
| }; | |
| // -- | |
| class DiamondD : public DiamondB, public DiamondC | |
| { | |
| public: | |
| DiamondD(int i) : DiamondA(i), DiamondB(i), DiamondC(i) { } | |
| }; | |
| // -- | |
| int doTest() | |
| { | |
| int accumulator = m.memberResult(); | |
| accumulator += MyClass::staticResult(); | |
| accumulator += m.externResult(); | |
| accumulator += MyEnum::myEnumThree; | |
| accumulator += myEnumOne; | |
| accumulator += AnotherClass().complicatedFunction(); | |
| accumulator += DiamondD(3).accessor(); | |
| return accumulator; | |
| } | |
| // -- |