【发布时间】:2014-08-06 07:03:43
【问题描述】:
Microsofts C++/CLI 是在 C++ 标准(C++98 或 C++11)之上构建的,还是只是“相似”并且存在偏差?
或者,具体来说,是否每个符合 ISO 标准的 C++ 程序(C++98 或 C++11)也是符合 C++/CLI 的程序?
注意:我将上面的 Wikipedia 文章解释为仅将 C++/CLI 与 MC++ 进行比较,而不是与 ISO 标准 C++ 进行比较。
【问题讨论】:
-
我不得不使用它一次并且不喜欢这种体验。 (最后我选择了 Java / JNI 路线而不是 C#)。我会说这是一个偏差。在我看来,
^指针的内容很粗俗,并且与 C++11 的std::shared_ptr不相称。你第二段的答案肯定是否定的。 -
@Bathsheba 从我对维基百科文章的粗略阅读来看,
^ptr可能与*ptr不同,就像托管与非托管一样。比如!Finalizer和~Destructor。两者仍然可以在 Std-C++ 之上。感谢您的美丽评论,但我的问题与美丽无关;-) -
@Bathsheba shared_ptr 在您为它编写适当的适配器后,在 CLI 程序中工作得很好。例如 std::function 也是如此。一旦你有了一些适配器/转换样板代码,CLI 的体验并不是那么糟糕:那么它是迄今为止最简单的桥接 .Net 和 C++ 应用程序的方法 - 话虽如此,后者也是我的唯一原因会考虑再次使用 CLI,它擅长于此,但对于其余部分,它更像 meh