最近一段时间一直在写这样一本书,今天总算是正式完成了。如今发布在了 Gitbook,主要链接如下:
下面是一些关于此书的信息:
内容一览
- 第一章 C++11/14 简介
- 概述
- 被弃用的特性
- 与 C 的兼容性
- 第二章 语言可用性的强化
-
nullptr
与constexpr
-
类型推导
auto
decltype
- 尾返回类型、
auto
与decltype
配合
-
区间迭代
- 基于范围的 for 循环
-
初始化列表
std::initializer_list
- 统一初始化语法
-
模板增强
- 外部模板
- 尖括号
>
- 类型别名模板
- 变长参数模板
-
面向对象增强
- 委托构造
- 继承构造
- 显式虚函数重载
override
final
- 显式禁用默认函数
-
强类型枚举
-
- 第三章 语言运行期的强化
- lambda 表达式
- lambda 表达式基础
- 值捕获
- 引用捕获
- 隐式捕获
- 表达式捕获
- 泛型 lambda
- lambda 表达式基础
- 函数对象包装器
- std::function
- std::bind/std::placeholder
- 右值引用
- 左值、右值的纯右值、将亡值、右值
- 右值引用和左值引用
- 移动语义
- 完美转发
- lambda 表达式
- 第四章 对标准库的扩充: 新增容器
std::array
std::forward_list
std::unordered_set
std::unordered_map
std::tuple
- 基本操作
- 运行期索引
- 合并与迭代
- 第五章 对标准库的扩充: 智能指针和引用计数
- RAII 与引用计数
std::shared_ptr
std::unique_ptr
std::weak_ptr
- 第六章 对标准库的扩充: 正则表达式库
- 正则表达式简介
- 普通字符
- 特殊字符
- 限定符
std::regex
及其相关std::regex
std::regex_match
std::match_results
- 正则表达式简介
- 第七章 对标准库的扩充: 语言级线程支持
std::thread
std::mutex
std::unique_lock
std::future
std::packaged_task
std::condition_variable
- 第八章 其他杂项
- 新类型
long long int
noexcept
的修饰和操作- 字面量
- 原始字符串字面量
- 自定义字面量
- 新类型
- 第九章 扩展主题: C++17 简介
- 主要入选特性
- 非类型模板参数的
auto
std::variant<>
- 结构化绑定(Structured bindings)
- 变量声明的强化
- 非类型模板参数的
- 未入选特性
- Concepts
- 主要入选特性
交流
- 此教程在每节的最下方提供了评论,如果读者发现教程中内容的错误,可以使用评论或者通过发 issue 来指出;
- 此教程依然有很多特性没有参与介绍,例如
alignas
内存对齐、无限制联合等,主要是考虑到这些特性的使用频次实在是太低,故没有多做介绍,若对未提及的特性有需求,笔者可以考虑将其加入第八章
; - 此教程有以下交流群,有兴趣的读者可以加入,加群请注明
gitbook
:
GitHub
此教程中涉及的相关代码可以在 GitHub 上查看: