Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Attenti a Poco F7: può essere il best buy del 2025. Recensione
Attenti a Poco F7: può essere il best buy del 2025. Recensione
Poco F7 5G, smartphone che punta molto sulle prestazioni grazie al processore Snapdragon 8s Gen 4 e a un display AMOLED da ben 6,83 pollici. La casa cinese mantiene la tradizione della serie F offrendo specifiche tecniche di alto livello a un prezzo competitivo, con una batteria generosissima da 6500 mAh e ricarica rapida a 90W che possono fare la differenza per gli utenti più esigenti.
Recensione Samsung Galaxy Z Fold7: un grande salto generazionale
Recensione Samsung Galaxy Z Fold7: un grande salto generazionale
Abbiamo provato per molti giorni il nuovo Z Fold7 di Samsung, un prodotto davvero interessante e costruito nei minimi dettagli. Rispetto al predecessore, cambiano parecchie cose, facendo un salto generazionale importante. Sarà lui il pieghevole di riferimento? Ecco la nostra recensione completa.
The Edge of Fate è Destiny 2.5. E questo è un problema
The Edge of Fate è Destiny 2.5. E questo è un problema
Bungie riesce a costruire una delle campagne più coinvolgenti della serie e introduce cambiamenti profondi al sistema di gioco, tra nuove stat e tier dell’equipaggiamento. Ma con risorse limitate e scelte discutibili, il vero salto evolutivo resta solo un’occasione mancata
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-02-2010, 10:05   #1
agente mm8
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
Utilizzo g++ sotto linux.
La mia map è dichiarata in questo modo:
Codice:
map<MioEvento, void(*)()> nomeMap;
Mi serve per abbinare una funzione (che ritorna void) a un certo evento. Quando questo evento viene generato, la funzione associata viene chiamata.

Qualcuno può aiutarmi?
Grazie in anticipo.
agente mm8 è offline   Rispondi citando il messaggio o parte di esso
Old 07-02-2010, 10:57   #2
Unrue
Senior Member
 
L'Avatar di Unrue
 
Iscritto dal: Nov 2002
Messaggi: 5848
Mm,
hai inserito questi nel codice?

Codice:
#include <map>
using namespace std;
e MioEvento è definito da qualche parte? Forse è meglio se riporti qualche riga di codice in più

Edit:
A me così compila:

Codice:
#include <iostream>
#include <map>
using namespace std;

int main ()
{

map<int, void(*)()> nomeMap;

return 0;
}
Quindi sicuramente il problema è nella definizione di MioEvento

Ultima modifica di Unrue : 07-02-2010 alle 11:05.
Unrue è offline   Rispondi citando il messaggio o parte di esso
Old 07-02-2010, 11:58   #3
agente mm8
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<...>.
agente mm8 è offline   Rispondi citando il messaggio o parte di esso
Old 07-02-2010, 11:59   #4
Unrue
Senior Member
 
L'Avatar di Unrue
 
Iscritto dal: Nov 2002
Messaggi: 5848
Quote:
Originariamente inviato da agente mm8 Guarda i messaggi
MioEvento lo prendo da una libreria esterna.
Naturalmente ho importato l'header <map> e quando la dichiaro uso std::map<...>.
Riporta più codice, con una sola riga è davvero difficile capire il problema..

Ultima modifica di Unrue : 07-02-2010 alle 12:02.
Unrue è offline   Rispondi citando il messaggio o parte di esso
Old 07-02-2010, 15:14   #5
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da agente mm8 Guarda i messaggi
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
Utilizzo g++ sotto linux.
La mia map è dichiarata in questo modo:
Codice:
map<MioEvento, void(*)()> nomeMap;
Mi serve per abbinare una funzione (che ritorna void) a un certo evento. Quando questo evento viene generato, la funzione associata viene chiamata.

Qualcuno può aiutarmi?
Grazie in anticipo.
Il motivo per cui non funziona e' scritto nel messaggio di errore: manca l'operator < per il tipo chiave (ovvero MioEvento), che serve alla map
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
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 07-02-2010, 16:51   #6
agente mm8
Senior Member
 
Iscritto dal: Mar 2008
Messaggi: 401
Quote:
Originariamente inviato da marco.r Guarda i messaggi
Manca l'operator < per il tipo chiave (ovvero MioEvento)
Purtroppo non posso modificare MioEvento, in quanto fa parte di una libreria di terzi.

Quote:
Originariamente inviato da marco.r Guarda i messaggi
In alternativa puoi usare un nome diverso, e passarlo come terzo argomento template della map<>
Che intendi con un "nome diverso"?
agente mm8 è offline   Rispondi citando il messaggio o parte di esso
Old 08-02-2010, 07:53   #7
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da agente mm8 Guarda i messaggi
Purtroppo non posso modificare MioEvento, in quanto fa parte di una libreria di terzi.
Puoi implementarlo come funzione senza toccare la classe

Codice:
bool operator < ( const MioEvento& x, const MioEvento& y );
Quote:
Che intendi con un "nome diverso"?
Rettifico, devi usare un oggetto funzione:
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
marco.r è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Attenti a Poco F7: può essere il best buy del 2025. Recensione Attenti a Poco F7: può essere il best buy...
Recensione Samsung Galaxy Z Fold7: un grande salto generazionale Recensione Samsung Galaxy Z Fold7: un grande sal...
The Edge of Fate è Destiny 2.5. E questo è un problema The Edge of Fate è Destiny 2.5. E questo ...
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello Ryzen Threadripper 9980X e 9970X alla prova: AMD...
Acer TravelMate P4 14: tanta sostanza per l'utente aziendale Acer TravelMate P4 14: tanta sostanza per l'uten...
TSMC produrrà a 2 nm anche in Ari...
Tesla vuole Musk a tutti i costi: propos...
Spotify aumenta i prezzi: da 10,99 a 11,...
Prezzi folli su AliExpress con Choice Da...
IA ed etica: Fastweb+Vodafone fra le pri...
Pannelli solari nuovi o riciclati? Quest...
Instagram cambia le regole per i Live: n...
Windows 11 SE addio: Microsoft stabilisc...
Kali Linux più facile su macOS gr...
È la fine per le antenne 5G? Al l...
WhatsApp, una taglia da 1 milione di dol...
Sembrava spacciato, poi una bici elettri...
Apple Watch Series 1 diventa obsoleto: a...
ho. Mobile, upgrade a 250 GB senza sovra...
Reddit non avrà post a pagamento,...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 19:50.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v