With using namespace
I make the whole contents of that namespace directly visible without using the namespace qualifier. This can cause problems if using namespace
occurs in widely used headers - we can unintendedly make two namespaces with identical classes names visible and the compiler will refuse to compile unless the class name is prepended with the namespace qualifier.
Can I undo using namespace
so that the compiler forgets that it saw it previously?
#define N namespace::
at the top of a file and#undef N
at the bottom. Of course this then means you have to be careful to never useN
anywhere in the file you don't wantnamespace::
to be. Atypedef
could potentially be useful as well. – Forespent