C'è un modo più breve per inoltrare dichiarare una classe in uno spazio dei nomi?
-
21-09-2019 - |
Domanda
posso inoltrare dichiarare una funzione in uno spazio dei nomi in questo modo:
void myNamespace::doThing();
che è equivalente a:
namespace myNamespace
{
void doThing();
}
Per inoltrare dichiarare una classe in uno spazio dei nomi:
namespace myNamespace
{
class myClass;
}
C'è un modo più breve per fare questo? Stavo pensando qualcosa lungo le linee di:
class myNamespace::myClass;
Soluzione
No, ma con un po 'di riformattazione
namespace myNamespace { class myClass; }
non è molto peggio di
class myNamespace::myClass;
Altri suggerimenti
Ho voluto fare la stessa cosa prima - non è permesso. Un membro dello spazio dei nomi deve essere dichiarato in una namespace-body
. Essi possono essere "di cui" solo con l'operatore di risoluzione dell'ambito.
Vedere 3.3.5 "scope Namespace" nella norma.
Enti dichiarati in un namespace-corpo si dice che sono membri dello spazio dei nomi e nomi introdotte da queste dichiarazioni nella regione dichiarativa dello spazio dei nomi sono detto di essere nomi dei membri dello spazio dei nomi.
e
Un membro dello spazio dei nomi può anche essere indicato dopo il :: operatore di risoluzione dell'ambito (5.1) applicato al nome del suo spazio dei nomi o il nome di un namespace, che nomina dello spazio dei nomi del membro in una using-directive;
Non penso così.