The constructed object acquires the shared state of x (if any), and its stored task is moved.x is left with no shared state.

Versions (2) and (3) are never called if the decay type of Fn is the packaged_task.

Parameters

fn

A callable pointer to function, pointer to member, or any kind of move-constructible function object (i.e., an object whose class defines operator(), including closures and function objects).
The return type and arguments taken by this function shall correspond to the packaged_task's template parameters (Ret and Args...).
The stored task is set to fn (internally initialized with std::forward<Fn>(fn)).

aa

The std::allocator_arg value. This constant value is merely used to explicitly select this constructor overload.

alloc

Allocator object.
The container keeps and uses an internal copy of this allocator, and uses it to allocate storage for its internal data structures.

x

Another packaged_task object of the same type (with the same template parameters, Ret and Args).

Data races

The move constructor (5) modifies x.

Exception safety

Strong guarantee: no effects in case an exception is thrown.
Depending on the library implementation, this member function may throw exceptions on certain conditions (such as bad_alloc on a failure to allocate memory).
Neither the default (1) nor the move constructor (5) throw exceptions (no-throw guarantee).