在多年缺席支持 C# 之后,我刚刚回到 C++ 为 Windows 8/RT 的游戏相关项目。
在使用生成的 Game Project Skeleton 时,我偶然发现了如下所示的方法签名。谁能告诉我 ^ 应该做什么?
Concurrency::task<Platform::Array<byte>^> ReadDataAsync(Platform::String^ filename)
在多年缺席支持 C# 之后,我刚刚回到 C++ 为 Windows 8/RT 的游戏相关项目。
在使用生成的 Game Project Skeleton 时,我偶然发现了如下所示的方法签名。谁能告诉我 ^ 应该做什么?
Concurrency::task<Platform::Array<byte>^> ReadDataAsync(Platform::String^ filename)
在 C++/CX 中,aT^
是T
对象的句柄。它实际上是一个智能指针,拥有对指向对象的引用,编译器提供了一些额外的额外功能。
显然它被称为对象句柄操作符。
对象句柄运算符 ^ 被称为“帽子”,基本上是 C++ 智能指针。当最后一个帽子超出范围或明确设置为 nullptr 时,它指向的内存会自动销毁。
根据:https ://msdn.microsoft.com/en-us/library/hh699870.aspx 。(来自该页面的“内存管理”部分。