mirror of
https://github.com/boostorg/fiber.git
synced 2026-02-20 14:42:21 +00:00
fix async() overload
This commit is contained in:
@@ -23,12 +23,12 @@ namespace fibers {
|
||||
|
||||
template< typename Fn, typename ... Args >
|
||||
future<
|
||||
typename std::result_of<
|
||||
typename std::enable_if<
|
||||
! detail::is_launch_policy< typename std::decay< Fn >::type >::value,
|
||||
typename std::decay< Fn >::type( typename std::decay< Args >::type ... )
|
||||
>::type
|
||||
>::type
|
||||
typename std::result_of<
|
||||
typename std::enable_if<
|
||||
! detail::is_launch_policy< typename std::decay< Fn >::type >::value,
|
||||
typename std::decay< Fn >::type
|
||||
>::type( typename std::decay< Args >::type ... )
|
||||
>::type
|
||||
>
|
||||
async( Fn && fn, Args && ... args) {
|
||||
typedef typename std::result_of<
|
||||
@@ -44,12 +44,12 @@ async( Fn && fn, Args && ... args) {
|
||||
|
||||
template< typename Policy, typename Fn, typename ... Args >
|
||||
future<
|
||||
typename std::result_of<
|
||||
typename std::enable_if<
|
||||
detail::is_launch_policy< Policy >::value,
|
||||
typename std::decay< Fn >::type( typename std::decay< Args >::type ... )
|
||||
>::type
|
||||
>::type
|
||||
typename std::result_of<
|
||||
typename std::enable_if<
|
||||
detail::is_launch_policy< Policy >::value,
|
||||
typename std::decay< Fn >::type
|
||||
>::type( typename std::decay< Args >::type ...)
|
||||
>::type
|
||||
>
|
||||
async( Policy policy, Fn && fn, Args && ... args) {
|
||||
typedef typename std::result_of<
|
||||
@@ -63,35 +63,14 @@ async( Policy policy, Fn && fn, Args && ... args) {
|
||||
return f;
|
||||
}
|
||||
|
||||
template< typename StackAllocator, typename Fn, typename ... Args >
|
||||
future<
|
||||
typename std::result_of<
|
||||
typename std::enable_if<
|
||||
! detail::is_launch_policy< typename std::decay< Fn >::type >::value,
|
||||
typename std::decay< Fn >::type( typename std::decay< Args >::type ... )
|
||||
>::type
|
||||
>::type
|
||||
>
|
||||
async( std::allocator_arg_t, StackAllocator salloc, Fn && fn, Args && ... args) {
|
||||
typedef typename std::result_of<
|
||||
typename std::decay< Fn >::type( typename std::decay< Args >::type ... )
|
||||
>::type result_t;
|
||||
|
||||
packaged_task< result_t( typename std::decay< Args >::type ... ) > pt{
|
||||
std::allocator_arg, salloc, std::forward< Fn >( fn) };
|
||||
future< result_t > f{ pt.get_future() };
|
||||
fiber{ std::move( pt), std::forward< Args >( args) ... }.detach();
|
||||
return f;
|
||||
}
|
||||
|
||||
template< typename Policy, typename StackAllocator, typename Fn, typename ... Args >
|
||||
future<
|
||||
typename std::result_of<
|
||||
typename std::enable_if<
|
||||
detail::is_launch_policy< Policy >::value,
|
||||
typename std::decay< Fn >::type( typename std::decay< Args >::type ... )
|
||||
>::type
|
||||
>::type
|
||||
typename std::result_of<
|
||||
typename std::enable_if<
|
||||
detail::is_launch_policy< Policy >::value,
|
||||
typename std::decay< Fn >::type
|
||||
>::type( typename std::decay< Args >::type ... )
|
||||
>::type
|
||||
>
|
||||
async( Policy policy, std::allocator_arg_t, StackAllocator salloc, Fn && fn, Args && ... args) {
|
||||
typedef typename std::result_of<
|
||||
|
||||
Reference in New Issue
Block a user