File tree 13 files changed +35
-16
lines changed
13 files changed +35
-16
lines changed Original file line number Diff line number Diff line change @@ -30,7 +30,7 @@ C++17 则是近三年依赖 C++ 社区一致推进的方向,也指出了**现
30
30
31
31
本书每章中都出现了大量的代码,如果你在跟随本书介绍特性的思路编写自己的代码遇到问题时,不妨读一读随书附上的源码,你可以在[ 这里] ( ../code ) 中找到书中介绍过的全部的源码,所有代码按章节组织,文件夹名称为章节序号。
32
32
33
- [ 返回目录] ( ./toc.md ) | 上一章 | [ 下一章: 迈向 C++11/14/17] ( ./01-intro.md )
33
+ [ 返回目录] ( ./toc.md ) | 上一章 | [ 下一章 迈向 C++11/14/17] ( ./01-intro.md )
34
34
35
35
## 许可
36
36
Original file line number Diff line number Diff line change @@ -126,7 +126,7 @@ clean:
126
126
127
127
不必担心,本书的后续章节将为你介绍这一切。
128
128
129
- [ 返回目录] ( ./toc.md ) | [ 上一章] ( ./00-preface.md ) | [ 下一章: 语言可用性强化] ( ./02-usability.md )
129
+ [ 返回目录] ( ./toc.md ) | [ 上一章] ( ./00-preface.md ) | [ 下一章 语言可用性强化] ( ./02-usability.md )
130
130
131
131
## 进一步阅读的参考文献
132
132
Original file line number Diff line number Diff line change @@ -963,7 +963,7 @@ std::cout << new_enum::value3 << std::endl
963
963
964
964
> 参考答案[见此](../exercises/2)。
965
965
966
- [返回目录](./toc.md) | [上一章](./01-intro.md) | [下一章: 运行时强化](./03-runtime.md)
966
+ [返回目录](./toc.md) | [上一章](./01-intro.md) | [下一章 运行时强化](./03-runtime.md)
967
967
968
968
## 进一步阅读的参考文献
969
969
Original file line number Diff line number Diff line change @@ -435,6 +435,8 @@ std::forward 传参:左值引用
435
435
2 . 函数对象容器 std::function
436
436
3 . 右值引用
437
437
438
+ [ 返回目录] ( ./toc.md ) | [ 上一章] ( ./02-usability.md ) | [ 下一章 标准库:容器] ( ./04-containers.md )
439
+
438
440
## 许可
439
441
440
442
<a rel =" license " href =" http://creativecommons.org/licenses/by-nc-nd/4.0/ " ><img alt =" 知识共享许可协议 " style =" border-width :0 " src =" https://i.creativecommons.org/l/by-nc-nd/4.0/80x15.png " /></a >
Original file line number Diff line number Diff line change 1
- # 第 4 章 对标准库的扩充:新增容器
1
+ # 第 4 章 标准库:容器
2
2
3
3
> 内容修订中
4
4
@@ -247,6 +247,8 @@ for(int i = 0; i != tuple_len(new_tuple); ++i)
247
247
248
248
` std::tuple ` 虽然有效,但是标准库提供的功能有限,没办法满足运行期索引和迭代的需求,好在我们还有其他的方法可以自行实现。
249
249
250
+ [ 返回目录] ( ./toc.md ) | [ 上一章] ( ./03-runtime.md ) | [ 下一章 标准库:指针] ( ./05-pointers.md )
251
+
250
252
## 许可
251
253
252
254
<a rel =" license " href =" http://creativecommons.org/licenses/by-nc-nd/4.0/ " ><img alt =" 知识共享许可协议 " style =" border-width :0 " src =" https://i.creativecommons.org/l/by-nc-nd/4.0/80x15.png " /></a >
Original file line number Diff line number Diff line change 1
- # 第 5 章 对标准库的扩充:引用计数与智能指针
1
+ # 第 5 章 标准库:指针
2
2
3
3
> 内容修订中
4
4
@@ -176,6 +176,8 @@ int main() {
176
176
177
177
智能指针这种技术并不新奇,在很多语言中都是一种常见的技术,C++1x 将这项技术引进,在一定程度上消除了 `new`/`delete` 的滥用,是一种更加成熟的编程范式。
178
178
179
+ [返回目录](./toc.md) | [上一章](./04-containers.md) | [下一章 标准库:正则表达式](./06-regex.md)
180
+
179
181
## 进一步阅读的参考资料
180
182
181
183
1. [stackoverflow 上关于『C++11为什么没有 make_unique』的讨论](http://stackoverflow.com/questions/12580432/why-does-c11-have-make-shared-but-not-make-unique)
Original file line number Diff line number Diff line change 1
- # 第 6 章 正则表达式库
1
+ # 第 6 章 标准库:正则表达式
2
2
3
3
> 内容修订中
4
4
@@ -134,6 +134,8 @@ bar.txt sub-match[1]: bar
134
134
135
135
> 本节提到的内容足以让我们开发编写一个简单的 Web 框架中关于URL匹配的功能,请参考习题 TODO
136
136
137
+ [返回目录](./toc.md) | [上一章](./05-pointers.md) | [下一章 标准库:线程与并发](./07-thread.md)
138
+
137
139
## 进一步阅读的参考资料
138
140
139
141
1. [知乎『如何评价 GCC 的 C++11 正则表达式?』中原库作者 Tim Shen 的回答](http://zhihu.com/question/23070203/answer/84248248)
Original file line number Diff line number Diff line change 1
- # 第 7 章 语言级线程支持
1
+ # 第 7 章 标准库:线程与并发
2
2
3
3
> 内容修订中
4
4
@@ -173,6 +173,8 @@ C++11 语言层提供了并发编程的相关支持,本节简单的介绍了 `
173
173
174
174
> 本节提到的内容足以让我们使用不超过 100 行代码编写一个简单的线程池库,请参考习题 TODO
175
175
176
+ [返回目录](./toc.md) | [上一章](./06-regex.md) | [下一章 标准库:文件系统](./08-filesystem.md)
177
+
176
178
## 进一步阅读的参考资料
177
179
178
180
1. [C++ 并发编程\(中文版\)](https://www.gitbook.com/book/chenxiaowei/cpp_concurrency_in_action/details)
Original file line number Diff line number Diff line change 1
1
# 第 8 章 标准库: 文件系统
2
2
3
3
> TODO: 这部分内容为 C++17 新增
4
+
5
+ [ 返回目录] ( ./toc.md ) | [ 上一章] ( ./07-thread.md ) | [ 下一章 其他杂项] ( ./09-others.md )
Original file line number Diff line number Diff line change @@ -147,6 +147,8 @@ return 0;
147
147
148
148
本节介绍的几个特性是从仍未介绍的 C++1x 新特性里使用频次较靠前的特性了,` noexcept ` 是最为重要的特性,它的一个功能在于能够阻止异常的扩散传播,有效的让编译器最大限度的优化我们的代码。
149
149
150
+ [ 返回目录] ( ./toc.md ) | [ 上一章] ( ./08-filesystem.md ) | [ 下一章 展望:C++20 简介] ( ./10-cpp20.md )
151
+
150
152
## 许可
151
153
152
154
<a rel =" license " href =" http://creativecommons.org/licenses/by-nc-nd/4.0/ " ><img alt =" 知识共享许可协议 " style =" border-width :0 " src =" https://i.creativecommons.org/l/by-nc-nd/4.0/80x15.png " /></a >
Original file line number Diff line number Diff line change @@ -126,6 +126,9 @@ Concepts TS 的发布到最后一次 C++17 的讨论会只相隔了不到四个
126
126
127
127
总的来说,类似于 Concepts/Ranges/Modules 这些令人兴奋的特性并没有入选至 C++17,这注定了 C++17 某种意义上来说相较于 C++11/14 依然只是小幅度更新,但我们有望在 C++2x 中看到这些东西的出现,这些内容对于一门已经三十多岁『高龄』的编程语言,依然是充满魅力的。
128
128
129
+ [返回目录](./toc.md) | [上一章](./09-others.md) | [下一章 附录:进一步阅读的学习材料](./appendix.md)
130
+
131
+
129
132
## 进一步阅读的参考资料
130
133
131
134
1. [Final features of C++17](https://meetingcpp.com/index.php/br/items/final-features-of-c17.html)
Original file line number Diff line number Diff line change 9
9
- [ 每位程序员都需要知道的内存知识] ( https://people.freebsd.org/~lstewart/articles/cpumemory.pdf )
10
10
- 待补充
11
11
12
+ [ 返回目录] ( ./toc.md ) | [ 上一章] ( ./10-cpp20.md ) | 下一章
13
+
12
14
## 许可
13
15
14
16
<a rel =" license " href =" http://creativecommons.org/licenses/by-nc-nd/4.0/ " ><img alt =" 知识共享许可协议 " style =" border-width :0 " src =" https://i.creativecommons.org/l/by-nc-nd/4.0/80x15.png " /></a >
Original file line number Diff line number Diff line change 9
9
+ 1.1 被弃用的特性
10
10
+ 1.2 与 C 的兼容性
11
11
+ 进一步阅读的参考文献
12
- - [ ** 第二章 语言可用性的强化** ] ( ./02-usability.md )
12
+ - [ ** 第 2 章 语言可用性的强化** ] ( ./02-usability.md )
13
13
+ 2.1 常量
14
14
- nullptr
15
15
- constexpr
40
40
- final
41
41
- 显式禁用默认函数
42
42
- 强类型枚举
43
- - [ ** 第三章 语言运行期的强化** ] ( ./03-runtime.md )
43
+ - [ ** 第 3 章 语言运行期的强化** ] ( ./03-runtime.md )
44
44
+ lambda 表达式
45
45
+ lambda 表达式基础
46
46
+ 值捕获
56
56
+ 右值引用和左值引用
57
57
+ 移动语义
58
58
+ 完美转发
59
- - [ ** 第四章 标准库: 容器** ] ( ./04-containers.md )
59
+ - [ ** 第 4 章 标准库: 容器** ] ( ./04-containers.md )
60
60
+ ` std::array `
61
61
+ ` std::forward_list `
62
62
+ ` std::unordered_set `
65
65
+ 基本操作
66
66
+ 运行期索引
67
67
+ 合并与迭代
68
- - [ ** 第五章 标准库: 指针** ] ( ./05-pointers.md )
68
+ - [ ** 第 5 章 标准库: 指针** ] ( ./05-pointers.md )
69
69
+ RAII 与引用计数
70
70
+ ` std::shared_ptr `
71
71
+ ` std::unique_ptr `
72
72
+ ` std::weak_ptr `
73
- - [ ** 第六章 标准库: 正则表达式** ] ( ./06-regex.md )
73
+ - [ ** 第 6 章 标准库: 正则表达式** ] ( ./06-regex.md )
74
74
+ 正则表达式简介
75
75
+ 普通字符
76
76
+ 特殊字符
79
79
+ ` std::regex `
80
80
+ ` std::regex_match `
81
81
+ ` std::match_results `
82
- - [ ** 第七章 标准库: 线程与并发** ] ( ./07-thread.md )
82
+ - [ ** 第 7 章 标准库: 线程与并发** ] ( ./07-thread.md )
83
83
+ ` std::thread `
84
84
+ ` std::mutex `
85
85
+ ` std::unique_lock `
86
86
+ ` std::future `
87
87
+ ` std::packaged_task `
88
88
+ ` std::condition_variable `
89
- - [ ** 第八章 标准库: 文件系统** ] ( ./08-filesystem.md )
90
- - [ ** 第九章 其他杂项** ] ( ./09-others.md )
89
+ - [ ** 第 8 章 标准库: 文件系统** ] ( ./08-filesystem.md )
90
+ - [ ** 第 9 章 其他杂项** ] ( ./09-others.md )
91
91
+ 新类型
92
92
+ ` long long int `
93
93
+ ` noexcept ` 的修饰和操作
94
94
+ 字面量
95
95
+ 原始字符串字面量
96
96
+ 自定义字面量
97
97
+ 数学库
98
- - [ ** 第十章 展望: C++20 简介** ] ( ./10-cpp20.md )
98
+ - [ ** 第 10 章 展望: C++20 简介** ] ( ./10-cpp20.md )
99
99
+ Concept
100
100
+ Range
101
101
+ Module
You can’t perform that action at this time.
0 commit comments