From 3272f3ca8adb97ce7ac97d0407fa914e6b48a4bc Mon Sep 17 00:00:00 2001 From: Oliver Kowalke Date: Sun, 13 Dec 2015 10:52:18 +0100 Subject: [PATCH] fix result_of<> usage --- include/boost/fiber/future/async.hpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/include/boost/fiber/future/async.hpp b/include/boost/fiber/future/async.hpp index b6792a8d..13f3d025 100644 --- a/include/boost/fiber/future/async.hpp +++ b/include/boost/fiber/future/async.hpp @@ -21,24 +21,22 @@ 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( typename std::decay< Args >::type ... ) > pt{ - std::forward< Fn >( fn) }; + packaged_task< result_type( Args && ... ) > pt{ std::forward< Fn >( fn) }; future< result_type > f{ pt.get_future() }; fiber{ std::move( pt), std::forward< Args >( args) ... }.detach(); return f; } template< typename StackAllocator, typename Fn, typename ... Args > -future< typename std::result_of< Fn &&( Args && ... ) >::type > +future< typename std::result_of< Fn( Args && ... ) >::type > async( std::allocator_arg_t, 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( typename std::decay< Args >::type ... ) > pt{ - std::forward< Fn >( fn) }; + packaged_task< result_type( Args && ... ) > pt{ std::forward< Fn >( fn) }; future< result_type > f{ pt.get_future() }; fiber{ salloc, std::move( pt), std::forward< Args >( args) ... }.detach(); return f;