Czy należy przeciążać swap w przestrzeni nazw std?

Czytam dziś coś interesującego, w którym powiedziano, że „standardowy” sposób zamieniania wywołań na typ użytkownika (podany jako argument szablonu) to ...

using std::swap;
swap(something, soemthingelse);

Powodem tego jest użycie zależnego od argumentu wyszukiwania, aby użyć aswap funkcja w przestrzeni nazw użytkownika lubswap wstd przestrzeń nazw. To wywołało dla mnie interesujące pytanie. Kiedy przeciążamstd::swap dla jednej z moich klas faktycznie zdefiniowałem to wstd przestrzeń nazw ...namespace std { void swap(/*...*/){/*...*/} }. Czy to praktykaźle? Czy powinienem zdefiniować swój własnyswapsstd lub moja własna przestrzeń nazw (i dlaczego)?

questionAnswers(5)

yourAnswerToTheQuestion