unbenannte Namensbereiche ersetzen traditionelle
static-Definitionen aus C für modulglobale Definitionen
(im Gegensatz zu programmglobalen Definitionen):
#include <iostream.h>
extern void func(void);
namespace {
float pi = 3.14;
}
int main() {
cout << "pi = " << pi << endl;
func();
}
- innerhalb der in einer anderen Übersetzungseinheit definierten
(externen) Funktion func kann auf das in diesem unbenannten
Namensbereich vorhandene pi nicht zugegriffen werden
- traditionelle static-Definitionen nicht mehr benötigt