using – direktiva (C++)
Direktiva using umožňuje používat názvy z oboru názvů bez názvu oboru názvů jako explicitního kvalifikátoru.Samozřejmě pro lepší čitelnost může být stále použit úplný kvalifikovaný název.
using namespace [::] [ nested-name-specifier ] namespace-name
Poznámky
Všimněte si rozdílu mezi direktivou using a deklarací using: deklarace using umožňuje použití jednoho názvu bez kvalifikace, direktiva using umožňuje použití všech názvů z oboru názvů bez kvalifikace.Toto klíčové slovo se také používá pro zástupné typy.
Pokud má lokální proměnná stejný název jako proměnná oboru názvů, je proměnná obor názvů skryta.Jedná se o chybu, pokud má proměnná oboru názvů stejný název jako globální proměnná.
[!POZNÁMKA]
Vložte direktivu using na začátek souboru zdrojového kódu, pro snížení rizika neočekávaného chování s technologií IntelliSense.
Obor názvů std
Standard ANSI/ISO C++ vyžaduje, aby byl obor názvů explicitně deklarován ve standardní knihovně.Například při použití iostream je nutné zadat obor názvů cout jedním z následujících způsobů:
std::cout (explicitly)
using std::cout (deklarace using)
using namespace std (direktiva using)
/clr
Následující příklad ukazuje, jak povolit použití názvů z oboru názvů knihovny základních tříd rozhraní .NET Framework bez názvu oboru názvů jako explicitního kvalifikátoru.
// using_directive.cpp
// compile with: /c /clr
using namespace System::Reflection;
[assembly:AssemblyDescriptionAttribute("test")];
Příklad
// using_directive2.cpp
// compile with: /EHsc
#include <iostream>
int main() {
std::cout << "Hello ";
using namespace std;
cout << "World." << endl;
}