什么是纯C++

What is pure C++

本文关键字:C++ 什么      更新时间:2023-10-16

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

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

纯C++表示C++符合ISO标准,不使用任何特定于供应商的扩展。

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

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

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

因此

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

没有"纯C++"这样的东西。要么C++要么不是。有一些公司已经对C++进行了扩展,这些关键字具有新的关键字,例如"WinMain",这些关键字不属于C++标准的一部分。也许这就是你所指的。

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

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

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

Stanley的描述将其与"本地"区分开来 - 这与这个问题的其他现有答案所描述的"纯"相匹配。 在这个词的一般英语用法中,"pure"当然是"native"=ISO标准。 表面上,Microsoft选择一个公然误导性的术语,因此关注"纯C++"教程/参考的人可能会在不知不觉中将自己和他们的代码锁定为使用专有Microsoft扩展,因此在以后尝试将它们移植到其他操作系统时感到沮丧。

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

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