我将一组旧的托管c ++代码移植到新语法中。我发现有这样的代码行。
bool __gc * bValue
我不确定它的作用以及如何将其转换为新语法。 这是我尝试过的,但似乎不正确。
bool ref ^ bValue
有人可以帮忙吗?
答案 0 :(得分:0)
在第一个代码片段中,__gc
指针是指向CLR堆中布尔值的托管指针。
来自MSDN:
由于常规C ++指针通常无法精确跟踪,因此引入了__gc指针。它们是变量为公共语言运行时垃圾收集器所知的指针。转换__gc指针的规则比标准C ++指针的规则要严格得多
在C ++ / CLI中ref
关键字只能用于声明托管类或结构。因此,您应该从第二个代码段中删除ref
关键字。只有^
仍然存在,因为它是一个托管指针。
bool^ bValue;