私はC++ 11で楽しく遊んでいます。これがなぜ起こるか私は思ったんだけど: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
を試しましたが、うまくいきません。
ラムダ関数内で外部スコープ変数を使用するにはどうすればよいですか?
クラスのメソッドの側面。それは良いタイトルではない、たぶん私はそれを '現在のスコープの外に '変更する必要があります... –