结构化绑定使遍历具有基于范围的 for 循环的地图更加清晰和可读,如下所示
for (auto [key, value] : map) {
cout << key << " : " << value << endl;
}
但是结构化绑定可以在如下 lambda 表达式中使用吗?
std::for_each(map.begin(), map.end(), [](auto [key, value]) {
cout << key << " : " << value << endl;
});
从看起来上面的代码不适用于我在这里找到的在线 C++ 编译器https://wandbox.org/permlink/sS6r7JZTB3G3hr78。
如果它不起作用,那么是否有充分的理由不支持上述内容?还是只是尚未提出的东西?模板只会在使用时被实例化,因此结构化绑定的“解除绑定”过程可以发生在请求实例化的地方(即调用函数时)