26.10.2015, 18:49, "John Weeks" <j...@wavemetrics.com>:
>>  Both are correct, since one is implemented in terms of the other. That means
>>  they MUST expand to exactly the same assembly (and they do, I've just 
>> tested).
>>
>>  If you're seeing something different, the problem is probably your code. And
>>  that's why Marc is recommending qSwap: because people don't know how to use
>>  std::swap. There's a big gotcha: you MUST NOT write the "std::" part of
>>  std::swap.
>
> At the risk of making a fool of myself, what is the difference? I thought I 
> had learned that namespaces were just a scoping mechanism for names to avoid 
> name collisions. Why does this make such a difference in the generated code?
>
> I'm old enough now that the risk of making a fool of myself is a small price 
> to pay in order to learn something.

Unqualified swap() invokes argument-dependent lookup which may bring in custom 
overload of swap declared outside of std namespace.

-- 
Regards,
Konstantin
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to