c++ - significado - ¿Por qué está prohibido abrir múltiples espacios de nombres a la vez?
significado de namespace en programacion (2)
¿Por qué hacer que los compiladores lo implementen cuando podrías hacerlo?
namespace foo { namespace bar {
}}
Es posible hacerlo using namespace foo::bar;
(es decir, usar el espacio de nombres interno sin usar el espacio de nombres externo primero / en absoluto), ¿por qué el estándar prohíbe hacer lo siguiente?
namespace foo::bar {
// open nested namespace bar in foo and extend it...
}
No estoy buscando una solución alternativa, solo una posible explicación de por qué esto no está permitido.
No estoy seguro de que "prohibido" sea la palabra correcta, tal vez fue solo un descuido. Es un bien pequeño bastante agradable que no es realmente un gran problema.
También puede tomar el punto de vista de que el espacio de nombres foo
aún no se ha creado cuando escribe foo::bar
, por lo que al permitir que la sintaxis parezca que foo
ya estaba creado cuando no lo estaba.
También puede ir más allá y solicitar la capacidad de escribir la class Foo::MyClass {...
para definir MyClass
en el espacio de nombres Foo
, y lo mismo para funciones, variables, etc. ¿Pero es esta función realmente necesaria y está resolviendo algún problema de presión en particular?