我没有看到任何真正的优势,除了你有一个C++语法,以及它,像指针和析构函数.
如果你在谈论为什么要使用C++/CLI而不是C#,我认为主要原因是:
对于C++开发人员来说可能更自然(尽管我认为这可能不是真的)
C++/CLI具有非常好的功能,可以桥接本机和托管环境(使用'IJW' - It Just Works - 技术)
我认为Herb Sutter可能会给出最好的概述:
C++/CLI的设计原理
如果你想知道为什么你可能想要使用原生C++而不是C#/ .NET,这可以归结为为什么你需要一个托管环境(安全,更容易开发)而不是本机代码(绝对控制,可能是速度优势).每个都有争论,答案实际上取决于你想要发展什么以及你的市场可能是什么.
我认为你指的是C++/CLI并将它与C#进行比较.C++/CLI不是C++的"味道".它是一种全新的语言,具有完全不同的标准库和完全不同的约定.
在工作中我们发现C++/CLI作为C++和.NET之间的粘合语言很有价值,但我们不会将它用于除界面粘合之外的任何东西 - 在所有其他应用程序中,C#比C++具有巨大的优势.
如果你指的是像亚当描述的那样的MS C++扩展,那么没有理由不使用它们,如果它们使你的工作更容易.