Can I undo the effect of "using namespace" in C++?

c++, namespaces, using

Solution

No, but you can tell your coworkers that you should never have a `using` directive or declaration in a header.

Problem

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?

Original source