| class A |
| { |
| }; |
| |
| int operator== (A, int) |
| { |
| return 11; |
| } |
| |
| int operator== (A, char) |
| { |
| return 12; |
| } |
| |
| //------------------ |
| |
| namespace B |
| { |
| class C |
| { |
| }; |
| |
| int operator== (C, int) |
| { |
| return 22; |
| } |
| |
| int operator== (C, char) |
| { |
| return 23; |
| } |
| |
| namespace BD |
| { |
| int operator== (C, int) |
| { |
| return 24; |
| } |
| } |
| } |
| |
| //------------------ |
| |
| class D |
| { |
| }; |
| namespace |
| { |
| int operator== (D, int) |
| { |
| return 33; |
| } |
| |
| int operator== (D, char) |
| { |
| return 34; |
| } |
| } |
| |
| int operator== (D, float) |
| { |
| return 35; |
| } |
| |
| //------------------ |
| |
| class E |
| { |
| }; |
| namespace F |
| { |
| int operator== (E, int) |
| { |
| return 44; |
| } |
| |
| int operator== (E, char) |
| { |
| return 45; |
| } |
| } |
| |
| int operator== (E, float) |
| { |
| return 46; |
| } |
| |
| using namespace F; |
| |
| //----------------- |
| |
| class G |
| { |
| public: |
| int operator== (int) |
| { |
| return 55; |
| } |
| }; |
| |
| int operator== (G, char) |
| { |
| return 56; |
| } |
| |
| //------------------ |
| |
| class H |
| { |
| }; |
| namespace I |
| { |
| int operator== (H, int) |
| { |
| return 66; |
| } |
| } |
| |
| namespace ALIAS = I; |
| |
| //------------------ |
| |
| class J |
| { |
| }; |
| |
| namespace K |
| { |
| int i; |
| int operator== (J, int) |
| { |
| return 77; |
| } |
| } |
| |
| using K::i; |
| |
| //------------------ |
| |
| class L |
| { |
| }; |
| namespace M |
| { |
| int operator== (L, int) |
| { |
| return 88; |
| } |
| } |
| |
| namespace N |
| { |
| using namespace M; |
| } |
| |
| using namespace N; |
| |
| //------------------ |
| |
| namespace O |
| { |
| namespace P |
| { |
| using namespace ::O; |
| } |
| using namespace P; |
| } |
| |
| using namespace O; |
| |
| class test { }; |
| test x; |
| |
| //------------------ |
| |
| int main () |
| { |
| A a; |
| a == 1; |
| a == 'a'; |
| |
| B::C bc; |
| bc == 1; |
| bc == 'a'; |
| B::BD::operator== (bc,'a'); |
| |
| D d; |
| d == 1; |
| d == 'a'; |
| d == 1.0f; |
| |
| E e; |
| e == 1; |
| e == 'a'; |
| e == 1.0f; |
| |
| G g; |
| g == 1; |
| g == 'a'; |
| |
| H h; |
| I::operator== (h, 1); |
| |
| J j; |
| K::operator== (j, 1); |
| |
| L l; |
| l == 1; |
| |
| return 0; |
| } |