value::swap
Swap the given values.
Synopsis
void
swap(
value& other);
Description
Exchanges the contents of this value with another value. Ownership of the respective boost::container::pmr::memory_resource
objects is not transferred:
-
If
*other.storage() == *this->storage()
, ownership of the underlying memory is swapped in constant time, with no possibility of exceptions. All iterators and references remain valid. -
If
*other.storage() != *this->storage()
, the contents are logically swapped by making copies, which can throw. In this case all iterators and references are invalidated.
Complexity
Constant or linear in the sum of the sizes of the values.
Exception Safety
Strong guarantee. Calls to memory_resource::allocate
may throw.
Parameters
Name | Description |
---|---|
|
The value to swap with. If |