所有标准C ++功能都可以在C ++ / CLI中使用吗?

时间:2009-10-24 19:15:55

标签: .net c++ c++-cli

如果我只是在C ++ / CLI程序中包含现有的标准C ++类,它会起作用吗?

在我的测试中,一切都很好,但每个程序都是如此吗?

2 个答案:

答案 0 :(得分:5)

如果您实际将类更改为托管(gc)类,那么不会,它有时会中断。特别是,删除操作符的语义被更改,因为对象现在由垃圾收集器管理;删除对象可能不会释放任何内存。

答案 1 :(得分:3)

这是微软承诺的,是的。 (我昨天看了this video,他们在其中明确提到了这一点 - 特别是因为在C ++ 0x中添加nullptr会对其造成损害。

所以,是的,如果您使用本机C ++程序并将其编译为C ++ / CLI,并且没有代码更改,那么是的,它仍然有效。

当然,如果您更改了代码(gcnew而不是新的和其他“托管”更改,当然,所有赌注都已关闭,您可能会或可能不会破坏代码)