Erro de Compilador C2803

'operador de operador deve ter pelo menos um parâmetro formal do tipo de classe

O operador sobrecarregado não possui um parâmetro de tipo de classe.

Você precisa passar pelo menos um parâmetro por referência (sem usar ponteiros, mas as referências) ou pelo valor deve ser capaz de gravar "um < b" (um e de classe a tipo b).

Se ambos os parâmetros são ponteiros, ele será uma comparação pura de endereços do ponteiro e não usará a conversão definida pelo usuário.

O exemplo a seguir gera C2803:

// C2803.cpp
// compile with: /c
class A{};
bool operator< (const A *left, const A *right);   // C2803
// try the following line instead
// bool operator< (const A& left, const A& right);