Skip to content

Commit

Permalink
revision #2: 更换文件名缩写
Browse files Browse the repository at this point in the history
  • Loading branch information
changkun committed Apr 7, 2018
1 parent 201c560 commit 53658f7
Show file tree
Hide file tree
Showing 12 changed files with 30 additions and 30 deletions.
2 changes: 1 addition & 1 deletion book/0-preface.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ C++17 则是近三年依赖 C++ 社区一致推进的方向,也指出了**现

本书每章中都出现了大量的代码,如果你在跟随本书介绍特性的思路编写自己的代码遇到问题时,不妨读一读随书附上的源码,你可以在[这里](../code)中找到书中介绍过的全部的源码,所有代码按章节组织,文件夹名称为章节序号。

[返回目录](./toc.md) | 上一章 | [下一章:迈向 C++11/14/17](./1-intro.md)
[返回目录](./toc.md) | 上一章 | [下一章:迈向 C++11/14/17](./01-intro.md)

## 许可

Expand Down
2 changes: 1 addition & 1 deletion book/1-intro.md → book/01-intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ clean:

不必担心,本书的后续章节将为你介绍这一切。

[返回目录](./toc.md) | [上一章](./0-preface.md) | [下一章:语言可用性强化](./2-usability.md)
[返回目录](./toc.md) | [上一章](./0-preface.md) | [下一章:语言可用性强化](./02-usability.md)

## 进一步阅读的参考文献

Expand Down
4 changes: 2 additions & 2 deletions book/2-usability.md → book/02-usability.md
Original file line number Diff line number Diff line change
Expand Up @@ -444,7 +444,7 @@ std::cout << "q: " << q << std::endl;

`decltype(auto)` 是 C++14 开始提供的一个略微复杂的用法。

> 要理解它你需要知道 C++ 中参数转发的概念,我们会在[语言运行时强化](./3-runtime)一章中详细介绍,你可以到时再回来看这一小节的内容。
> 要理解它你需要知道 C++ 中参数转发的概念,我们会在[语言运行时强化](./03-runtime.md)一章中详细介绍,你可以到时再回来看这一小节的内容。

简单来说,`decltype(auto)` 主要用于对转发函数或封装的返回类型进行推导,它使我们无需显式的指定 `decltype` 的参数表达式。考虑看下面的例子,当我们需要对下面两个函数进行封装时:
Expand Down Expand Up @@ -947,7 +947,7 @@ std::cout << new_enum::value3 << std::endl
> 参考答案[见此](../exercises/2)。
[返回目录](./toc.md) | [上一章](./1-intro.md) | [下一章:运行时强化](./3-runtime.md)
[返回目录](./toc.md) | [上一章](./01-intro.md) | [下一章:运行时强化](./03-runtime.md)
## 进一步阅读的参考文献
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
34 changes: 17 additions & 17 deletions book/10-cpp20.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@

```cpp
template <typename T, typename U>
auto add(T t, U u) {
return t+u;
auto add(T t, U u) {
return t+u;
}
```
Expand All @@ -35,10 +35,10 @@ return t+u;
template <typename T, int BufSize>
class buffer_t {
public:
T& alloc();
void free(T& item);
T& alloc();
void free(T& item);
private:
T data[BufSize];
T data[BufSize];
}
buffer_t<int, 100> buf; // 100 作为模板参数
Expand All @@ -48,7 +48,7 @@ buffer_t<int, 100> buf; // 100 作为模板参数

```cpp
template <auto value> void foo() {
return;
return;
}

foo<10>(); // value 被推导为 int 类型
Expand All @@ -64,16 +64,16 @@ C++17 正式将 `variant<>` 纳入标准库,摇身一变成为 `std::variant<>
#include <variant>
template <size_t n, typename... Args>
std::variant<Args...> _tuple_index(size_t i, const std::tuple<Args...>& tpl) {
if (i == n)
return std::get<n>(tpl);
else if (n == sizeof...(Args) - 1)
throw std::out_of_range("越界.");
else
return _tuple_index<(n < sizeof...(Args)-1 ? n+1 : 0)>(i, tpl);
}
if (i == n)
return std::get<n>(tpl);
else if (n == sizeof...(Args) - 1)
throw std::out_of_range("越界.");
else
return _tuple_index<(n < sizeof...(Args)-1 ? n+1 : 0)>(i, tpl);
}
template <typename... Args>
std::variant<Args...> tuple_index(size_t i, const std::tuple<Args...>& tpl) {
return _tuple_index<0>(i, tpl);
return _tuple_index<0>(i, tpl);
}
```
Expand All @@ -91,9 +91,9 @@ C++ 组委会在讨论投票最终确定 C++17 有很多提案,诸如 **Concep
#include <list>
#include <algorithm>
int main() {
std::list<int> l = {1, 2, 3};
std::sort(l.begin(), l.end());
return 0;
std::list<int> l = {1, 2, 3};
std::sort(l.begin(), l.end());
return 0;
}
```

Expand Down
18 changes: 9 additions & 9 deletions book/toc.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
## 目录

- [**序言**](./0-preface.md)
- [**第 1 章 迈向 C++11/14/17**](./1-intro.md)
- [**第 1 章 迈向 C++11/14/17**](./01-intro.md)
+ 1.1 被弃用的特性
+ 1.2 与 C 的兼容性
+ 进一步阅读的参考文献
- [**第二章 语言可用性的强化**](./2-usability.md)
- [**第二章 语言可用性的强化**](./02-usability.md)
+ 2.1 常量
- nullptr
- constexpr
Expand Down Expand Up @@ -40,7 +40,7 @@
- final
- 显式禁用默认函数
- 强类型枚举
- [**第三章 语言运行期的强化**](./3-runtime.md)
- [**第三章 语言运行期的强化**](./03-runtime.md)
+ lambda 表达式
+ lambda 表达式基础
+ 值捕获
Expand All @@ -56,7 +56,7 @@
+ 右值引用和左值引用
+ 移动语义
+ 完美转发
- [**第四章 标准库: 容器**](./4-containers.md)
- [**第四章 标准库: 容器**](./04-containers.md)
+ `std::array`
+ `std::forward_list`
+ `std::unordered_set`
Expand All @@ -65,12 +65,12 @@
+ 基本操作
+ 运行期索引
+ 合并与迭代
- [**第五章 标准库: 指针**](./5-pointers.md)
- [**第五章 标准库: 指针**](./05-pointers.md)
+ RAII 与引用计数
+ `std::shared_ptr`
+ `std::unique_ptr`
+ `std::weak_ptr`
- [**第六章 标准库: 正则表达式**](./6-regex.md)
- [**第六章 标准库: 正则表达式**](./06-regex.md)
+ 正则表达式简介
+ 普通字符
+ 特殊字符
Expand All @@ -79,15 +79,15 @@
+ `std::regex`
+ `std::regex_match`
+ `std::match_results`
- [**第七章 标准库: 线程与并发**](./7-thread.md)
- [**第七章 标准库: 线程与并发**](./07-thread.md)
+ `std::thread`
+ `std::mutex`
+ `std::unique_lock`
+ `std::future`
+ `std::packaged_task`
+ `std::condition_variable`
- [**第八章 标准库: 文件系统**](./8-filesystem.md)
- [**第九章 其他杂项**](./9-others.md)
- [**第八章 标准库: 文件系统**](./08-filesystem.md)
- [**第九章 其他杂项**](./09-others.md)
+ 新类型
+ `long long int`
+ `noexcept` 的修饰和操作
Expand Down

0 comments on commit 53658f7

Please sign in to comment.