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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
cPersonne Personne;
Personne.nom = "nom";
Personne.prenom="prenom";
..
..
..
 
SetPersonne.insert(personne);
voici l'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 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