C ++ CLI是C ++的超集吗?

时间:2008-10-07 18:10:03

标签: c++ clr c++-cli superset

C ++ CLI编译器是否能够在不进行修改的情况下编译一些大型C ++类?

C ++ CLI是C ++的超集吗?

6 个答案:

答案 0 :(得分:10)

根据Wikipedia

  

C ++ / CLI应该被认为是它自己的语言(例如,使用一组新的关键字),而不是面向C ++超集的托管C ++

答案 1 :(得分:4)

技术上没有,但根据C ++代码的标准,你可能会很好。当你进入Windows的东西时,你可能会遇到问题。我编译了我们在C ++ / CLI工作时使用的整个游戏引擎,它运行得很好。一位同事为所有的mozilla做了同样的事情而没有这样的运气。

答案 2 :(得分:2)

我在C ++ / CLI上的学习曲线仍然是新的 - 但我自己也有同样的问题,到目前为止我所确定的是C ++ / CLI作为一种语言,是一个超集的标准C ++。

如果您不使用CLI扩展,您的C ++代码最终将作为本机非托管代码,并且应该基本相同,但编译为CLR IL,而不是本机x86。

一旦开始使用CLI扩展(并开始使用对象/句柄/托管类),您就会开始更深入地与底层CLR平台进行交互。那时,它基本上变成了一种新的“语言”,你必须将你的想法分开在“非管理”方面和“管理方”方面。

答案 3 :(得分:2)

C ++ / CLI不是C ++的超集。它是一个有附加功能的子集。例如。 C ++ / CLI不支持多重继承。

安吉洛

答案 4 :(得分:1)

Marcus Heege的书“用于Visual C ++程序员的专家C ++ / CLI.NET”指出:

  

C ++ / CLI是一组扩展   C ++语言受益于   服务即执行   CLI提供。

然后在同一页面上:

  

C ++ / CLI是C ++语言的超集。

他的优秀书籍可从here免费获得。

答案 5 :(得分:1)

我能够将整个Qt库(这是巨大的)编译为带有次要修改的C ++ / CLI(主要在构建环境中,但也修复了Qt源代码中的一个错误)