2014-07-25 33 views
-3

以下是給我的錯誤。它突出了回報間「M」>的getAddress(),並給予錯誤:C++ find_if()無法將'this'指針從'const Client'轉換爲'Client''

Error 1 error C2662: 'RakNet::SystemAddress Client::GetAddress(void)' : cannot convert 'this' pointer from 'const Client' to 'Client &'

我真的不跟隨爲什麼我得到這個錯誤。

list<Client*> battleQueue; 

if (find_if(battleQueue.begin(), battleQueue.end(), [packet](const Client* m) -> bool { return m->GetAddress() == packet.systemAddress; }) == battleQueue.end()) 
{ 
} 
+6

製作''GetAddress' const'。 – chris

+0

const SystemAddress GetAddress();我得到了同樣的錯誤 – user441521

+3

不是在開始,在結束爲克里斯寫 –

回答

4

至於評論,你傳遞m作爲一個指向const對象添加到您的λ:const Client* m

編譯器抱怨GetAddress()非const成員函數(它正試圖獲得來自this指針的Client&)試圖訪問一個const對象。

充分利用GetAddress()方法const

... GetAddress() const; 
相關問題