Bonsoir
Certains programmes que j'avais compilés sans problème avec bcb5, édition professionnelle, ne se compilent plus avec bcb6, édition professionnelle.
J'ai créé une classe :
A la compilation il y a une erreur générée par la ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 class TFichier { public : AnsiString FNom; AnsiString FRepertoire; AnsiString FNouveauNom; TFichier() { FRepertoire=""; FNom=""; FNouveauNom=""; }; bool operator < (const TFichier& aFichier) { AnsiString asFRepertoire=FRepertoire.UpperCase(), asRepertoire=(aFichier.FRepertoire).UpperCase(); if(asFRepertoire < asRepertoire) return true; else { AnsiString asFNom=FNom.UpperCase(), asNom=(aFichier.FNom).UpperCase(); if(asFRepertoire > asRepertoire) return false; else { if( (asFRepertoire + asFNom) < (asRepertoire + asNom)) return true; else return false; }; } } }; typedef list<TFichier> LISTFICHIER; LISTFICHIER ListFichier;
Le message est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ListFichier.sort();
[C++ Erreur] _function_base.[73]: E2093 'operator<' non implémenté dans le type 'TFichier' pour les argument du même type.
Ce qui est surligné dans _function_base.h est :
Quelqu'un sait-il pourquoi cela se produit avec bcb6 et pas bcb5
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 template <class _Tp> struct less : public binary_function<_Tp,_Tp,bool> { bool operator()(const _Tp& __x, const _Tp& __y) const { return __x < __y; } };
Merci
Partager