table of contents
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)
(until C++20)
std::basic_string<CharT, Traits, Alloc> &rhs ) noexcept(/* see
below
*/);
template< class CharT, class Traits, class Alloc >
constexpr void
swap( std::basic_string<CharT, Traits, Alloc> &lhs, (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 <string>
#include <iostream>
int main()
{
std::string a = "AAAA";
std::string b = "BBB";
std::cout << "before swap" << '\n';
std::cout << "a: " << a << '\n';
std::cout << "b: " << b << '\n';
std::swap(a,b);
std::cout << "after swap" << '\n';
std::cout << "a: " << a << '\n';
std::cout << "b: " << b << '\n';
}
Output:¶
before swap
a: AAAA
b: BBB
after swap
a: BBB
b: AAAA
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)
2022.07.31 | http://cppreference.com |