【发布时间】:2013-05-30 20:56:26
【问题描述】:
我玩 C++11 是为了好玩。我想知道为什么会这样:
//...
std::vector<P_EndPoint> agents;
P_CommunicationProtocol requestPacket;
//...
bool repeated = std::any_of(agents.begin(), agents.end(),
[](P_EndPoint i)->bool
{return requestPacket.identity().id()==i.id();});
编译因以下错误而终止:
error: 'requestPacket' has not been declared
在前面的代码中已声明。我试过::requestPacke,也没用。
如何在 lambda 函数中使用外部范围变量?
【问题讨论】:
-
它们在类的方法中。这不是一个好标题,也许我应该把它改成
out of current scope...
标签: c++ c++11 lambda std capture