użycie Dyrektywy (C++)
Dyrektywa using pozwala nazwom w przestrzeni nazw na używanie bez nazwy obszaru nazw jako jawnego kwalifikatora.Oczywiście pełna, kwalifikowana nazwa nadal może być używana w celu poprawy czytelności.
using namespace [::] [ nested-name-specifier ] namespace-name
Uwagi
Należy zauważyć różnicę między dyrektywą using i deklaracją using : deklaracja using pozwala indywidualnej nazwie na bycie używaną bez kwalifikacji, dyrektywa using pozwala wszystkim nazwom w przestrzeni nazw na bycie używanym bez kwalifikacji.To słowo kluczowe jest używane także do aliasów typu.
Jeśli zmienna lokalna ma taką samą nazwę jak zmienna obszaru nazw, zmienna obszaru nazw jest ukrywana.Błędem jest posiadanie zmiennej przestrzeni nazw z taką samą nazwą jak zmienna globalna.
[!UWAGA]
Należy umieścić dyrektywę using na początku pliku z kodem źródłowym, aby uniknąć nieoczekiwanego zachowania technologii IntelliSense.
Przestrzeń nazw std
Standard ANSI/ISO C++ wymaga jawnej deklaracji przestrzeni nazw w bibliotece standardowej.Na przykład, korzystając z iostream, należy określić obszar nazw cout na jeden z następujących sposobów:
std::cout (explicitly)
using std::cout (deklaracja using)
using namespace std (dyrektywa using)
/clr
Poniższy przykład pokazuje jak umożliwić nazwom w przestrzeni nazw biblioteki klas podstawowych .NET Framework na bycie używanym bez nazwy przestrzeni nazw jako jawnego kwalifikatora.
// using_directive.cpp
// compile with: /c /clr
using namespace System::Reflection;
[assembly:AssemblyDescriptionAttribute("test")];
Przykład
// using_directive2.cpp
// compile with: /EHsc
#include <iostream>
int main() {
std::cout << "Hello ";
using namespace std;
cout << "World." << endl;
}