Você deve sobrecarregar a troca no namespace padrão?
Eu li algo interessante hoje que disse que a maneira 'padrão' para chamar swap em um tipo de usuário fornecido (fornecido como um argumento de modelo) é ...
using std::swap;
swap(something, soemthingelse);
A razão para isso é usar a pesquisa dependente de argumento para usar umswap
funcionar em um namespace de usuário ouswap
nostd
namespace. Isso levantou uma questão interessada para mim. Quando eu sobrecarregarstd::swap
para uma das minhas aulas eu estava realmente definindo-o nostd
namespace ...namespace std { void swap(/*...*/){/*...*/} }
. Isso é prática?errado? Devo definir meu próprioswap
pecadostd
ou meu próprio namespace (e por quê)?