Bonjour !

Voici le début du problème, j'ai une multimap<long, Event>, et je cherche a supprime une entrée grace a une fonction en passant comme argument une reference de Event

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
void EventFactory::DeleteEvent(const Event& ev)
{
    for(auto itr = _events.begin(); itr != _events.end(); ++itr)
    {
        if(itr->second == ev) 
        {
            _events.erase(itr);
        }
    }
}
Erreur sur la comparaison:
D:\C++\projects\Servers\Shared\EventFactory.cpp|19|error: no match for 'operator==' in 'itr.std::_Rb_tree_iterator<_Tp>::operator-> [with _Tp = std::pair<const long int, Event>]()->std::pair<const long int, Event>::second == ev'|

Evidemment, je n'ai jamais fait ca
Donc je tente:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
bool pair<long, Event>::operator==(const pair<long, Event> &comp) const {
{
    return ((this.second.Repeat() == comp.second.Repeat())
            && (this.second.Delay() == comp.second.Delay())
            && (this.second.Repeated() == comp.second.Repeated())
            && (this.first == comp.first));
}
Evidemment:

D:\C++\projects\Servers\Master\..\Shared\Event.h|36|error: too few template-parameter-lists|
Comment faire pour que cela marche?

merci!