gpt4 book ai didi

C++11 lambda : mixed capture list

转载 作者:IT老高 更新时间:2023-10-28 23:12:15 24 4
gpt4 key购买 nike

谁能给我看以下示例:

1) 按值捕获 x 的 Lambda。 y 引用。如果未指定,其余部分的默认设置是什么?

2) 按值捕获 x 的 Lambda。 y 引用,其他的都是值。

3) 按值捕获 x 的 Lambda。 y 引用,其他所有引用。

另外,是否允许同一范围内的 2 个 lambda 具有相同的捕获签名,例如两者都是 [],或者都是 [&x, =]

谢谢

最佳答案

1) [x, &y](){} 未捕获其余部分

2) [=, &y](){}

3) [&, x](){}

The capture-list is a comma-separated list of zero or more captures, optionally beginning with the capture-default. The only capture defaults are & (by reference) and = (by value). If a capture-default is used, no other captures may use the same capture type. Any capture may appear only once.

另外,是否允许同一作用域内的 2 个 lambda 具有相同的捕获签名,例如都为 [],或者都为 [&x, =]

当然是允许的。每个 lambda 都将是不同的对象并具有其不同的类型。如果你在两个 lambda 中按值捕获变量,那么每个 lambda 都会有它的拷贝。如果您在两个 lambda 中通过引用捕获变量,那么每个 lambda 都会引用同一个捕获的变量。

关于C++11 lambda : mixed capture list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31998613/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com