Sto usando la dichiarazione "using" in C ++ per aggiungere std :: string e std :: vector allo spazio dei nomi locale (per evitare di digitare "std ::" non necessari).
using std::string;
using std::vector;
class Foo { /*...*/ };
Qual è lo scopo di questa dichiarazione? Se lo faccio in un'intestazione, inietterà queste dichiarazioni di "utilizzo" in ogni file cpp che include l'intestazione?
usingdichiarazione (a maggior ragione direttiva ) in un colpo di testa a tutti , anche all'interno di uno spazio dei nomi! Vedere l' ambito di utilizzo della dichiarazione all'interno di uno spazio dei nomi per i problemi che ciò causa.
usingin ambito di classe e funzione è sicuro per quanto riguarda il problema discusso.
usingdichiarazione (ousingdirettiva) nell'ambito del file in un file / intestazione di inclusione! Ciò causerà mal di testa agli utenti dell'intestazione.