Partager via


using, directive (C++)

La directive using permet aux noms dans namespace d'être utilisés sans le qualificateur explicite namespace-name. Naturellement, le nom complet et qualifié peut toujours être utilisé pour améliorer la lisibilité.

using namespace [::] [ nested-name-specifier ] namespace-name

Notes

Notez la différence entre la directive using et la déclaration using declaration : the using: la déclaration permet à un nom individuel d'être utilisé sans qualification, tandis que la directive using autorise tous les noms d'un espace de noms à être utilisés sans qualification. Ce mot clé est également utilisé pour type aliases.

Si une variable locale a le même nom qu'une variable de l'espace de noms, la variable de l'espace de noms est masquée. Il est erroné d'avoir une variable de l'espace de noms portant le même nom qu'une variable globale.

Notes

Mettez votre directive using au début du fichier de code source pour réduire le risque potentiel d'un comportement inattendu avec IntelliSense.

L'espace de noms std

La norme ANSI/ISO C++ vous oblige à déclarer explicitement l'espace de noms dans la bibliothèque standard. Par exemple, lors de l'utilisation d'iostream, vous devez spécifier l'espace de noms de cout de l'une des façons suivantes :

  • std::cout (explicitly)

  • using std::cout (declarationusing )

  • using namespace std (directiveusing )

/clr

L'exemple suivant montre la façon de permettre aux noms d'un espace de noms de bibliothèque de classes de base .NET Framework d'être utilisés sans le nom de l'espace de noms comme qualificateur explicite.

// using_directive.cpp
// compile with: /c /clr
using namespace System::Reflection;
[assembly:AssemblyDescriptionAttribute("test")];

Exemple

// using_directive2.cpp
// compile with: /EHsc
#include <iostream>

int main() {
   std::cout << "Hello ";
   using namespace std;
   cout << "World." << endl;
}
  

Voir aussi

Référence

Espaces de noms (C++)

Mots clés C++