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óprioswappecadostd ou meu próprio namespace (e por quê)?

questionAnswers(5)

yourAnswerToTheQuestion