编译器的相容性

来源:互联网 发布:centos如何安装mysql 编辑:程序博客网 时间:2024/04/30 10:45

2011年8月12日,ISO(国际标准化组织)批准了一个新的C++版本,称为C + + 11。C + + 11增加了一套新的功能在C + +语言!使用这些新功能,完全是可选的-但你无疑会发现其中一些有帮助的。我们将只覆盖的新功能的一部分在这里那些你最有可能实际使用

注意,因为C + + 11是新的(在写作的时候),只有现代编译器支持它,而他们中的大多数只支持部分。我将使用Visual Studio 2010样品码速成版。与其他的编译器的相容性可能会有所不同。如果您使用的是旧版本的Visual Studio现在是一个很好的时间来升级到Visual Studio 2010的表达即使它的C + + 11的支持参差不齐最好在写作的时候

C + + 11的目标和设计

Bjarne Stroustrup的C + + 11的目标特征

基于C++的优势而不是试图扩展C + +的领域的可能是(如Windows应用程序GUI)把重点放在做什么好,甚至更好

C + +更容易学习使用和教师提供的功能,使语言更一致和更容易使用

为此该委员会共同的语言试图遵循以下原则

保持稳定,与旧版本的C + +和C尽可能兼容。程序C + + 03一般应该还是C + + 11下工作

保持核心语言扩展的数量降到最低并将标准库中的变化的体积客观的不是好这个释放)

提高抽象机制(类,模板)而不是增加机制来处理特定的狭窄的情况

添加新手和专家的新功能。一个小什么人

增强型安全防止意外的错误

提高性能,并允许C++硬件直接工作

考虑可用性和生态问题。C + +需要与其他工具的工作容易使用和教导

由于C + + 11不是从C + + 03大的偏离,它真的不需要任何更多的介绍。我们就跳进新功能在下一课

统一的初始化

如上所述,C + + 03在如何让你将不同类型的数据是不一致的。初始化列表走很远的路去帮助使数据更加一致的初始化。然而,C++ 11有一个把戏袖子叫做统一的初始化。不像初始化列表采取的形式

1

数据元素类型变量= {}

统一的初始化语法有如下形式

1

{数据类型变量元素}//注意:没有赋值操作符

这种风格的初始化将普通的聚合数据类型的工作(结构和C样式数组)和类。下面的规则进行观察

如果有一个initialization_list适当类型的构造函数该构造函数使用

否则,的元素是使用适当的构造函数初始化


0 0
原创粉丝点击