From 08bb72ae47e8c00656d57970ec3fe729ce067602 Mon Sep 17 00:00:00 2001 From: Changkun Ou Date: Sun, 6 May 2018 16:04:14 +0200 Subject: [PATCH] update #1: add appendix2 and init filesystem chapter --- book/zh-cn/08-filesystem.md | 10 ++++ book/zh-cn/{appendix.md => appendix1.md} | 6 +-- book/zh-cn/appendix2.md | 41 +++++++++++++++++ book/zh-cn/toc.md | 58 ++++++++++++------------ 4 files changed, 83 insertions(+), 32 deletions(-) rename book/zh-cn/{appendix.md => appendix1.md} (86%) create mode 100644 book/zh-cn/appendix2.md diff --git a/book/zh-cn/08-filesystem.md b/book/zh-cn/08-filesystem.md index 777545cc..e204779a 100644 --- a/book/zh-cn/08-filesystem.md +++ b/book/zh-cn/08-filesystem.md @@ -8,4 +8,14 @@ order: 8 > TODO: 这部分内容为 C++17 新增 +[TOC] + +文件系统库提供了文件系统、路径、常规文件、目录等等相关组件进行操作的相关功能。和正则表达式库类似,他也是最先有 boost 发起,并最终被合并为 C++ 标准的众多库之一。 + +## 8.1 文档与链接 + + + +## 8.2 std::filesystem + [返回目录](./toc.md) | [上一章](./07-thread.md) | [下一章 其他杂项](./09-others.md) \ No newline at end of file diff --git a/book/zh-cn/appendix.md b/book/zh-cn/appendix1.md similarity index 86% rename from book/zh-cn/appendix.md rename to book/zh-cn/appendix1.md index f434b015..7b5d1a0f 100644 --- a/book/zh-cn/appendix.md +++ b/book/zh-cn/appendix1.md @@ -1,10 +1,10 @@ --- -title: 附录:进一步阅读的学习材料 +title: 附录 1:进一步阅读的学习材料 type: book-zh-cn order: 11 --- -# 附录:进一步阅读的学习材料 +# 附录 1:进一步阅读的学习材料 首先,恭喜你阅读完本书 🎉 !笔者希望本书有提起你对现代 C++ 的兴趣。 @@ -15,7 +15,7 @@ order: 11 - [每位程序员都需要知道的内存知识](https://people.freebsd.org/~lstewart/articles/cpumemory.pdf) - 待补充 -[返回目录](./toc.md) | [上一章](./10-cpp20.md) | 下一章 +[返回目录](./toc.md) | [上一章](./10-cpp20.md) | [下一章](./12-appendix2.md) ## 许可 diff --git a/book/zh-cn/appendix2.md b/book/zh-cn/appendix2.md new file mode 100644 index 00000000..cad5077f --- /dev/null +++ b/book/zh-cn/appendix2.md @@ -0,0 +1,41 @@ +--- +title: 附录 2:现代 C++ 的最佳实践 +type: book-zh-cn +order: 12 +--- + +# 附录 2:现代 C++ 的最佳实践 + +这篇附录我们来简单谈一谈现代 C++ 的最佳实践。总的来说,笔者关于 C++ 的最佳实践相关的思考主要吸收自[《Effective Modern C++》](https://www.amazon.cn/dp/B016OFO492/ref=sr_1_3?ie=UTF8&qid=1525613457&sr=8-3&keywords=Effective+C%2B%2B)和 [《C++ 风格指南》](http://zh-google-styleguide.readthedocs.io/en/latest/google-cpp-styleguide/contents/)。在这篇附录里将简单讨论、并使用实际例子来阐明的方法,介绍一些笔者**个人的**、**不是随处可见的**、**非常识性**的最佳实践,并如何保证代码的整体质量。 + +## 常用工具 + +TODO + +## 代码风格 + +TODO + +## 整体性能 + +TODO + +## 代码安全 + +TODO + +## 可维护性 + +TODO + +## 可移植性 + +TODO + +[返回目录](./toc.md) | [上一章](./11-appendix1.md) | 下一章 + +## 许可 + +知识共享许可协议 + +本书系[欧长坤](https://github.com/changkun)著,采用[知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议](http://creativecommons.org/licenses/by-nc-nd/4.0/)许可。项目中代码使用 MIT 协议开源,参见[许可](../LICENSE)。 \ No newline at end of file diff --git a/book/zh-cn/toc.md b/book/zh-cn/toc.md index 144ed554..885c86d8 100644 --- a/book/zh-cn/toc.md +++ b/book/zh-cn/toc.md @@ -41,66 +41,66 @@ - 显式禁用默认函数 - 强类型枚举 - [**第 3 章 语言运行期的强化**](./03-runtime.md) - + lambda 表达式 + + 3.1 lambda 表达式 + lambda 表达式基础 + 值捕获 + 引用捕获 + 隐式捕获 + 表达式捕获 + 泛型 lambda - + 函数对象包装器 + + 3.2 函数对象包装器 + std::function + std::bind/std::placeholder - + 右值引用 + + 3.3 右值引用 + 左值、右值的纯右值、将亡值、右值 + 右值引用和左值引用 + 移动语义 + 完美转发 - [**第 4 章 标准库: 容器**](./04-containers.md) - + `std::array` - + `std::forward_list` - + `std::unordered_set` - + `std::unordered_map` - + `std::tuple` + + 4.1 `std::array` 和 `std::forward_list` + + 4.2 无序容器 + + `std::unordered_set` + + `std::unordered_map` + + 4.3 元组 `std::tuple` + 基本操作 + 运行期索引 + 合并与迭代 - [**第 5 章 标准库: 指针**](./05-pointers.md) - + RAII 与引用计数 - + `std::shared_ptr` - + `std::unique_ptr` - + `std::weak_ptr` + + 5.1 RAII 与引用计数 + + 5.2 `std::shared_ptr` + + 5.3 `std::unique_ptr` - [**第 6 章 标准库: 正则表达式**](./06-regex.md) - + 正则表达式简介 + + 6.1 正则表达式简介 + 普通字符 + 特殊字符 + 限定符 - + `std::regex` 及其相关 + + 6.2 `std::regex` 及其相关 + `std::regex` + `std::regex_match` + `std::match_results` - [**第 7 章 标准库: 线程与并发**](./07-thread.md) - + `std::thread` - + `std::mutex` - + `std::unique_lock` - + `std::future` - + `std::packaged_task` - + `std::condition_variable` + + 7.1 `std::thread` + + 7.2 `std::mutex` 和 `std::unique_lock` + + 7.3 `std::future` 和 `std::packaged_task` + + 7.4 `std::condition_variable` - [**第 8 章 标准库: 文件系统**](./08-filesystem.md) + + 8.1 文档与链接 + + 8.2 `std::filesystem` - [**第 9 章 其他杂项**](./09-others.md) - + 新类型 + + 9.1 新类型 + `long long int` - + `noexcept` 的修饰和操作 - + 字面量 + + 9.2 `noexcept` 的修饰和操作 + + 9.3 字面量 + 原始字符串字面量 + 自定义字面量 - + 数学库 + + 9.4 数学库 - [**第 10 章 展望: C++20 简介**](./10-cpp20.md) - + Concept - + Range - + Module - + Coroutine -- [**附录:进一步阅读的学习材料**](./appendix.md) + + 10.1 Concept + + 10.2 Range + + 10.3 Module + + 10.4 Coroutine +- [**附录 1:进一步阅读的学习材料**](./appendix1.md) +- [**附录 2:现代 C++ 的最佳实践**](./appendix2.md) 返回目录 | 上一章 | [下一章:序言](./00-preface.md)