supprimer des éléments avec une valeur spécifique de std::list

J'ai besoin de supprimer des éléments avec une valeur spécifique de std::list. Avec le list<int> j'ai utilisé la méthode remove ().

Maintenant, j'ai list<CMyClass> alors j'ai pensé que je devrais utiliser remove_if() mais c'est prédicat prend un seul paramater - l'élément à tester.

Comment puis-je écrire une fonction foo(const CMyClass &Bad) qui enlève de la liste de tous les éléments égaux à Mauvais?

Grâce

PS

struct CMyClass {
    void *Ptr;
    int Var;
}

bool is_equal(const CMyClass &A, const CMyClass &B)
{
    if (A.Ptr == B.Prt and A.Var == B.Var)
        return true;
    else
        return false;
}
s'il vous plaît ajouter CMyClass exemple de définition et de critères de correspondance.
Je pense que le principal problème est que vous ne pouvez pas soumettre une autre paramètre de données que vous pouvez utiliser pour comparer. Je ne sais pas si les objets de fonction peut vous aider ici (jamais utilisé).

OriginalL'auteur jackhab | 2009-03-24