条件演算子のオーバーロード

GCC2.95では、条件演算子?:をオーバーロードできる。

class hoge;

hoge operator?:(const hoge& cond, const hoge& texpr, const hoge& fexpr)
{
  // 条件演算子の実装
}

条件演算子を定義する関数は、二つの引数をもつメンバ関数、三つの引数をもつ非メンバ関数のどちらでも定義可能。
この拡張機能を使うと、警告が出る。
警告を出さなくするオプションはおそらく存在しない。