документация на cppreference.com гласит:СТД :: накапливает BinaryOperator побочных эффектов
оп не должен привести к недействительности итераторов, в том числе конечных итераторов, или изменять любые элементы диапазона вовлеченного (так как с + +11)
Позже показана реализация possibile, что я сообщаю здесь:
template<class InputIt, class T, class BinaryOperation>
T accumulate(InputIt first, InputIt last, T init,
BinaryOperation op)
{
for (; first != last; ++first) {
init = op(init, *first);
}
return init;
}
Как op может «аннулировать некоторые итераторы» или «изменять элементы диапазона», предполагая эту реализацию std :: accumulate?
' [& VEC] (Int А, Int б) {vec.clear(); return a + b; } '? – LogicStuff