Platform、default 和 cli 命名空间(C++ 组件扩展)
命名空间隐式地符合语言元素的名称,因此名称与现有的源代码中用户定义的符号不冲突。
所有的运行库
Visual c + + 提供单独的命名空间组相似的数据类型在 C + + /cli CX 和C++/CLI。命名空间可以避免名称冲突的相同符号之间。例如,名称冲突可能会阻止编译器识别上下文相关的关键字(C++ 组件扩展)。
Windows 运行时
声明命名空间,您希望使用与下列应用程序中的using namespace指令。
语法
using namespace Platform;
using namespace default;
备注
Platform和default命名空间。
C + + /cli CX 支持以下的数据类型,在Platform命名空间:
WriteOnlyArray
C + + /cli CX 支持以下语言功能,在default命名空间。
The fundamental types int8, uint8, int16, uint16, int32, uint32, int64, uint64, float32, and float64.C++/CXalso supports the standard C++ types, bool, char, float, and double.
要求
编译器选项:/ZW
示例
示例
下面的代码示例使用Platform命名空间限定Array模板,和default命名空间限定int16基本类型。int16类型等价于short。
要测试该示例,请创建一个 BlankApplication 项目、 替换的 BlankPage::OnNavigatedTo() 方法,然后指定断点在右括号和赋值语句的分支,则返回 true 和 false if语句。当您调试示例时,请检查已分配的数组元素。
该代码将声明隐式地符合Array与Platform命名空间和int与default命名空间。
MyArray2 声明显式限定Array与Platform命名空间和int16与default命名空间。
带有注释的一个整数变量声明名为"数组"后,将出现在 MyArray3 声明。如果您删除批注,您将需要使用全局作用域运算符 (::) 指定的名称"数组"适用于Array模板并不是变量。
void BlankPage::OnNavigatedTo(NavigationEventArgs^ e)
{
// cwrt_namespace.cpp
// compile with: /ZW
using namespace Platform;
using namespace default;
Array<int>^ MyArray = ref new Array<int>(100);
Platform::Array<::default::int16>^ MyArray2 = ref new Platform::Array<int16>(100);
// int Array = 0;
::Array<short>^ MyArray3 = ref new ::Array<short>(100);
MyArray[1] = 1;
MyArray2[2]= 2;
MyArray3[3]= 3;
bool arraysAssigned = false;
if ((MyArray[1] == 1) && (MyArray2[2] == 2) && (MyArray3[3] == 3))
arraysAssigned = true;
else
arraysAssigned = false;
}
公共语言运行时
语法
using namespace cli;
备注
C++/CLI支持cli命名空间。与编译时**/clr**、 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);
}