序言
习惯上,我们把C++11之前的C++语法特性称之为“传统C++”,而把c++11之后的语法特性称之为现代C++。有一种说法称C++为中级语言,因为它的特性介于低级语言(如各类汇编语言)和高级语言(Python、C#)之间--一般来说,它在运行效率上比高级语言要高,而在开发效率上又比高级语言低一些。
随着C++的发展,它也逐渐在优化一些开发效率上的问题,提升C++开发者的工作效率,也拓展了一些实用的特性。
概述
这一系列的文章,参考 cpp reference(提供比较权威的C++特性文档),并结合实践,例举现代C++的一些主要的、常用的特性,其他特性或者细节,读者请自行搜索cpp reference或者其他参考资料。
下面是我列举的比较实用的特性:
- 自动推导 | auto decltype
- lambda 表达式
- 移动(move)语义 | 右值(rvalue
- 模板 | 变长参数模板 | 完美转发
- 智能指针
- 编译时程序 constexpr
- 范围遍历
- 线程支持
测试项目说明
测试项目Github仓库
参考文件ModernCppTest/ModernCppTestMain.Cpp
,例举了各个特性相关的测试代码和注解。
目录
现代C++(Modern C++)基本用法实践:一、类型推导
现代C++(Modern C++)基本用法实践:二、Lambda表达式
现代C++(Modern C++)基本用法实践:三、移动语义
现代C++(Modern C++)基本用法实践:四、模板
现代C++(Modern C++)基本用法实践:五、智能指针
现代C++(Modern C++)基本用法实践:六、constexpr编译时计算
现代C++(Modern C++)基本用法实践:七、范围遍历
现代C++(Modern C++)基本用法实践:八、线程支持
现代C++(Modern C++)基本用法实践:N、其他零散的常用特性