【发布时间】:2010-09-15 13:22:02
【问题描述】:
使用 C++11 lambda 表达式时如何按值捕获成员变量?
使用[my_member] 语法似乎不起作用,隐式捕获使用this 指针。需要的是一种明确指定成员变量的捕获类型的方法。这可能吗?
我现在的解决方法是:
void member_function()
{
std::shared_ptr<my_member_class> my_member_copy = my_member; // this shouldn't be necessary
std::async([=]{ std::cout << *my_member_copy; });
// std::async([=]{ std::cout << *my_member_; }); // wrong, my member could be potentially out of scope
}
【问题讨论】: