ich alles versucht haben, dieses Ding einfach rein ist nicht Sinn, wirklich ... Hier ist die problematische Code:boost :: bind ist krank beschwert sich für nichts
CRoom* pRoom = &mRooms[pClient->iCurChannel][pClient->iCurRoom];
pClient->bPendingOperation = true;
pRoom->OnBattlePlayerRespawn(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);// doesnt copmlain
pRoom->mMainData.mStrand.post(boost::bind(&CRoom::OnBattlePlayerRespawn, pRoom, pClient, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 55, 4563)); // complains, wtf?
OnBattlePlayerRespawn erklärte wie folgt:
void CRoom::OnBattlePlayerRespawn(CClient* pClient, uint32_t dwEquipItemSlot1, uint32_t dwEquipItemSlot2, uint32_t dwEquipItemSlot3, uint32_t dwEquipItemSlot4, uint32_t dwEquipItemSlot5, uint32_t dwSpecial1, uint32_t dwEquipItemSlot6, uint32_t dwEquipItemSlot7, uint32_t dwEquipItemSlot8, uint32_t dwEquipItemSlot9, uint32_t dwEquipItemSlot10, uint32_t dwSpecial2)
Compiler-Fehler:
`Error no matching function for call to `bind(void (CRoom::*)(CClient*, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t), CRoom*&, CClient*&, int, int, int, int, int, int, int, int, int, int, int, int)'`
candidate expects 2 arguments, 15 provided
pRoom->mMainData.mStrand.post(boost::bind(&CRoom::OnBattlePlayerRespawn, pRoom, pClient, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 55, 4563)); // complains, wtf?
„Kandidat erwartet 2 Argumente, 15 pr egoided "ernsthaft? Warum funktioniert dann der normale Anruf? Ich kann wirklich nicht lösen, Hilfe würde geschätzt werden.
Danke.
[Docs] (http://www.boost.org/doc/libs/1_63_0/libs/bind/doc/html/bind.html#bind.implementation. number_of_arguments): "Diese Implementierung unterstützt Funktionsobjekte mit bis zu neun Argumenten." –
Wenn ich nur die Dokumente lese, bevor ich meine Zeit verschwende ... – WTFCoder123
Könnten Sie bitte Ihren Kommentar in eine Antwort umschreiben, damit ich akzeptieren kann? – WTFCoder123