__gc *到新的管理c ++语法

时间:2015-03-23 02:18:47

标签: c++ visual-c++ clr

我将一组旧的托管c ++代码移植到新语法中。我发现有这样的代码行。

bool __gc * bValue

我不确定它的作用以及如何将其转换为新语法。 这是我尝试过的,但似乎不正确。

bool ref ^ bValue

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

在第一个代码片段中,__gc指针是指向CLR堆中布尔值的托管指针。

来自MSDN

  

由于常规C ++指针通常无法精确跟踪,因此引入了__gc指针。它们是变量为公共语言运行时垃圾收集器所知的指针。转换__gc指针的规则比标准C ++指针的规则要严格得多

在C ++ / CLI中ref关键字只能用于声明托管类或结构。因此,您应该从第二个代码段中删除ref关键字。只有^仍然存在,因为它是一个托管指针。

bool^ bValue;