This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of C++11 status.

### 1514. `packaged_task` constructors need review

Section: 32.9.10.2 [futures.task.members] Status: C++11 Submitter: INCITS Opened: 2010-08-25 Last modified: 2016-01-28

Priority: Not Prioritized

View all other issues in [futures.task.members].

View all issues with C++11 status.

Discussion:

Addresses US-207

The constructor that takes `R(*)(ArgTypes...)` is not needed; the constructor that takes a callable type works for this argument type. More generally, the constructors for packaged_task should parallel those for function.

[ US-207 Suggested Resolution: ]

> Review the constructors for packaged_task and provide the same ones as function, except where inappropriate.

[ 2010-10-22 Howard provides wording, as requested by the LWG in Rapperswil. ]

[2011-02-10 Reflector discussion]

Moved to Tentatively Ready after 5 votes.

Proposed resolution:

Alter the list of constructors in both 32.9.10 [futures.task] and in 32.9.10.2 [futures.task.members] as indicated:

>     template <class F>
>     explicit packaged_task(F f);
>     template <class F, class Allocator>
>     explicit packaged_task(allocator_arg_t, const Allocator& a, F f);
>     explicit packaged_task(R(*f)(ArgTypes...));
>     template <class F>
>     explicit packaged_task(F&& f);
>     template <class F, class Allocator>
>     explicit packaged_task(allocator_arg_t, const Allocator& a, F&& f);