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 ([](){/*...*/}));'(顺便说一下原来的通话缺少一个右括号)。 –