|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Mar 2008
Messaggi: 401
|
[C++] map: operator<
Salve a tutti, sto utilizzando una map e, al momento della compilazione, ricevo questo errore:
Codice:
no match for ‘operator<’ in ‘__x < __y’ line 230, external location: /usr/include/c++/4.4/bits/stl_function.h La mia map è dichiarata in questo modo: Codice:
map<MioEvento, void(*)()> nomeMap; Qualcuno può aiutarmi? Grazie in anticipo. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2002
Messaggi: 5707
|
Mm,
hai inserito questi nel codice? Codice:
#include <map> using namespace std; Edit: A me così compila: Codice:
#include <iostream> #include <map> using namespace std; int main () { map<int, void(*)()> nomeMap; return 0; } Ultima modifica di Unrue : 07-02-2010 alle 11:05. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Mar 2008
Messaggi: 401
|
MioEvento lo prendo da una libreria esterna.
Naturalmente ho importato l'header <map> e quando la dichiaro uso std::map<...>. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Nov 2002
Messaggi: 5707
|
Riporta più codice, con una sola riga è davvero difficile capire il problema..
Ultima modifica di Unrue : 07-02-2010 alle 12:02. |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
per poter distinguere elementi diversi (o meglio ordinarli nell'albero r-b sottostante). Una volta implementato l'operatore l'errore dovrebbe sparire. In alternativa puoi usare un nome diverso, e passarlo come terzo argomento template della map<>
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Mar 2008
Messaggi: 401
|
Purtroppo non posso modificare MioEvento, in quanto fa parte di una libreria di terzi.
Che intendi con un "nome diverso"? |
![]() |
![]() |
![]() |
#7 | ||
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
Codice:
bool operator < ( const MioEvento& x, const MioEvento& y ); Quote:
Codice:
struct compare { bool operator ()( const MioEvento& x, const MioEvento& y ) { return ???; } }; int main() { map<MioEvento,bool,compare> myMap; ... }
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
||
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:49.