【发布时间】:2016-03-16 02:30:05
【问题描述】:
从这里的this 链接我了解到,为了传递 lambda,我们需要将方法作为参数传递并将其存储在 std::function 类型中。在这种情况下,是否可以从 lambda 的捕获列表中提取参数?
例子
struct foo
{
std::vector<int> t = {1,2,3};
};
void funct(std::function<void()> func)
{
func(); //This works fine . Can I extract the object foo from this lambda ?
}
int main()
{
foo a;
a.t.push_back(45);
funct( [a](){ std::cout << "New value is " << a.t[3] ; } );
}
【问题讨论】:
-
为了传递一个 lambda 在哪里?你需要什么方法?我没听懂你的介绍。
-
我想知道是否可以提取嵌入在 lambda 类型中的变量。就我而言,func 变量中的变量