void swap( pair& other ) noexcept(/* see below */);
(since C++11)constexpr void swap( pair& other ) noexcept(/* see below */);
(since C++20)constexpr void swap( const pair& other ) const noexcept(/* see below */);
(2) (since C++23)Swaps first
with other.first
and second
with other.second
, as if by using std::swap; swap(first, other.first); swap(second, other.second);.
If either selected swap
function call is ill-formed or does not swap the value of the member, the behavior is undefined.
If either selected swap
function call does not swap the value of the member, the behavior is undefined.
(none)
[edit] Exceptions [edit] Example#include <iostream> #include <utility> #include <string> int main() { std::pair<int, std::string> p1(10, "test"), p2; p2.swap(p1); std::cout << "(" << p2.first << ", " << p2.second << ")\n"; #if __cpp_lib_ranges_zip >= 202110L // Using the C++23 const qualified swap overload // (swap is no longer propagating pair constness) int i1 = 10, i2{}; std::string s1("test"), s2; const std::pair<int&, std::string&> r1(i1, s1), r2(i2, s2); r2.swap(r1); std::cout << "(" << i2 << ", " << s2 << ")\n"; #endif }
Possible output:
[edit] Defect reportsThe following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR Applied to Behavior as published Correct behavior LWG 2456 C++11 thenoexcept
specification is ill-formed made to work [edit] See also swaps the values of two objects
tuple
s
std::tuple<Types...>
) [edit]
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4