среда выполнения Windows — значение переменных ^ в C ++ / CX

Я только что вернулся на C ++ для игрового проекта для Windows 8 / RT после многих лет отсутствия в пользу C #.

Работая с сгенерированным игровым проектом Skeleton, я наткнулся на сигнатуры методов, подобные приведенной ниже. Может ли кто-нибудь просветить меня, что должен делать …

Concurrency::task<Platform::Array<byte>^> ReadDataAsync(Platform::String^ filename)

7

Решение

В C ++ / CX T^ это ручка для T объект. По сути, это умный указатель, которому принадлежит ссылка на объект, на который указывает указатель, с некоторыми дополнительными дополнительными функциями, предоставляемыми компилятором.

Вы можете узнать все о шляпах в статье, «Типы, которые носят шляпы».

6

Другие решения

По-видимому, это называется оператором дескриптора объекта.

Оператор дескриптор-объект ^ известен как «шляпа» и по сути является интеллектуальным указателем C ++. Память, на которую он указывает, автоматически уничтожается, когда последняя шляпа выходит из области видимости или явно устанавливается на nullptr.

В соответствии с: https://msdn.microsoft.com/en-us/library/hh699870.aspx.
(Из раздела «Управление памятью» на этой странице.

0

^ Символ — это дескриптор объекта.

Например String^ s; объявляет дескриптор объекта String.

http://en.wikipedia.org/wiki/C%2B%2B/CLI#Handles

-1