Sintassi:
namespace name { declaratoria; }
La keyword namespace permette di creare uno nuovo scope (ambito) per la definizione
di riferimenti simbolici. Il nome è opzionale e può essere omesso per creare un namespace anonimo (unnamed).
Una volta creato il namespace si deve fare riferimento esplicito ad esso per usare
i simboli in esso definiti, oppure usare using per attivarne la determinazione
implicita.
Esempio:
#include <iostream> namespace CartoonNameSpace { int HomersAge; void incrementHomersAge() { HomersAge++; } } int main() { ... CartoonNameSpace::HomersAge = 39; CartoonNameSpace::incrementHomersAge(); std::cout << CartoonNameSpace::HomersAge << std::endl; ... }
Un namespace senza nome viene definito come anonimo. Per un tale namespace viene automaticamente
generato un nome unico per ogni translation unit e per esso non è applicabile la parola chiave
using. Quindi un namespace anonimo funziona come se la parola chiave using fosse stata usata
implicitamente.
namespace { declaratoria; }
Si possono creare nuovi nomi per un namespace (compresi i namespace nested, cioè annidati all'interno
di altri namespace).
namespace identifier = namespace-specifier;
Related Topics: using