Namespaces
-
Hier mal ein kleines Beispiel zur Verwendung von Namespaces innerhalb eines Moduls, das die Namespace <compiler> implementiert. Folgender Code sei <main.cc>, wobei die Funktion <StartCompiler()> static sein soll, also zusätzlich in einer anonymen Namespace deklariert und definiert ist. Mache ich es zu kompliziert (möchte keine using-Direktive verwenden) oder ist das so korrekt?
// Compiler declarations namespace compiler { // Local declarations namespace { int Start(int argc, char** argv); } // namespace } // namespace compiler int main(int argc, char** argv) { return compiler::Start(argc, argv); } // Compiler definitions namespace compiler { // Local definitions namespace { int Start(int argc, char** argv) { return 0; } } // namespace } // namespace compilerDanke und Gruß,
T.
-
Welchen Zweck soll der Compiler-Namespace um den Anonymen erfüllen?
-
manni66 schrieb:
Welchen Zweck soll der Compiler-Namespace um den Anonymen erfüllen?
vermutlich den gleichen, den ein using namespace compiler; innerhalb aller Funktionen des anonymen namespace hat - nichtqualifizierten Zugriff auf die Inhalte von compiler.
-
pumuckl schrieb:
manni66 schrieb:
Welchen Zweck soll der Compiler-Namespace um den Anonymen erfüllen?
vermutlich den gleichen, den ein using namespace compiler; innerhalb aller Funktionen des anonymen namespace hat - nichtqualifizierten Zugriff auf die Inhalte von compiler.
Genau, es geht um das Vermeiden der Using-Direktive.
-
Eine IDE wird den nested namespace entsprechend einrücken. Meiner Meinung nach wird das Ganze dadurch nicht unbedingt schöner/übersichtlicher. Aber das ist sicherlich Ansichtssache ...