using ディレクティブ (C++ のみ)

using ディレクティブは、すべての名前空間修飾子およびスコー プ演算子へのアクセスを可能にします。 これは、using キーワードを名前空間 ID に適用することによって行われます。

構文図を読む構文図をスキップする
using ディレクティブの構文

>>-using--namespace--name--;-----------------------------------><

name は、前に定義された名前空間でなければなりません。 using ディレクティブは、グローバルおよびローカルのスコープで適用できますが、 クラス・スコープでは適用できません。 ローカル・スコープは、例外を使用して類似の宣言を隠蔽することによって、グローバル・スコープに優先します。

非修飾名参照では、スコープが、2 番目の名前空間を指名する using ディレクティブを含み、さらにその 2 番目の名前空間が別の using ディレクティブを含む場合、2 番目の名前空間の using ディレクティブは、1 番目のスコープ内にあるかのように動作します。
namespace A {
  int i;
}
namespace B {
  int i;
  using namespace A;
}
void f()
{
  using namespace B;
  i = 7; // error
}
この例で、関数 f() 内で i を初期化しようとすると、 コンパイル時エラーを生じます。なぜなら、関数 f() は、どの i を呼び出すのか、つまり名前空間 A から i を呼び出すのか、 または名前空間 B から i を呼び出すのか、 を知らないからです。