mirror of
https://github.com/CnTransGroup/EffectiveModernCppChinese.git
synced 2025-01-26 20:00:27 +08:00
Update item33.md
This commit is contained in:
parent
d12cba48af
commit
0460131518
@ -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 =
|
||||
|
Loading…
Reference in New Issue
Block a user