Platform, default, and cli Namespaces (C++ Component Extensions)

 

For the latest documentation on Visual Studio 2017, see Visual Studio 2017 Documentation.

A namespace qualifies the names of language elements so the names do not conflict with otherwise identical names elsewhere in the source code. For example, a name collision might prevent the compiler from recognizing Context-Sensitive Keywords. Namespaces are used by the compiler but are not preserved in the compiled assembly.

Visual C++ provides a default namespace for your project when you create the project. You can manually rename the namespace, although in Windows Runtime the name of the .winmd file must match the name of the root namespace.

For more information, see Namespaces and type visibility (C++/CX).

Requirements

Compiler option: /ZW

Syntax

using namespace cli;  

Remarks

The C++/CLI supports the cli namespace. When compiling with /clr, the using statement in the Syntax section is implied.

The following language features are in the cli namespace:

Requirements

Compiler option: /clr

Examples

Example

The following code example demonstrates that it is possible to use a symbol in the cli namespace as a user-defined symbol in your code. However, once you have done so, you will have to explicitly or implicitly qualify your references to the cli language element of the same name.

// 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);  
}  

Component Extensions for Runtime Platforms

Show: