1
我有以下代碼:lambda函數需要訪問對象
class A
{
protected:
int a
public:
std::function<void()> lambdaFunc;
A(std::function<void()> lambdaParam) : lambdaFunc(lambdaParam){}
};
int main()
{
someFunctionCall(std::shared_ptr<A>(new A([](){ /*I need this to access int a*/ }));
}
我不知道我怎麼可以給lambda函數在這種情況下獲得了新的對象?
您需要訪問哪個對象? – billz
正在創建A的新實例。編輯:就這樣很明顯,我希望能夠將不同的「處理函數」函數傳遞給不同的實例。 – NeomerArcana
備註:我被推薦使用'make_shared()'。因此,通話將成爲'someFunctionCall(STD :: make_shared ([](){/*...*/}));'(順便說一下原來的通話缺少一個右括號)。 –