namespace a { namespace b { namespace c { static int d = 12; enum Color { Red, Green, Blue }; } // namespace c } // namespace b } // namespace a struct A { int _a = 'a'; struct B { short _b = 'b'; struct C { char _c = 'c'; enum EnumType : int { Eleven = 11 }; static EnumType enum_static; }; }; }; A::B::C::EnumType A::B::C::enum_static = A::B::C::Eleven; int foo() { a::b::c::Color color = a::b::c::Blue; return A::B::C::enum_static == a::b::c::d && ((int)color == 0); } int main() { return foo(); // Stop here to evaluate expressions }