swap

Swap the given values.

Synopsis

Defined in header <boost/json/value.hpp>.

void
swap(
    value& lhs,
    value& rhs);

Description

Exchanges the contents of value lhs with another value rhs. Ownership of the respective boost::container::pmr::memory_resource objects is not transferred.

  • If &lhs == &rhs, this function call has no effect.

  • If *lhs.storage() == *rhs.storage(), ownership of the underlying memory is swapped in constant time, with no possibility of exceptions. All iterators and references remain valid.

  • If *lhs.storage() != *rhs.storage, the contents are logically swapped by a copy, 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

lhs

The value to exchange.

rhs

The value to exchange.

See Also

Convenience header <boost/json.hpp>