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