It\'s possible to do using namespace foo::bar;
(i.e., using the inner namespace without using the outer namespace first / at all), why does the standard forbid to d
I'm not sure "forbidden" is the right word - maybe it was just an oversight. It's a fairly small nice-to-have which isn't really a big deal.
You could also take the point of view that the namespace foo
isn't created yet when you write foo::bar
, so allowing that syntax makes it look like foo
was already created when it was not.
You could also go further and request the ability to write class Foo::MyClass {...
to define MyClass
in namespace Foo
, and the same for functions, variables, etc. But is this feature really necessary and solving any particular pressing problem?