如果引用類型的變量是按值在lambda中捕獲的,它是否被引用或值捕獲?在lambda中,如何通過值捕獲引用
小樣本有問題:
#include <iostream>
struct Test {
int a;
};
void testFunc(const Test &test) {
auto a = [=] {
// does 'test' is being passed to closure object with copy
// or by reference?
return test.a;
}();
std::cout << a;
}
int main() {
Test test{1};
testFunc(test);
}
那麼,測試它呢? (您需要修改該對象,可以通過嘗試使用非const引用或通過使變量爲'mutable'來實現。) –
看起來是[value](http://ideone.com/R0HclW )。 –
@JanHudec是的,測試是好的,但看到相關標準的章節和理論基礎的答案(SO上有許多這樣的專家)總是有用的。 – Yury