のラッパーとして小さなヘルパー関数を書きましたstd::accumulate
:
template <typename FwdIter> inline
auto accumulate(FwdIter begin, FwdIter end) -> std::iterator_traits<FwdIter>::value_type
{
return std::accumulate(begin, end, std::iterator_traits<FwdIter>::value_type());
}
私はおそらくここで何かを見落としています。これが の既存のオーバーロードではないのはなぜstd::accumulate
ですか? この機能は非常に明白であるため、見逃すことはできません。誰かがその 3 番目のパラメーターを必須にする正当な理由がありました。
( std::accumulate の理解も参照してください- 初期値を提供する機能が必要な理由は理解していますが、それが必須である理由がわかりません)