Wenn Sie über einen Standardcontainer iterieren, denken Sie, dass es eine gute Idee ist, das Präfix std::
wegzulassen und sich auf ADL zu verlassen, um die Definition zu finden? Beispiel:
Gibt es Gründe, dies zu tun oder nicht?
Wenn Sie ADL verwenden möchten, um den Containertyp ändern zu können, ohne die Schleifen zu ändern, fügen Sie using std::begin; using std::end;
hinzu. Dadurch wird sichergestellt, dass die Funktionen std
für Container aus anderen Namespaces mit den Membern begin
und end
gefunden werden, jedoch keine freien Funktionen in ihrem Namespace.
Glauben Sie, dass es eine gute Idee ist, das Präfix std :: wegzulassen und sich auf ADL zu verlassen, um die Definition zu finden?
Ich denke, es ist eine gute Idee. In Vorlagen wie diesem wird es notwendig:
%Vor% Da Container
ein Typ sein kann, der vom Programmierer definiert wurde, zB im Namespace xyz
, wie würde dann die obige Funktionsvorlage funktionieren, wenn ich std::begin
anstatt nur begin
(im Initialisierungsteil) schreibe ?
Tags und Links c++