Pour trier un vector d'une classe que j'ai cr��e, j'ai besoin de surcharger l'op�rateur <. C'est la premi�re fois que je fais un truc pareil et �a marche pas
Voici le code :
.h
.cpp :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10 class TDetails { private: int Type; AnsiString FileName, Path, Version; TDateTime InstallDate; public: bool operator < (const TDetails &d); };
Ma classe se compile bien mais lors de la compile de celle qui trie le vector, j'ai une erreur "'operator<' non impl�ment� dans le type 'TDetails' pour les arguments du m�me type", avec la ligne suivante en erreur dans _function_base.h :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6 bool TDetails::operator < (const TDetails &d) { if (d.GetVersion()!="") return Version < d.GetVersion(); return InstallDate < d.GetInstallDate(); }
Voici le code appelant :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5 template <class _Tp> struct less : public binary_function<_Tp,_Tp,bool> { bool operator()(const _Tp& __x, const _Tp& __y) const { return __x < __y; } };
O� donc qu'elle est l'erreur ?
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3 vector<TDetails> details; (...) sort(details.begin(), details.end());![]()
Partager