在你扔烂番茄之前
我知道 lambda 分解的实际应用目前受到限制,因为无法找到对替换失败友好的方法来检查隐藏在分解变量中的 lambda 捕获的数量。这只是一个理论问题,因为我找不到任何涵盖捕获成员变量访问修饰符的标准部分。
例子
int main() {
int a;
auto [x] = [a]{};
static_cast<void>(a);
static_cast<void>(x);
return 0;
}
标准参考
关于lambda 捕获的标准部分很长,所以我可能错过了相关的片段。我注意到的是,与捕获相对应的非静态成员是/必须是未命名的。