Scroll to navigation

std::swap(std::basic_string)(3) C++ Standard Libary std::swap(std::basic_string)(3)

NAME

std::swap(std::basic_string) - std::swap(std::basic_string)

Synopsis


Defined in header <string>
template< class CharT, class Traits, class Alloc >


void swap( std::basic_string<CharT, Traits, Alloc>& lhs, (until C++17)


std::basic_string<CharT, Traits, Alloc>& rhs );
template< class CharT, class Traits, class Alloc >


void swap( std::basic_string<CharT, Traits, Alloc>& lhs, (since C++17)
(constexpr since C++20)
std::basic_string<CharT, Traits, Alloc>& rhs )
noexcept(/* see below */);


Specializes the std::swap algorithm for std::basic_string. Swaps the contents of lhs
and rhs.


Equivalent to lhs.swap(rhs).

Parameters


lhs, rhs - strings whose contents to swap

Return value


(none)

Complexity


Constant.

Exceptions


(since C++17)
noexcept specification:
noexcept(noexcept(lhs.swap(rhs)))

Example

// Run this code


#include <iostream>
#include <string>


int main()
{
std::string a = "AAA";
std::string b = "BBBB";


std::cout << "Before swap:\n"
"a = " << a << "\n"
"b = " << b << "\n\n";


std::swap(a, b);


std::cout << "After swap:\n"
"a = " << a << "\n"
"b = " << b << '\n';
}

Output:


Before swap:
a = AAA
b = BBBB


After swap:
a = BBBB
b = AAA


Defect reports


The following behavior-changing defect reports were applied retroactively to
previously published C++ standards.


DR Applied to Behavior as published Correct behavior
LWG 2064 C++11 non-member swap was noexcept and inconsistent noexcept removed
with member swap

See also


swap swaps the contents
(public member function)

Category:


* conditionally noexcept

2024.06.10 http://cppreference.com