【发布时间】:2015-10-16 12:40:33
【问题描述】:
lambdas 和 std::functions 在哪里存储按值捕获的变量?
int i = 1;
auto l = [i](void) mutable { return i++; };
std::function<int(void)> f = l;
他们打电话给新的接线员吗?如果我提供自己的 new 运算符,它会被 lambdas 使用吗?
【问题讨论】:
-
Lambda 是将变量保存为成员数据的类,
std::function只是保存 lambda。根据可调用对象的大小,它要么适合std::function,要么位于堆上。
标签: c++ memory-management lambda new-operator