diff --git a/src/main.cpp b/src/main.cpp index b892019..c9240ec 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -42,8 +42,8 @@ int main(int argc, char* argv[]) { if (!files.empty()) { vector>>> Units; const launch& Policy = not parallel ? launch::deferred : launch::async; - for_each(files.begin(), files.end(), [&Units, &Policy, &compile](const string_view& fileName){ - Units.push_back(async(Policy, [&fileName, &compile]() { + transform(files.begin(), files.end(), back_inserter(Units), [&Policy, &compile](const string_view& fileName){ + return async(Policy, [&fileName, &compile]() { pair> resultingPair; try { resultingPair.first = compile(fileName); @@ -64,7 +64,7 @@ int main(int argc, char* argv[]) { resultingPair.second.emplace(error); } return resultingPair; - })); + }); }); if (printResult) cout << "~~~~[Yerbacon compilation result]~~~~\n\n"; for_each(Units.begin(), Units.end(), [&printResult](future>>& currentFuture) {