std::experimental::unique_resource::operator=(3)

NAME
std::experimental::unique_resource::operator= - std::experimental::unique_resource::operator=

Synopsis
   unique_resource& operator=( unique_resource&& other ) (library fundamentals TS v3)
       noexcept(/*see below*/);
   Move assignment operator. Replaces the managed resource and the deleter with
   other's.
   Formally, let RS be the type of stored resource handle:
     * First, calls reset() to dispose the currently owned resource, if any.
     * Then assigns the stored resource handle and the deleter with other's. std::move
       is applied to the stored resource handle or the deleter of other if
       std::is_nothrow_move_assignable_v<RS> or std::is_nothrow_move_assignable_v<D> is
       true respectively. Assignment of the stored resource handle is executed first,
       unless std::is_nothrow_move_assignable_v<D> is false and
       std::is_nothrow_move_assignable_v<RS> is true.
     * Finally, sets *this to own the resource if and only if other owned it before
       assignment, and other not to own the resource.
   If std::is_nothrow_move_assignable_v<RS> is true, RS shall satisfy the
   MoveAssignable requirements; otherwise RS shall satisfy the CopyAssignable
   requirements. If std::is_nothrow_move_assignable_v<D> is true, D shall satisfy the
   MoveAssignable requirements; otherwise D shall satisfy the CopyAssignable
   requirements. Failing to satisfy above requirements results in undefined behavior.

Parameters
   other - resource wrapper from which ownership will be transferred

Return value
   *this

Exceptions
   Any exception thrown in copy-assignment.
   noexcept specification:
   noexcept(std::is_nothrow_move_assignable_v<RS> &&
   std::is_nothrow_move_assignable_v<D>)

Notes
   If a copy of a member throws an exception, this mechanism leaves other intact and
   *this in the released state.

Example
    This section is incomplete
    Reason: no example

See also
   reset disposes or replaces the managed resource
             (public member function)
   operator= assigns the unique_ptr
             (public member function of std::unique_ptr<T,Deleter>)

Categories:
     * conditionally noexcept
     * Todo no example