671 Stimmen

Unbenannte/anonyme Namensräume vs. statische Funktionen

Ein Merkmal von C++ ist die Möglichkeit, unbenannte (anonyme) Namespaces zu erstellen, etwa so:

namespace {
    int cannotAccessOutsideThisFile() { ... }
} // namespace

Man sollte meinen, dass eine solche Funktion nutzlos wäre - da man den Namen des Namensraums nicht angeben kann, ist es unmöglich, von außen auf irgendetwas innerhalb des Namensraums zuzugreifen. Aber diese unbenannten Namespaces sont in der Datei, in der sie erstellt wurden, zugänglich sind, als ob Sie eine implizite Verwendungsklausel für sie hätten.

Meine Frage ist, warum oder wann wäre dies der Verwendung statischer Funktionen vorzuziehen? Oder sind sie im Wesentlichen zwei Möglichkeiten, genau die gleiche Sache zu tun?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X