Problème de surcharge d'operateur <
:salut:
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 :king:
Voici le code :
.h
Code:
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);
}; |
.cpp :
Code:
1 2 3 4 5 6
| bool TDetails::operator < (const TDetails &d)
{
if (d.GetVersion()!="")
return Version < d.GetVersion();
return InstallDate < d.GetInstallDate();
} |
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:
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; }
}; |
Voici le code appelant :
Code:
1 2 3
| vector<TDetails> details;
(...)
sort(details.begin(), details.end()); |
Où donc qu'elle est l'erreur ? :?