以下是给我一个错误。它突出显示'm'作为回报m-> GetAddress()并给出错误:
错误1错误C2662:'RakNet :: SystemAddress Client :: GetAddress(void)' :无法将'this'指针从'const Client'转换为'Client&'
我不是真的在追问为什么我会收到这个错误。
list<Client*> battleQueue;
if (find_if(battleQueue.begin(), battleQueue.end(), [packet](const Client* m) -> bool { return m->GetAddress() == packet.systemAddress; }) == battleQueue.end())
{
}
答案 0 :(得分:4)
如评论所示,您将m
作为指向const
对象的指针传递给lambda:const Client* m
编译器抱怨GetAddress()
是非const 成员函数(它试图从Client&
指针获取this
)访问const对象。
制作GetAddress()
方法const
:
... GetAddress() const;