深入浅出C++11(1)

来源:互联网 发布:mdict mac版 编辑:程序博客网 时间:2024/04/28 11:18

C++标准

C++真正正式公布的标准就三个:
  • C++98: 第一个正式C++标准;
  • C++03: 在C++98上面进行了小幅度的修订;
  • C++11: 一次全面的大进化(之前称C++11为C++0x,以为会在08~09年公布,没想到拖到了11年)。
注1: 其实C++在第一个标准C++98之前就已经广为使用了。只不过那时候还没有一个官方的统一标准,后来才开始起草标准草案,起草了n年,直到98年才最终发布。(所以你可以看到一些早期的C++编译器对标准的支持程度很差,比如经典的VC6.0,在研发的时候C++的第一个标准还没公布呢)。
注2: 至于什么C89、C99这些,是C语言的标准,不是C++的标准,很容易被一些人混淆注3: 三个c++标准,(ISO/IEC 14882:1998),  (ISO/IEC 14882:2003),(ISO/IEC 14882:2011)注4:C++14是C++的下一版标准的非正式名称,C++14计划作为C++11的一个小扩展,主要内容是漏洞修复和小的改进(C++14标准的委员会草案N3690于2013年5月15日发表)

C++11

  • C++11,也称为C++0x为目前C++编程语言的最新正式标准(ISO/IEC 14882:2011)。
  • C++11包含了核心语言的新机能,并且拓展C++标准程序库,并且加入了大部分的C++ Technical Report 1程序库。

在发展新标准的每个机能上,委员会采取了几个方向:

  • 维持与C++98,可能的话还有C之间的稳定性与兼容性;
  • 尽可能不通过核心语言的扩展,而是通过标准程序库来引进新的特色;
  • 能够演进编程技术的变更优先;
  • 改进 C++ 以帮助系统以及库设计,而不是引进只针对特别应用的新特色;
  • 增进类型安全,提供对现行不安全的技术更安全的替代方案;
  • 增进直接对硬件工作的能力与表现;
  • 提供现实世界中问题的适当解决方案;
  • 实行“zero-overhead”原则(某些功能要求的额外支持只有在该功能被使用时才能使用);
  • 使C++易于教授与学习

C++核心语言的扩充:

  • 运行期表现强化
  • 建构期表现强化
  • 可用性强化
  • 还有新的功能

C++标准程序库的变更:

  • 标准库组件上的升级
  • 线程支持
  • 多元组类型
  • 散列表
  • 正则表达式
  • 通用智能指针
  • 可扩展的随机数功能
  • 包装引用
  • 多态函数对象包装器
  • 用于元编程的类型属性
  • 用于计算函数对象返回类型的统一方法


原创粉丝点击