【发布时间】:2019-05-21 18:11:21
【问题描述】:
所以在 Lua 中你可以做这样的事情
local function start(n)
return function()
n = n + 1;
return n;
end;
end
print(start(1)()); --> 2
我听说过模板,但我不想遇到 xy 问题,或者有其他方法
【问题讨论】:
-
它们被称为Function objects 或函子。它只是提供
operator()的任何对象。 -
返回
std::function或函数指针。 -
C++ 中的闭包有一些限制,这是由于缺少自动内存管理造成的。所以,你不会得到 100% 等价的东西。
-
返回函数指针也可以解决
-
@JörgWMittag 想澄清一下您所说的自动内存管理是什么意思?例如,C++ 当然不缺少自动存储持续时间。
标签: c++