C++で他の言語の優れた機能を実現しようと思ったときに
その言語で使われてる演算子を使いたい場合があります。
そういったときに、既存の演算子を代用するのではなく、
ユーザー定義の意味を持たせていい演算子がほしくなります。
たとえば、関数型言語の関数合成を行う場合、演算子を使用しない場合には以下のように書かなければならず
int result = compose(plus, minus)(1);
既存の演算子でがんばってもこのあたりが限界です。
(operator*使ってるひともいるけど)
int result = (plus ^compose^ minus)(1);
ユーザー定義の演算子が許可され、operator・をオーバーロードできれば以下のように書けるでしょう。
int result = (plus ・ minus)(1);
他にも、範囲を生成するためにoperator..があったらうれしいですし
(RubyとかHaskellとかいろんな言語にある機能)
range r = {1..5}; // {1, 2, 3, 4, 5}
リスト内包表記を実装するためのoperator<-とかもほしいです。
list ls = make[x * x | x <- {1..5}]; // {1, 4, 9, 16, 25}
あとは、よくわかってないですけどHaskellのArrowで使用されてる
>>>とか+++とか&&&みたいな演算子があるとうれしい人がいるかも。
ユーザー定義演算子があれば夢がひろがりんぐですよ。