Bonsoir,
J'essaie de convertir un vieux projet c++ Builder en Qt.
je pêche sur la surcharge des opérateur == et < dans une classe.
voici la definition dans c++ builder:
1 2 3 4
| friend int operator < ( const cPersonne &s1, const cPersonne &s2 )
{
return ( (s1.nom+"|"+s1.prenom+"|"+s1.initiale+"|"+s1.initiale2+"|"+s1.suffixe) < (s2.nom+"|"+s2.prenom+"|"+s2.initiale+"|"+s2.initiale2+"|"+s2.suffixe) );
};*/ |
et voici comment je l'ai transformé dans qt
1 2 3 4
| bool operator == ( cPersonne &s1 )
{
return ((nom+"|"+prenom+"|"+initiale+"|"+initiale2+"|"+suffixe) == (s1.nom+"|"+s1.prenom+"|"+s1.initiale+"|"+s1.initiale2+"|"+s1.suffixe));
}; |
j'obtiens une erreur de compilation lorsque je veux insérer mon objet dans un set
1 2 3 4 5 6 7 8 9
|
cPersonne Personne;
Personne.nom = "nom";
Personne.prenom="prenom";
..
..
..
SetPersonne.insert(personne); |
voici l'erreur:
erreur : static assertion failed: The key type must have a qHash overload or a std::hash specialization
J'ai parcouru internet afin d'identifié ce qui lui pose problème mais sans succès.
auriez vous une idée?
merci
Cordialement
Partager