【发布时间】:2015-10-03 11:33:20
【问题描述】:
我有一个类,它有指向内核函数的函数指针,可以从外部改变。
class Bar
{
public:
int i;
}
class Foo
{
public:
std::function<double()> kernel;
Bar bar;
};
int main()
{
Foo f;
f.kernel = []() -> double { return i * i; }; //this is not working obviously
}
我怎样才能实现“呈现”的行为,例如。读取 lambda 中的类变量。我可以通过在内部传递f 并写f.bar.i 来绕过它,但这不是很好的解决方案。
【问题讨论】:
-
[&f]() { return f.i * f.i; }有什么问题? -
@KerrekSB 我已经编辑了问题
-
所以你基本上想调用
f.kernel()和kernel应该自动绑定到f就像它是一个成员函数? -
@dhke 是的.. 基本上这就是我想要的
-
那为什么不只是一个成员函数呢?