From 3fc1dd846c4e5b72b6141a89f08790c85f84df31 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sun, 22 May 2022 16:09:13 +0100 Subject: Replace transform_reduce with a lambda and transform I just hate the amount of object code transform_reduce produces --- netfs/fuse/fuseFiles.cpp | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/netfs/fuse/fuseFiles.cpp b/netfs/fuse/fuseFiles.cpp index 82df245..29a0096 100644 --- a/netfs/fuse/fuseFiles.cpp +++ b/netfs/fuse/fuseFiles.cpp @@ -138,15 +138,14 @@ namespace NetFS { return f(key); } else { - const auto overlap = std::transform_reduce( - R.first, R.second, std::vector> {}, - [](auto && v, auto && i) { - v.push_back(i); - return std::forward(v); - }, - [](auto && i) { - return i.second->future; - }); + const auto overlap = [R]() { + std::vector> out; + out.reserve(safe {std::distance(R.first, R.second)}); + std::transform(R.first, R.second, std::back_inserter(out), [](auto && i) { + return i.second->future; + }); + return out; + }(); // Wait for them whilst unlocked lock.release()->unlock(); try { -- cgit v1.2.3