diff --git a/opm/simulators/flow/SimulatorConvergenceOutput.cpp b/opm/simulators/flow/SimulatorConvergenceOutput.cpp index 7b4d53d130..5f58cf4e00 100644 --- a/opm/simulators/flow/SimulatorConvergenceOutput.cpp +++ b/opm/simulators/flow/SimulatorConvergenceOutput.cpp @@ -29,6 +29,7 @@ #include #include +#include #include #include #include @@ -74,16 +75,18 @@ write(const std::vector& reports) return; } - auto new_reports = std::vector { - reports.begin() + this->alreadyReportedSteps_, reports.end() - }; + const auto begin = reports.begin() + this->alreadyReportedSteps_; + const auto end = reports.end(); auto requests = std::vector{}; - requests.reserve(new_reports.size()); + requests.reserve(std::distance(begin, end)); - for (auto&& report : new_reports) { - requests.push_back({ report.report_step, report.current_step, std::move(report.report) }); - } + std::transform(begin, end, std::back_inserter(requests), + [](const StepReport& report) { + return ConvergenceReportQueue::OutputRequest { + report.report_step, report.current_step, report.report + }; + }); this->alreadyReportedSteps_ = reports.size();