コンパイラ エラー C2803
'operator operator' の宣言で、クラス型のパラメーターが 1 つも指定されていません
オーバーロードされた演算子には、クラス型のパラメーターがありません。
"a < b" (a と b は型クラス A) を記述できるようにするには、少なくとも 1 つのパラメーターの参照 (ポインターではなく参照を使用) または値で渡す必要があります。
両方のパラメーターがポインターの場合、ポインター アドレスの純粋な比較であり、ユーザー定義の変換は使用されません。
次の例では 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);