Использование std::move в std::accumulate ⇐ C++
-
Гость
Использование std::move в std::accumulate
В моей среде Fedora 34 (g++) std::accumulate определяется как:
template constexpr встроенное T накопление (сначала ИТЭР, последнее ИТЭР, T инициализация) { for (; первый != последний; ++первый) init = std::move(init) + *first; // зачем двигаться? вернуть инициализацию; } Если выражение init + *first уже является rvalue, какова цель std::move ?
В моей среде Fedora 34 (g++) std::accumulate определяется как:
template constexpr встроенное T накопление (сначала ИТЭР, последнее ИТЭР, T инициализация) { for (; первый != последний; ++первый) init = std::move(init) + *first; // зачем двигаться? вернуть инициализацию; } Если выражение init + *first уже является rvalue, какова цель std::move ?
Мобильная версия