概述

 C++1x (本教程中指 C++11/14, 甚至 C++17) 为传统 C++ 注入的大量特性使得整个 C++ 变得更加像一门现代化的语言。C++1x 不仅仅增强了 C++ 语言自身的可用性,auto 关键字语义的修改使得我们更加有信心来操控极度复杂的模板类型。同时还对语言运行期进行了大量的强化,Lambda 表达式的出现让 C++ 具有了『匿名函数』的『闭包』特性,而这一特性几乎在现代的编程语言(诸如 Python/Swift/... )中已经司空见惯,右值引用的出现解决了 C++ 长期以来被人诟病的临时对象效率问题等等。 C++1x 为自身的标准库增加了非常多的工具和方法,诸如在语言层面上提供了 std::thread 支持了并发编程,在不同平台上不再依赖于系统底层的 API,实现了语言层面的跨平台支持;std::regex提供了完整的正则表达式支持等等。

被弃用的特性

弃用不等于废弃,只是用于暗示程序员这些特性将从未来的标准中消失,应该尽量避免使用。但是,已弃用的特性依然是标准库的一部分,并且出于兼容性的考虑,这些特性其实会『永久』保留。

  • 如果一个类有析构函数,为其生成拷贝构造函数和拷贝赋值运算符的特性被弃用了。
  • 不再允许字符串字面值常量赋值给一个 char *。如果需要用字符串字面值常量赋值和初始化一个char*,应该使用 const char * 或者 auto
char \*str = "hello world!"; // C++11中无法通过编译
const char *str = "hello world!"; // C++11使用
  • C++98 异常说明、 unexcepted_handler、set_unexpected() 等相关特性被弃用,应该使用 noexcept。auto_ptr 被弃用,应使用 unique_ptr。
  • register 关键字被弃用。
  • bool 类型的 ++ 操作被弃用。
  • C 语言风格的类型转换被弃用,应该使用 static_cast、reinterpret_cast、const_cast 来进行类型转换。

最新文章

  1. Java基础(二) ---- 继承(Inheritance)
  2. android ProgressBar 进度条的进度两端是圆角的方法
  3. Using the Cordova Camera API
  4. Linux C编程一站式学习
  5. 《App研发录》知识点汇总
  6. MBTiles地图瓦片管理工具
  7. 最短路+线段交 POJ 1556 好题
  8. 锋利的jQuery第2版学习笔记1~3章
  9. ZOJ2112 Dynamic Rankings 动态区间第K最值 平方分割
  10. PCB外形加工
  11. php可获取客户端信息
  12. Vim实用小技巧
  13. Java Method Logging with AOP and Annotations
  14. 使用js动态添加组件
  15. Ajax验证用户名是否被注册
  16. mysql的基本查询(等于,不等于,between...and...,)
  17. Java 实现 AES 加解密
  18. 洗礼灵魂,修炼python(32)--面向对象编程(2)—进一步认识类
  19. Spring boot中使用log4j
  20. Spark中的Spark Shuffle详解

热门文章

  1. [bzoj1030][JSOI2007]文本生成器——AC自动机
  2. JAVA 开发工具 市场状况
  3. 【 Tomcat 】后端tomcat获取真实IP
  4. JWT是什么?
  5. docker从零开始(二)容器初体验
  6. KISSY - A Powerful JavaScript Framework
  7. [BZOJ2151] 种树 贪心
  8. java 连接带 kerberos 验证的 phoenix
  9. pycurl mac 安装报错Curl is configured to use SSL,
  10. (17)python 网络编程