1

纯 C++ 是什么意思?请解释 C++ 的不同版本,如 Visual C++ 和 GNU C++。

这些类型的 C++ 的编译器怎么样?

4

4 回答 4

9

纯 C++ 意味着根据 ISO 标准的 C++,没有使用任何供应商特定的扩展。

这意味着它应该可以在支持该标准的所有实现中移植。否则,您可能会发现自己被锁定在特定的供应商中,这不一定是件坏事,但您应该了解该决定的含义。

于 2012-04-09T05:48:24.173 回答
3

纯 C++ 是 C++ 的一种形式,它仅使用 ISO C++ 标准定义的语义。
纯 C++ 中实现的代码在所有标准编译 C++ 编译器中是完全可移植的。

允许实现对 C++ 标准提供的功能提供自己的扩展。每个编译器都以编译器扩展的形式提供。

因此,

纯 C++ = 标准 C++ 提供的功能
Visual C++ = 标准 C++ + MSVC 编译器扩展提供的功能。
GNU C++ = 标准 C++ + GNU 编译器扩展提供的功能。

于 2012-04-09T05:48:54.493 回答
2

没有“纯 C++”之类的东西。要么是 C++,要么不是。有一些公司已经对 C++ 进行了扩展,它们有像“WinMain”这样的新关键字,它们不是 C++ 标准的一部分。也许这就是你所指的。

于 2012-04-09T05:49:20.910 回答
0

Stanley Lipman 在http://msdn.microsoft.com/en-us/magazine/cc163852.aspx描述了微软为他们的 C++/CLI 混合发明的术语:

C++/CLI 代表了 Kansas 和 Oz 的原生和托管编程的集成。在这个迭代中,这是通过一种独立但平等的源级和二进制元素社区完成的,包括混合模式(本机和 CTS 类型的源级混合,加上本机和 CIL 目标文件的二进制混合),纯模式(本机和 CTS 类型的源级混合,全部编译为 CIL 对象文件)、本机类(只能通过特殊的包装类保存 CTS 类型)和 CTS 类(只能将本机类型作为指针保存)。

因此,Microsoft 世界中的“纯”C++ 是专有功能和 ISO 标准 C++ 功能的特定组合的术语

斯坦利的描述将其与“原生”区分开来 - 这与该问题的其他现有答案描述为“纯”相匹配。在这个词的一般英语用法中,“纯”当然是“原生”= ISO 标准。从表面上看,微软选择了一个明显具有误导性的术语,这样人们可能会在不知不觉中将自己和他们的代码锁定为使用专有的微软扩展,因此在以后尝试将它们移植到其他操作系统时会感到沮丧.

术语 C++,如 Visual C++ 和 GNU C++。这些类型的 C++ 的编译器怎么样。

Visual C++ 是 Microsoft 的 C++ 和 C++/CLI 编译器的品牌名称。GNU 是一个生产无数开源软件产品的组织,其中包括 GCC - GNU 编译器集合,其中包括一个 C++ 编译器。

于 2012-04-09T06:32:11.490 回答