Estoy usando la declaración 'using' en C ++ para agregar std :: string y std :: vector al espacio de nombres local (para evitar escribir innecesarios 'std ::' s).
using std::string;
using std::vector;
class Foo { /*...*/ };
¿Cuál es el alcance de esta declaración? Si hago esto en un encabezado, ¿inyectará estas declaraciones de 'uso' en cada archivo cpp que incluya el encabezado?
usingdeclaración ( directiva a fortiori ) en un encabezado en absoluto , ¡ incluso dentro de un espacio de nombres! Consulte el alcance de la declaración de uso dentro de un espacio de nombres para conocer los problemas que esto causa.
usingen el alcance de la función y la clase es seguro con respecto al problema discutido.
usingdeclaración (ousingdirectiva) en el alcance del archivo en un archivo / encabezado de inclusión! Eso causará dolores de cabeza a los usuarios del encabezado.