Con using namespace
Rendo visibile l'intero contenuto di tale spazio dei nomi senza utilizzare il qualificatore di spazio dei nomi. Ciò può causare problemi se using namespace
si verifica in intestazioni ampiamente utilizzate - possiamo rendere involontariamente due spazi dei nomi con nomi di classi identiche visibili e il compilatore rifiuterà di compilare a meno che il nome della classe non sia anteposto al qualificatore di namespace.Posso annullare l'effetto di "using namespace" in C++?
Posso annullare using namespace
in modo che il compilatore dimentichi di averlo visto in precedenza?
Scommetto che c'è davvero un brutto hack utilizzando il pre-processore per questo. Ma immagino che tu non voglia quello –
@Eli: Non c'è in Boost, il che probabilmente significa che non ce n'è uno. –
Una possibile soluzione per accorciare almeno ciò che è necessario digitare sarebbe '#define N namespace ::' nella parte superiore di un file e '#undef N' nella parte inferiore. Ovviamente questo significa che devi stare attento a non usare mai 'N' ovunque nel file che non vuoi' namespace :: '. Un 'typedef' potrebbe anche essere utile. – Yay295