D に関するこのTech-Talk の時間 0:43:15 では、 min 関数の実装について説明しています。一部のアルゴリズムで使用される場合の「安定性」と「余分なシャッフル (値が等しい場合)」に関する懸念は、示されている実装の理由の 1 つとして提案されています。
min のこの特定の実装が、他の可能な実装とは対照的に「安定」(別名、より良い) である、実際の/実用的なユースケースを提供する (またはより詳細な説明を提供する) ことはできますか? それとも、これはアルファオタクが行き過ぎた例の 1 つにすぎないのでしょうか?
推奨される実装:
template <class LHS, class RHS, class Return>
inline Return min(LHS& lhs, RHS& rhs)
{
return (rhs < lhs) ? rhs : lhs;
}
他の可能な実装:
template <class LHS, class RHS, class Return>
inline Return min(LHS& lhs, RHS& rhs)
{
return (lhs < rhs) ? lhs: rhs;
}
提案N2199は後者に基づく実装を提供しますが、現時点では提案が成功していないことに注意してください。