C++标准库2nd 学习摘要Chapter2(一)

来源:互联网 发布:人工智能威胁论 提出人 编辑:程序博客网 时间:2024/05/18 01:45

C++标准的历史

  1. C++98 首个C++标准,官方称之为:Information Technology-Programming Languages-C++,ISO/IEC 14882:1998
  2. C++03 对C++98少量的修改,IOS/IEC 14882:2003
  3. TR1   扩展前面两个版本,官方称之为:Information Technology-Programming Languages-Technical Report on C++ Library Extension,ISO/IEC TR 19768:2007,扩展部分包含在命名空间std:tr1中
  4. C++11 对语言及库都有重大的改善,官方称之为:Information Technology-Programming Languages-C++,ISO/IEC 14882:2011

C++11 及 C++98 兼容性

C++11 兼容 C++98 ,理论上能够以C++98编译的程序都能够由C++11编译,当然需要修复该程序引入了C++11的关键字的问题

   为了使程序能够在不同版本的C++编译器编译并利用C++11的一些优秀特征,可以判断 __cplusplus 的值

   对于C++11, 有 #define __cplusplus 201103L 成立

   对于C++98,C++03 有 #define __cplusplus 199711L 成立

   然而,__cplusplus 的值并不如上所述,因为编译器有时候会提供不同的值

   需要注意的是:向后兼容只是对源代码编译来说的,二进制并不能够保证被兼容,因此链接一个由C++11编译的代码与C++98编译的代码将可能失败,特别是出现如下情况,C++11对已存在的操作符返回了不同的类型,链接时存在两个版本,仅返回值类型不同,而C++中,仅靠返回值类型来区分重载是不允许的

 

0 0
原创粉丝点击