J'utilise la déclaration «using» en C ++ pour ajouter std :: string et std :: vector à l'espace de noms local (pour éviter de taper des «std ::» inutiles).
using std::string;
using std::vector;
class Foo { /*...*/ };
Quelle est la portée de cette déclaration? Si je fais cela dans un en-tête, injectera-t-il ces déclarations «using» dans chaque fichier cpp qui inclut l'en-tête?
usingdéclaration (a fortiori directive ) dans un en- tête du tout , même dans un espace de noms! Voir la portée de la déclaration d'utilisation dans un espace de noms pour les problèmes que cela provoque.
usingdans la portée de la classe et de la fonction est sûre par rapport au problème discuté.
usingdéclaration (ouusingdirective) à la portée du fichier dans un fichier / en-tête d'inclusion! Cela causera des maux de tête aux utilisateurs de l'en-tête.