简介
本内容针对的是C++11的语言特性,与语言特性无直接关系的标准库更新(如hash/unordered_map/regex等)不包含在此提纲内。
适用方向
1.正在决定是否要用C++11,已经使用了C++11中一部分功能,对其它功能也感兴趣的团队。
2.实践分享。
课程时长:
1天(6H)
分享提纲
第一部分 语法与语言功能改进 | 1.空指针 2.禁止复制构造 3.禁止继承或覆盖 4.编译时断言 5.函数无异常声明 6.基于范围的循环 7.新的类型别名机制 8.对象初始化改进 9.类型推导 10.即写即用的函数定义 |
第二部分 常量与字面量 | 1.枚举类型改进 2.constexpr 3.Unicode 常量 4.免转义字符串常量 5.自定义字面量后缀 |
备注:以上两部分几乎是C++11一份基础语言特性的改动列表, 基本上每个子特性的内容就是一两个关键字的用法, 也会比较琐碎。 | |
第三部分 引用类型改动 | 1.临时对象函数调用的重载决议 2.右值引用与重载决议修正 3.左值引用与右值引用的相互转换 4.广义引用与参数转发 |
第四部分 移动语义 | 1.对象生命周期语义 2.移动构造函数 3.自动资源管理指针模板类型 4.函数隐式生成规则 |
备注:以上两部分联系比较紧密,示例为对文件句柄等需要配对使用的API的封装(open, close)。语言特性的介绍会多于示例。 | |
第五部分 可变参数模板 | 1.可变参数模板函数 2.参数包 3.元组类 |
第六部分 函数对象 | 1.Lambda 对象 2.通用函数模板类 (std::function) 3.参数预绑定 (std::bind) |
第七部分 多线程 | 1.引入标准多线程的意义 2.线程对象模型 3.线程本地存储 4.原子数据类型 5.线程同步 |
备注:以上三部分最后多线程部分会用到前面两部分介绍的语法基础。在C++11中新增的多线程API及语言关键字将是主要内容,围绕这些内容也容易提供一些示例。 |