1*e42edb55SGreg Clayton namespace a { 2*e42edb55SGreg Clayton namespace b { 3*e42edb55SGreg Clayton namespace c { 4*e42edb55SGreg Clayton static int d = 12; 5*e42edb55SGreg Clayton enum Color { Red, Green, Blue }; 6*e42edb55SGreg Clayton } // namespace c 7*e42edb55SGreg Clayton } // namespace b 8*e42edb55SGreg Clayton } // namespace a 9*e42edb55SGreg Clayton 10*e42edb55SGreg Clayton struct A { 11*e42edb55SGreg Clayton int _a = 'a'; 12*e42edb55SGreg Clayton struct B { 13*e42edb55SGreg Clayton short _b = 'b'; 14*e42edb55SGreg Clayton struct C { 15*e42edb55SGreg Clayton char _c = 'c'; 16*e42edb55SGreg Clayton enum EnumType : int { Eleven = 11 }; 17*e42edb55SGreg Clayton static EnumType enum_static; 18*e42edb55SGreg Clayton }; 19*e42edb55SGreg Clayton }; 20*e42edb55SGreg Clayton }; 21*e42edb55SGreg Clayton 22*e42edb55SGreg Clayton A::B::C::EnumType A::B::C::enum_static = A::B::C::Eleven; 23*e42edb55SGreg Clayton foo()24*e42edb55SGreg Claytonint foo() { 25*e42edb55SGreg Clayton a::b::c::Color color = a::b::c::Blue; 26*e42edb55SGreg Clayton return A::B::C::enum_static == a::b::c::d && ((int)color == 0); 27*e42edb55SGreg Clayton } 28*e42edb55SGreg Clayton main()29*e42edb55SGreg Claytonint main() { 30*e42edb55SGreg Clayton return foo(); // Stop here to evaluate expressions 31*e42edb55SGreg Clayton } 32