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
Swap the contents.
void swap( string& other);
Exchanges the contents of this string with another string. Ownership
of the respective memory_resource objects is not
transferred.
&other
== this,
do nothing. Otherwise,
*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. Otherwise,
Constant or linear in size()
plus other.size().
Strong guarantee. Calls to memory_resource::allocate
may throw.