You could no longer do this
namespace { typedef int a; ::ax; }
Note that in the following namespace { ... } , you might unexpectedly. That would be terribly inconsistent.
Also notice this case with two different valid results
namespace A { void f(long); } using namespace A; namespace { void f(int); void g() { ::f(0); } }
With ISO C ++, this invokes the int f version. With your alternative definition, it invokes the long version.
Johannes Schaub - litb
source share