我有一個具有函數指針的類,它可以從外部改變內核函數。C++ lambda - 捕獲成員變量
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