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?swap
s instd
oder mein eigener Namespace (und warum)?