book: reword generic lambda

Fixes #242
This commit is contained in:
Changkun Ou
2022-07-17 15:08:18 +02:00
parent e50e3c64f2
commit 2e9eed9ecc
2 changed files with 9 additions and 15 deletions

View File

@@ -107,11 +107,9 @@ void lambda_expression_capture() {
### 泛型 Lambda
上一节中我们提到了 `auto` 关键字不能够用在参数表里,这是因为这样的写法会与模板的功能产生冲突。
但是 Lambda 表达式并不是普通函数,所以 Lambda 表达式并不能够模板化。
这就为我们造成了一定程度上的麻烦:参数表不能够泛化,必须明确参数表类型。
幸运的是,这种麻烦只存在于 C++11 中,从 C++14 开始,
Lambda 函数的形式参数可以使用 `auto` 关键字来产生意义上的泛型:
但是 Lambda 表达式并不是普通函数,所以在没有明确指明参数表类型的情况下,Lambda 表达式并不能够模板化。
幸运的是,这种麻烦只存在于 C++11 中,从 C++14 开始Lambda 函数的形式参数可以使用 `auto`
关键字来产生意义上的泛型:
```cpp
auto add = [](auto x, auto y) {