プラットフォーム、既定、および cli 名前空間 (C++ コンポーネント拡張)
言語要素の名前は名前空間によって修飾されるため、それ以外は同じである名前と、ソース コードの別の部分で競合することはありません。 たとえば、名前が競合すると、コンパイラで状況依存のキーワード (C++ コンポーネント拡張)を認識できなくなる場合があります。 名前空間はコンパイラによって使用されますが、コンパイルされたアセンブリでは保持されません。
すべてのランタイム
Visual C++ では、プロジェクトの作成時に、既定の名前空間がプロジェクトに与えられます。 名前空間の名前は手動で変更できますが、Windows ランタイム では、.winmd ファイルの名前が、ルート名前空間の名前と一致する必要があります。
Windows ランタイム
詳細については、「名前空間と型の参照範囲」を参照してください。
要件
コンパイラ オプション: /ZW
共通言語ランタイム
構文
using namespace cli;
解説
C++/CLI は cli 名前空間をサポートしています。 /clr を指定してコンパイルする場合、Syntax セクションの using ステートメントが適用されます。
次の言語機能は、cli 名前空間に含まれます。
要件
コンパイラ オプション: /clr
例
例
次のコード例は、cli 名前空間のシンボルをユーザー定義シンボルとしてコードで使用できることを示します。ただし、この場合は、同じ名前の cli 言語要素への参照を明示的または暗黙的に修飾する必要があります。
// cli_namespace.cpp
// compile with: /clr
using namespace cli;
int main() {
array<int> ^ MyArray = gcnew array<int>(100);
int array = 0;
array<int> ^ MyArray2 = gcnew array<int>(100); // C2062
// OK
cli::array<int> ^ MyArray2 = gcnew cli::array<int>(100);
::array<int> ^ MyArray3 = gcnew ::array<int>(100);
}