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
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);
};
.cpp :
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();
}
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
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 : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
vector<TDetails> details;
(...)
sort(details.begin(), details.end());
O� donc qu'elle est l'erreur ?