我刚刚写了一个小辅助函数作为包装器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
?该功能看起来如此明显,以至于不能被忽视;有人有充分的理由强制第三个参数。
(另请参阅了解 std::accumulate - 我理解您为什么想要提供初始值的能力,我只是不明白为什么它是强制性的)