Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

object::operator= (2 of 3 overloads)
PrevUpHomeNext

Move assignment.

Synopsis
object&
operator=(
    object&& other);
Description

The contents of the object are replaced with the contents of other using move semantics:

  • If *other.storage() == *sp, ownership of the underlying memory is transferred in constant time, with no possibility of exceptions. After assignment, the moved-from object behaves as if newly constructed with its current storage pointer.
  • If *other.storage() != *sp, an element-wise copy is performed, which may throw. In this case, the moved-from object is not changed.
Complexity

Constant or linear in size() plus other.size().

Exception Safety

Strong guarantee. Calls to memory_resource::allocate may throw.

Parameters

Name

Description

other

The object to move.


PrevUpHomeNext