|
|
|
Defined in header <string> | ||
template<class CharT,class Traits,class Alloc> void swap(std::basic_string<CharT, Traits, Alloc>& lhs, | (until C++17) | |
template<class CharT,class Traits,class Alloc> void swap(std::basic_string<CharT, Traits, Alloc>& lhs, | (since C++17) (constexpr since C++20) | |
Specializes thestd::swap algorithm forstd::basic_string. Swaps the contents oflhs andrhs.
Equivalent tolhs.swap(rhs).
Contents |
lhs, rhs | - | strings whose contents to swap |
(none)
Constant.
Exceptionsnoexcept specification: noexcept(noexcept(lhs.swap(rhs))) | (since C++17) |
#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 = AAAb = BBBB After swap:a = BBBBb = AAA
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-memberswap was noexcept and inconsistent with memberswap | noexcept removed |
swaps the contents (public member function)[edit] |