5
標準ライブラリは、汎用アルゴリズムの述語バージョンと非述語バージョンを区別します。例えば、std::sort()
は、次のようになります。なぜ汎用アルゴリズムのために述語バージョンと非述語バージョンを区別するのですか?
template< class RandomIt >
void sort(RandomIt first, RandomIt last);
template< class RandomIt, class Compare >
void sort(RandomIt first, RandomIt last, Compare comp);
はただ次のことを書くのいずれかの問題がありますか?
template< class RandomIt, class Compare = std::less<void>>
void sort(RandomIt first, RandomIt last, Compare comp = Compare{});
C++ 03では、関数テンプレートのデフォルトのテンプレート引数はありませんでした。 –
@ T.C。それで、2番目のフォームが優先されるべきであるならば、すべてを再設計するとしますか? – Lingxi
@ T.C。私はデフォルトのテンプレート引数の事実は答えだと思う。 – Angew