gpt4 book ai didi

c++ - 可以在 C++11 lambda 中隐式捕获参数包吗?

转载 作者:IT老高 更新时间:2023-10-28 21:42:22 25 4
gpt4 key购买 nike

有谁知道以下对“ts”的隐式捕获是否格式正确:

template<class ... Ts> void bar(Ts ... ts) { }

template<class ... Ts> int foo(Ts ... ts) {
auto L = [=] () {
bar(ts...);
};
L();
return 0;
}
int g = foo(1, 2, 3);

标准是否在任何地方明确说明不应该形成良好的格式?

最佳答案

14.5.3/6:

The instantiation of a pack expansion that is not a sizeof... expression produces a list E1, E2, ..., EN , where N is the number of elements in the pack expansion parameters. Each Ei is generated by instantiating the pattern and replacing each pack expansion parameter with its ith element. All of the Ei become elements in the enclosing list.

无论您是否被允许显式捕获一个包(您可以,使用 [ts ...]),扩展的一般规则将导致捕获列表中的每个元素.

关于c++ - 可以在 C++11 lambda 中隐式捕获参数包吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14270941/

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