From 01a2162eb0a0243409dc3aac874b21549e52194c Mon Sep 17 00:00:00 2001 From: Oliver Kowalke Date: Fri, 31 Jul 2015 10:48:00 +0200 Subject: [PATCH] async(): use rv-ref in result_of<> --- include/boost/fiber/future/async.hpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/boost/fiber/future/async.hpp b/include/boost/fiber/future/async.hpp index 1e840137..18873a08 100644 --- a/include/boost/fiber/future/async.hpp +++ b/include/boost/fiber/future/async.hpp @@ -20,9 +20,9 @@ namespace boost { namespace fibers { template< typename Fn, typename ... Args > -future< typename std::result_of< Fn( Args ... ) >::type > +future< typename std::result_of< Fn&&( Args && ... ) >::type > async( Fn && fn, Args && ... args) { - typedef typename std::result_of< Fn( Args ... ) >::type result_type; + typedef typename std::result_of< Fn&&( Args && ... ) >::type result_type; packaged_task< result_type( Args ... ) > pt( std::forward< Fn >( fn) ); future< result_type > f( pt.get_future() ); @@ -31,9 +31,9 @@ async( Fn && fn, Args && ... args) { } template< typename StackAllocator, typename Fn, typename ... Args > -future< typename std::result_of< Fn( Args ... ) >::type > +future< typename std::result_of< Fn&&( Args && ... ) >::type > async( StackAllocator salloc, Fn && fn, Args && ... args) { - typedef typename std::result_of< Fn( Args ... ) >::type result_type; + typedef typename std::result_of< Fn&&( Args && ... ) >::type result_type; packaged_task< result_type( Args ... ) > pt( std::forward< Fn >( fn), std::forward< Args >( args) ... );