
"K. Noel Belcourt" ha escrito:
On Nov 16, 2007, at 5:10 AM, Joaquín Mª López Muñoz wrote:
John Maddock ha escrito: [...]
In foo::swap the local declaration of the member function "swap" hides any occurances of swap in the outer scope, and the using declaration behaves "as if" std::swap were imported into the *enclosing namespace*, which would still be hidden... and yet I can't believe that this simple idiom isn't actually legal ! :-) And indeed all the other compilers I tested do compile this OK.
Ouch, didn't think about name hiding... this is why I love C++ :-/
Now I don't know either whether the code is legal or not. Anyway, if I changed foo::swap to foo::swop the code would be undoubtedly legal then, right?
Noel, would you please try the attached variation?
Compiles fine with vacpp-8.0, no errors or warnings.
Ok, thanks for your help! I think I'll change then my code to avoid the name hiding thing, hopefully you'll see multi_index tests go green for vacpp-8.0 in the next cycle. As for whether the original test (with name hiding) is legal or not, well, I don't really know, but I'd love to have the opinion of some C++ guru. Thank you, Joaquín M López Muñoz Telefónica, Investigación y Desarrollo