特定の型のインスタンスを相互に比較できるように、一連のクラスを作成する必要があります。
各クラスに固有の比較メソッドを作成し、次のコードを各クラス定義に追加して、 T を現在のクラスの名前に置き換えることを考えました。
bool operator== (const T& L, const T& R) {return L.compare(R)==0;}
bool operator!= (const T& L, const T& R) {return L.compare(R)!=0;}
bool operator< (const T& L, const T& R) {return L.compare(R)<0;}
bool operator<= (const T& L, const T& R) {return L.compare(R)<=0;}
bool operator> (const T& L, const T& R) {return L.compare(R)>0;}
bool operator>= (const T& L, const T& R) {return L.compare(R)>=0;}
ただし、これは一種の繰り返しです。それを行うより一般的な方法はありますか?そのためのマクロを作成して、T でパラメーター化することもできると思いますが、マクロは今ではあまり cplusplusy ではありませんね。継承とポリモーフィズムについても考えましたが、それについて読んだところ (私はまだ仮想クラスを使用していません。C++ は初めてです)、不必要なランタイム オーバーヘッドを導入しているように思えます。 m は、基本クラス ポインターを介して均一にアクセスする必要はありません。マクロやコピー&ペースト以外に、それを達成するためのより良い方法はありますか?