内修改对象我有代码看起来像这样:
将lambda到一个对象,并从拉姆达
struct LambdaContainer{
std::function<void(void)> f;
float x = 10;
}
struct MyClass{
LambdaContainer c;
}
void someFunction(){
MyClass ins;
LambdaContainer cont;
cont.f = [&cont](){
// I want to modify 'x' of LambdaContainer that is inside MyClass
cont.x = 10; // won't work because cont will be copy constructed
// and this cont might not exist anymore
};
ins.c = cont;
aVectorSomewhere.push_back(ins);
}
有什么办法,我可以捕捉LambdaContainer“续”以这样的方式,它的指的是从何处调用lambda? (我不使用指针,顺便说一句)
谢谢你,这么伟大的答案:)我想我可以得到它现在的工作
这似乎是一个[XY问题(http://meta.stackexchange.com/questions/66377/what-is-the -XY-问题)。什么是*实际*问题?一旦你说明了实际问题,你可能会有一个简单的解决方案。 – Nawaz
我正在做一个游戏,每个敌人都有独特的路线。我不想为每个对象创建我的敌人脚本的子类,因此我试图使其具有功能,并在我的初始化代码中对这些路由进行编码。所以我打算做的是传递一堆lambda。 – Rei