私のコードでは、正確な動作を関数オブジェクトによってカスタマイズできるという点で、いくつかの標準ライブラリアルゴリズムに似た設計戦略を採用しています。最も単純な例はstd::sortで、関数オブジェクトはオブジェクト間の比較方法を制御できます。
VisualC++がstd::sortの2つの実装を提供していることに気付きました。これには、当然、コードの重複が含まれます。代わりに、実装を1つだけにして、デフォルトのテンプレートパラメーターとしてデフォルトのコンパレーター(operator <を使用)を提供することが可能であると想像していました。
2つの別々のバージョンの背後にある理由は何ですか?私の提案は、何らかの方法でインターフェースをより複雑にするでしょうか?または、オブジェクトが演算子を提供しない場合、混乱するエラーメッセージが表示されます<?それともうまくいかないのでしょうか?
ありがとう、
デビッド