什么是纯C ++

时间:2012-04-09 05:45:44

标签: c++

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

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

4 个答案:

答案 0 :(得分:8)

纯C ++是指符合ISO标准的C ++,没有使用任何特定于供应商的扩展。

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

答案 1 :(得分:3)

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

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

因此,

  

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

答案 2 :(得分:2)

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

答案 3 :(得分:0)

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

  

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

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

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

  

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

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