什么是纯C++
What is pure C++
纯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++编译器。
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 警告处理为错误这里有什么问题
- 什么时候调用组成单元对象的析构函数
- #定义c-预处理器常量..我做错了什么
- 努力将整数转换为链表。不知道我在这里做错了什么
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 什么时候在C++中返回常量引用是个好主意
- 当在同一名称空间中有两个具有相同签名的函数时,会发生什么
- C++避免重复声明的语法是什么
- c++库的公共头文件中应该包含什么
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 有什么方法可以遍历结构吗
- 当类在C++中定义时,有什么方法可以"register"类吗?
- ifstream什么都没读
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- C++从另一个类访问公共静态向量的正确方法是什么
- "throw expression code" 1e7 >返回 d 是什么?投掷标准::overflow_error( "too big" ) : d;意味 着?
- 我应该使用什么来代替void作为变体中的替代类型之一
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用