C++11简要介绍
2024-08-28 22:19:11
概述
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 来进行类型转换。
最新文章
- Java基础(二) ---- 继承(Inheritance)
- android ProgressBar 进度条的进度两端是圆角的方法
- Using the Cordova Camera API
- Linux C编程一站式学习
- 《App研发录》知识点汇总
- MBTiles地图瓦片管理工具
- 最短路+线段交 POJ 1556 好题
- 锋利的jQuery第2版学习笔记1~3章
- ZOJ2112 Dynamic Rankings 动态区间第K最值 平方分割
- PCB外形加工
- php可获取客户端信息
- Vim实用小技巧
- Java Method Logging with AOP and Annotations
- 使用js动态添加组件
- Ajax验证用户名是否被注册
- mysql的基本查询(等于,不等于,between...and...,)
- Java 实现 AES 加解密
- 洗礼灵魂,修炼python(32)--面向对象编程(2)—进一步认识类
- Spring boot中使用log4j
- Spark中的Spark Shuffle详解
热门文章
- [bzoj1030][JSOI2007]文本生成器——AC自动机
- JAVA 开发工具 市场状况
- 【 Tomcat 】后端tomcat获取真实IP
- JWT是什么?
- docker从零开始(二)容器初体验
- KISSY - A Powerful JavaScript Framework
- [BZOJ2151] 种树 贪心
- java 连接带 kerberos 验证的 phoenix
- pycurl mac 安装报错Curl is configured to use SSL,
- (17)python 网络编程