From 0b215436b803dc4cf8e4521791cb67aff401e546 Mon Sep 17 00:00:00 2001 From: James Sedgwick Date: Thu, 8 Jan 2015 08:42:04 -0800 Subject: [PATCH] stop returning move(...) when unnecessary Summary: as discussed in another diff, this might help with NRVO Test Plan: unit Reviewed By: hans@fb.com Subscribers: trunkagent, fugalh, folly-diffs@ FB internal diff: D1764921 Signature: t1:1764921:1420677311:c6b63d7bf04c0e17283117b3edef798c288e5fbb --- folly/wangle/futures/Future-inl.h | 33 +++++++++++++------------------ 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/folly/wangle/futures/Future-inl.h b/folly/wangle/futures/Future-inl.h index 31cca9e5..66cadbcf 100644 --- a/folly/wangle/futures/Future-inl.h +++ b/folly/wangle/futures/Future-inl.h @@ -135,7 +135,7 @@ Future::then(F&& func) { }); }); - return std::move(f); + return f; } // Variant: f.then([](T&& t){ return t; }); @@ -167,7 +167,7 @@ Future::then(F&& func) { } }); - return std::move(f); + return f; } // Variant: f.then([](){ return; }); @@ -197,7 +197,7 @@ Future::then(F&& func) { } }); - return std::move(f); + return f; } // Variant: f.then([](Try&& t){ return makeFuture(t.value()); }); @@ -233,7 +233,7 @@ Future::then(F&& func) { } }); - return std::move(f); + return f; } // Variant: f.then([](T&& t){ return makeFuture(t); }); @@ -272,7 +272,7 @@ Future::then(F&& func) { } }); - return std::move(f); + return f; } // Variant: f.then([](){ return makeFuture(); }); @@ -310,7 +310,7 @@ Future::then(F&& func) { } }); - return std::move(f); + return f; } template @@ -442,17 +442,15 @@ void Future::raise(exception_wrapper exception) { template Future::type> makeFuture(T&& t) { Promise::type> p; - auto f = p.getFuture(); p.setValue(std::forward(t)); - return std::move(f); + return p.getFuture(); } inline // for multiple translation units Future makeFuture() { Promise p; - auto f = p.getFuture(); p.setValue(); - return std::move(f); + return p.getFuture(); } template @@ -461,12 +459,11 @@ auto makeFutureTry( typename std::enable_if::value, bool>::type sdf) -> Future { Promise p; - auto f = p.getFuture(); p.fulfil( [&func]() { return (func)(); }); - return std::move(f); + return p.getFuture(); } template @@ -478,9 +475,8 @@ auto makeFutureTry(F const& func) -> Future { template Future makeFuture(std::exception_ptr const& e) { Promise p; - auto f = p.getFuture(); p.setException(e); - return std::move(f); + return p.getFuture(); } template @@ -495,9 +491,8 @@ typename std::enable_if::value, Future>::type makeFuture(E const& e) { Promise p; - auto f = p.getFuture(); p.setException(make_exception_wrapper(e)); - return std::move(f); + return p.getFuture(); } template @@ -537,7 +532,7 @@ whenAll(Fs&&... fs) auto f_saved = ctx->p.getFuture(); detail::whenAllVariadicHelper(ctx, std::forward::type>(fs)...); - return std::move(f_saved); + return f_saved; } // when (iterator) @@ -574,7 +569,7 @@ whenAll(InputIterator first, InputIterator last) }); } - return std::move(f_saved); + return f_saved; } template @@ -600,7 +595,7 @@ whenAny(InputIterator first, InputIterator last) { }); } - return std::move(f_saved); + return f_saved; } template -- 2.34.1