История изменений
Исправление eao197, (текущая версия) :
Мы же говорили о том, что как сделать так, чтобы не пришлось менять код accumulate и код замыкания, но при этом итерация просто останавливалась на первой ошибке. Вот посредством такой обертки, но с потерей информации об ошибке.
Если же мы хотим чего-то другого, то придется менять сигнатуру замыкания, чтобы она получала какой-нибудь variant<T,exception_ptr>
. Ну и сделать такую обертку над итераторами, чтобы operator*
возвращал этот самый variant.
Исходная версия eao197, :
Мы же говорили о том, что как сделать так, чтобы не пришлось менять код accumulate и код замыкания, но при этом итерация просто останавливалась на первой ошибке. Вот посредством такой обертке, но с потерей информации об ошибке.
Если же мы хотим чего-то другого, то придется менять сигнатуру замыкания, чтобы она получала какой-нибудь variant<T,exception_ptr>
. Ну и сделать такую обертку над итераторами, чтобы operator*
возвращал этот самый variant.