Sollten Sie Swap im std-Namespace überlasten?

Ich habe heute etwas Interessantes gelesen, das besagt, dass die 'Standard'-Methode zum Aufrufen von Swap für einen vom Benutzer bereitgestellten Typ (der als Vorlagenargument bereitgestellt wird) ...

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

Der Grund hierfür ist die Verwendung der argumentabhängigen Suche, um entweder a zu verwendenswap Funktion in einem Benutzernamensraum oderswap in demstd Namespace. Dies warf für mich eine interessante Frage auf. Wenn ich überladestd::swap für eine meiner klassen hatte ich es eigentlich in der definiertstd Namespace ...namespace std { void swap(/*...*/){/*...*/} }. Ist das Praxisfalsch? Soll ich meine eigene definieren?swaps instd oder mein eigener Namespace (und warum)?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage