无效C++/CLI的ISO C++代码示例

Joh*_*itb 5 .net c++ compatibility c++-cli

我在互联网上看到了关于C++/CLI是否是C++超集的矛盾答案.

关于这个问题的公认答案声称"技术上没有",但没有提供符合ISO C++的非C++/CLI代码示例.关于这个问题的另一个答案引用了一本相反的书.

那么,您能否提供准确的答案,其中包含在C++/CLI上失败的示例代码或引用可靠来源(例如MSDN)?

我今天有人提出这个话题,并且我想告诉自己,但我没有在其他地方找到任何明确的答案!

Jam*_*lis 9

有效的C++,无效的C++/CLI:

int main()
{
    int gcnew = 42;
}
Run Code Online (Sandbox Code Playgroud)

gcnew,generic和,nullptr都是C++/CLI中的保留字; nullptr当然,在C++ 0x中并不是真正的问题.Herb Sutter 在2003年发表了关于C++/CLI关键词的博客.

值得一提的是,当我处理大型混合代码库(包括C++和C++/CLI)时,我从未遇到过像这样的语法问题或琐碎的问题.C++/CLI的巨大问题(当然,我认为)是本机代码和托管代码具有完全不同的资源管理范例,编写混合代码以忘记某些事物所需的范例时,这非常容易.我修复了许多错误,这些错误是由于假设托管资源被确定性销毁或者垃圾收集器清理了本机资源.