Estou usando a declaração 'usando' em C ++ para adicionar std :: string e std :: vector ao namespace local (para evitar a digitação desnecessária de 'std ::' s).
using std::string;
using std::vector;
class Foo { /*...*/ };
Qual é o escopo desta declaração? Se eu fizer isso em um cabeçalho, ele injetará essas declarações de 'uso' em cada arquivo cpp que inclua o cabeçalho?
using
declaração (a fortiori directiva ) em um cabeçalho em tudo , mesmo dentro de um namespace! Consulte o escopo do uso da declaração em um namespace para ver os problemas que isso causa.
using
escopo de classe e função é seguro em relação ao problema discutido.
using
declaração (ouusing
diretiva) no escopo do arquivo em um arquivo / cabeçalho de inclusão! Isso causará dores de cabeça para os usuários do cabeçalho.