Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
È possibile dichiarare uno spazio dei nomi senza nome come alternativa superiore all'utilizzo delle dichiarazioni delle variabili statiche globali.
namespace { declaration-list }
Note
Una definizione senza nome dello spazio dei nomi che fa riferimento alla sintassi precedente si comporta come se fosse stata sostituita da:
spazio dei nomi univoco { dichiarazione-elenco }
tramite lo spazio dei nomi univoco;
Ogni spazio dei nomi senza nome è un identificatore, distribuito e gestiti dal programma e rappresentato da qui univoco, che differisce da tutti gli altri identificatori nell'intero programma.Di seguito è riportato un esempio:
// unnamed_namespaces.cpp
// C2872 expected
namespace { int i; } // unique::i
void f() { i++; } // unique::i++
namespace A {
namespace {
int i; // A::unique::i
int j; // A::unique::j
}
}
using namespace A;
void h()
{
i++; // C2872: unique::i or A::unique::i
A::i++; // A::unique::i++
j++; // A::unique::j++
}
Gli spazi dei nomi senza nome è una sostituzione superiore per la dichiarazione statica delle variabili.Consentono delle variabili e funzioni siano visibili all'interno dell'unità di conversione, ma non visibili esternamente.Sebbene le entità in uno spazio dei nomi senza nome potrebbe disporre di collegamento esterno, in effetti sono deve essere qualificato da un nome univoco alla relativa unità di conversione e pertanto non possono essere visualizzate mai da un'altra unità di conversione.