1class A 2{ 3}; 4 5int operator== (A, int) 6{ 7 return 11; 8} 9 10int operator== (A, char) 11{ 12 return 12; 13} 14 15//------------------ 16 17namespace B 18{ 19 class C 20 { 21 }; 22 23 int operator== (C, int) 24 { 25 return 22; 26 } 27 28 int operator== (C, char) 29 { 30 return 23; 31 } 32 33 namespace BD 34 { 35 int operator== (C, int) 36 { 37 return 24; 38 } 39 } 40} 41 42//------------------ 43 44class D 45{ 46}; 47namespace 48{ 49 int operator== (D, int) 50 { 51 return 33; 52 } 53 54 int operator== (D, char) 55 { 56 return 34; 57 } 58} 59 60int operator== (D, float) 61{ 62 return 35; 63} 64 65//------------------ 66 67class E 68{ 69}; 70namespace F 71{ 72 int operator== (E, int) 73 { 74 return 44; 75 } 76 77 int operator== (E, char) 78 { 79 return 45; 80 } 81} 82 83int operator== (E, float) 84{ 85 return 46; 86} 87 88using namespace F; 89 90//----------------- 91 92class G 93{ 94public: 95 int operator== (int) 96 { 97 return 55; 98 } 99}; 100 101int operator== (G, char) 102{ 103 return 56; 104} 105 106//------------------ 107 108class H 109{ 110}; 111namespace I 112{ 113 int operator== (H, int) 114 { 115 return 66; 116 } 117} 118 119namespace ALIAS = I; 120 121//------------------ 122 123class J 124{ 125}; 126 127namespace K 128{ 129 int i; 130 int operator== (J, int) 131 { 132 return 77; 133 } 134} 135 136using K::i; 137 138//------------------ 139 140class L 141{ 142}; 143namespace M 144{ 145 int operator== (L, int) 146 { 147 return 88; 148 } 149} 150 151namespace N 152{ 153 using namespace M; 154} 155 156using namespace N; 157 158//------------------ 159 160namespace O 161{ 162 namespace P 163 { 164 using namespace ::O; 165 } 166 using namespace P; 167} 168 169using namespace O; 170 171class test { }; 172test x; 173 174//------------------ 175 176int main () 177{ 178 A a; 179 a == 1; 180 a == 'a'; 181 182 B::C bc; 183 bc == 1; 184 bc == 'a'; 185 B::BD::operator== (bc,'a'); 186 187 D d; 188 d == 1; 189 d == 'a'; 190 d == 1.0f; 191 192 E e; 193 e == 1; 194 e == 'a'; 195 e == 1.0f; 196 197 G g; 198 g == 1; 199 g == 'a'; 200 201 H h; 202 I::operator== (h, 1); 203 204 J j; 205 K::operator== (j, 1); 206 207 L l; 208 l == 1; 209 210 return 0; 211} 212