Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Frischling
Beruf: GameDesign Student bei Qantm Institut München, Gründer von DarkMirrorGames
Anonymous
unregistriert
Zitat
Ein "using namespace" sollte man immer sein lassen, da dies Mehrdeutigkeiten hervorrufen kann, dies ist auch der Grund wieso man es nur lokal (in Source-Dateien) machen sollte oder in einem Funktionsrumpf. Ist sowas in Header-Dateien, wird dieses "using namespace" überall "weitervererbt" in andere Dateien was Folgefehler hervorrufen kann/wird.
Frischling
Beruf: GameDesign Student bei Qantm Institut München, Gründer von DarkMirrorGames
Zitat von »"Helmut"«
Wenn man kein using benutzt, haben Namespaces kaum Vorteile gegenüber Präfixen für alle Namen. Namespaces wurden praktisch dafür erfunden, um mit using eingebunden zu werden..
Ciao
Sorry, aber das ist einfach falsch, du scheinst die Sache nicht verstanden zu haben. Namespaces sind kein Ersatz für Präfixe, sie dienen zur logischen Gliederung von Klassen und Funktionen. Im Gegensatz zu den C-Präfixen kommen noch zusätzliche Features wie ADNL dazu. Mit dem "Ausleeren" von Namespaces, also massivem Einsatz der using-Direktive, brichst du gerade das Konzept der Namensräume.Zitat von »"Helmut"«
Wenn man kein using benutzt, haben Namespaces kaum Vorteile gegenüber Präfixen für alle Namen. Namespaces wurden praktisch dafür erfunden, um mit using eingebunden zu werden..
C-/C++-Quelltext |
|
1 2 |
using std::swap; swap(left, right); |
Zitat von »"Nexus"«
Sorry, aber das ist einfach falsch, du scheinst die Sache nicht verstanden zu haben. Namespaces sind kein Ersatz für Präfixe, sie dienen zur logischen Gliederung von Klassen und Funktionen. Im Gegensatz zu den C-Präfixen kommen noch zusätzliche Features wie ADNL dazu. Mit dem "Ausleeren" von Namespaces, also massivem Einsatz der using-Direktive, brichst du gerade das Konzept der Namensräume.Zitat von »"Helmut"«
Wenn man kein using benutzt, haben Namespaces kaum Vorteile gegenüber Präfixen für alle Namen. Namespaces wurden praktisch dafür erfunden, um mit using eingebunden zu werden..
Ein Beispiel für den Vorteil von Namensräumen:
C-/C++-Quelltext
1 2 using std::swap; swap(left, right);
Hier wird geschaut, ob für den Typ von left und right eine freie spezialisierte Funktion existiert, und wenn ja, wird diese angewandt. Falls keine solche Funktion existiert, wird das Funktionstemplate std::swap für diesen Typ instanziiert und aufgerufen.
So, wie er es formuliert hat (besonders sein zweiter Satz), habe ich das anders verstanden, nämlich dass er sich nur auf using namespace ... bezieht.Zitat von »"xardias"«
Wenn du kein using benutzt hast du diesen Vorteil nicht. Ich glaube mehr wollte Helmut damit nicht sagen.
Werbeanzeige