最小値、最大値を返す演算子

GCCのVer4.1以前のC++では、最小値、最大値を返す演算子<?、>?が利用できる。
この二つの演算子は、ビットORと論理ANDの間の結合順位をもつ左結合の演算子である。
GCCのマニュアルには、この演算子と似た振る舞いをもつ以下のマクロが紹介されている。

#define MIN(X,Y) ((X) < (Y) ? : (X) : (Y))

しかし、<? 及び >?演算子は、オペランドが同値のとき、左側のオペランドを返す点が、このマクロと異なる。
(標準C++のstd::min、std::maxと同じ振る舞いである。)
この演算子は、オーバーロードすることが可能である。
また、複合代入演算子<?=、>?=も存在する。