Я не уверен, что слово "запрещено" - правильное слово - возможно, это был просто недосмотр. Это довольно маленький, приятный, что не имеет большого значения.
Вы также можете принять точку зрения, что пространство имен foo
еще не создано, когда вы пишете foo::bar
, поэтому разрешение этого синтаксиса делает его похожим на foo
, которое уже было создано, когда его не было.
Вы также можете пойти дальше и запросить возможность написать class Foo::MyClass {...
для определения MyClass
в пространстве имен Foo
, и то же самое для функций, переменных и т. Д. Но действительно ли эта функция необходима и решает какую-либо конкретную насущную проблему?