私はこの定義済みの関数を持っています。remove_if:boolを返す関数を渡すときの述語エラー
void attack(std::vector<GameObject*> objects, unsigned damage) {
for (GameObject* object : objects) {
object->takeDamage(damage);
auto isDead = object->isDead();
objects.erase(std::remove_if(objects.begin(),objects.end(),isDead), objects.end());
}
}
これはこれは私が得続ける誤りである私のisDead機能
bool isDead() const {
if (destructed) {
std::cout << "memory error" << std::endl;
}
return life <= 0;
}
です。多くのことを試しましたが、これを理解することは一切できません。どんな助けにも感謝!
エラー:表現は関数として使用できません。 {return bool(_M_pred(* __ it)); }
あなたは 'そのエラーがで起こっている行のstd :: bind' – Slava
あなたが使用することはできません方法を含むようにあなたの質問を編集してください? – Slava
を使用する必要がある一般的な機能のような[MCVE] – Barmar