mirror of
https://github.com/boostorg/fiber.git
synced 2026-02-16 01:12:29 +00:00
fix result_of<> usage
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user