Update item33.md

This commit is contained in:
猫耳堀川雷鼓 2021-03-15 20:52:41 +08:00 committed by GitHub
parent d12cba48af
commit 0460131518
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -29,7 +29,7 @@ auto f = [](auto&& x)
{ return func(normalize(std::forward<???>(x))); };
```
在理论和实际之间存在一个问题:你传递给`std::forward`的参数是什么类型,即确定我在上面写的`???`该是什么。
在理论和实际之间存在一个问题:你应该传递给`std::forward`的什么类型,即确定我在上面写的`???`该是什么。
一般来说,当你在使用完美转发时,你是在一个接受类型参数为`T`的模版函数里,所以你可以写`std::forward<T>`。但在泛型*lambda*中,没有可用的类型参数`T`。在*lambda*生成的闭包里,模版化的`operator()`函数中的确有一个`T`,但在*lambda*里却无法直接使用它,所以也没什么用。
@ -87,7 +87,7 @@ auto f =
};
```
再加上6个点就可以让我们的*lambda*完美转发接受多个参因为C++14中的*lambda*也可以是可变参的:
再加上6个点就可以让我们的*lambda*完美转发接受多个参了因为C++14中的*lambda*也可以是可变参的:
```c++
auto f =