【发布时间】:2022-01-01 20:35:54
【问题描述】:
在我的 Fedora 34 环境 (g++) 中,std::accumulate 定义为:
template<typename ITER, typename T>
constexpr inline T accumulate(ITER first, ITER last, T init)
{
for (; first != last; ++first)
init = std::move(init) + *first; // why move ?
return init;
}
如果表达式init + *first已经是一个右值,那么std::move的用途是什么?
【问题讨论】: