On May 6, 10:24 am, Michael Kilburn <crusader.m...@[EMAIL PROTECTED]
> wrote:
> Hi
>
> Can someone explain this peculiar behavior of MSVC & GCC:
> code below, if you uncomment that line (which is totally unrelated to
> 'dph' class), will stop compiling with usual bizzare C++ error
>
> [code]
> #include <iostream>
>
> namespace AAA {
> struct gad
> {
> };
>
> //std::ostream& operator<<(std::ostream& s, gad const&);
>
> struct dph
> {
> void f();
> };
>
> }
>
> std::ostream& operator<<(std::ostream& s, AAA::dph const&)
> {
> return s;
>
> }
>
> void AAA::dph::f()
> {
> std::cout << *this;
>
> }
>
> int main(int argc, char* argv[])
> {
> return 1;}
>
> [/code]
>
> Sincerely yours,
> Michael.
>
Michael,
Since names in different scopes do not participate in overloading the
function AAA::operator<< hides the ::operator<< for types in namespace
AAA.
--
Nikolai
[ See http://www.gotw.ca/resources/clcm.htm
for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]


|