#include <iostream>
void foo(int k) {
static auto bar = [&]{
std::cout << k << std::endl;
};
bar();
}
int main () {
foo(1); foo(2); foo(3); // output is correct: 1, 2, 3
}
检查函数foo ,静态 lambda 如何通过引用捕获k 。这似乎有效,更复杂的数据类型而不是int也是如此。
这是预期的吗?是否可以保证每次调用foo的k的地址都相同,或者这是UB?
在此先感谢,如果以前回答过这个问题,我很抱歉(我确实试图找到类似的问题但没有成功)