如何解构 lambda 参数中的一对

问题描述 投票:0回答:1

当我使用 for 循环时,我可以立即解构参数,例如

for(const auto & [key, value] : myMap) { }

但是我可以在 lambda 中做同样的事情吗? (显然不是这样的,这不会编译)

std::for_each(myMap.begin(), myMap.end(), [](const auto & [key, value]) { });
c++ lambda destructuring
1个回答
0
投票

这是不可能的,但您可以在 lambda 函数体内将变量声明为局部变量,并在那里进行解包:

std::for_each(myMap.begin(), myMap.end(), [](const auto & pair) {
    const auto & [key, value] = pair;
});
© www.soinside.com 2019 - 2024. All rights reserved.