Con using namespace
hago que todo el contenido de ese espacio de nombres sea visible directamente sin utilizar el calificador del espacio de nombres. Esto puede causar problemas si using namespace
aparece en encabezados ampliamente utilizados: podemos hacer inintencionadamente dos espacios de nombres con nombres de clases idénticos visibles y el compilador se negará a compilar a menos que el nombre de clase se anteponga con el calificador del espacio de nombres.¿Puedo deshacer el efecto de "usar el espacio de nombres" en C++?
¿Puedo deshacer using namespace
para que el compilador olvide que lo vio anteriormente?
Apuesto a que hay un corte muy feo utilizando el procesador previo para esto. Pero supongo que no quiere eso –
@Eli: No hay en Boost, lo que probablemente significa que no hay uno. –
Una posible solución para al menos acortar lo que debe escribir sería ''definir N namespace ::' en la parte superior de un archivo y '#undef N' en la parte inferior. Por supuesto, esto significa que debe tener cuidado de no utilizar 'N' en ningún lugar del archivo que no desee que sea' namespace :: '. Un 'typedef' podría ser potencialmente útil también. – Yay295