Surcharge d'opérateur == sur une pair
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:
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:
Citation:
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 :x
Donc je tente:
Code:
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:
Citation:
D:\C++\projects\Servers\Master\..\Shared\Event.h|36|error: too few template-parameter-lists|
Comment faire pour que cela marche? :mouarf:
merci!