Если вы перегружаете swap в пространстве имен std?
Сегодня я прочитал кое-что интересное, в котором говорится, что «стандартный» способ вызова swap для пользовательского типа (предоставленного в качестве аргумента шаблона) - это ...
using std::swap;
swap(something, soemthingelse);
Причиной этого является использование зависимого от аргумента поиска, чтобы использоватьswap
функция в пространстве имен пользователя илиswap
вstd
Пространство имен. Это подняло интересный вопрос для меня. Когда я перегружаюstd::swap
для одного из моих классов я на самом деле определял его вstd
Пространство имен ...namespace std { void swap(/*...*/){/*...*/} }
, Это практиканеправильно? Должен ли я определить свой собственныйswap
вstd
или мое собственное пространство имен (и почему)?