std::swap - cppreference.com
特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数) [编辑] 特化 std::swap 算法
(函数) [编辑] 特化 std::swap 算法
(函数) [编辑] 特化 std::swap 算法
(函数) [编辑] 特化 std::swap 算法
(函数) [编辑] 特化 std::swap 算法
(函数) [编辑]
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数模板) [编辑] 特化 std::swap 算法
(函数) [编辑] 特化 std::swap 算法
(函数) [编辑] 特化 std::swap 算法
(函数) [编辑] 特化 std::swap 算法
(函数) [编辑] 特化 std::swap 算法
(函数) [编辑] 特化 std::swap 算法
(函数) [编辑]
#include <algorithm> #include <iostream> namespace Ns { class A { int id {}; friend void swap(A& lhs, A& rhs) { std::cout << "swap(" << lhs << ", " << rhs << ")\n"; std::swap(lhs.id, rhs.id); } friend std::ostream& operator<< (std::ostream& os, A const& a) { return os << "A::id=" << a.id; } public: A(int i) : id{i} {} A(A const&) = delete; A& operator = (A const&) = delete; }; } int main() { int a = 5, b = 3; std::cout << a << ' ' << b << '\n'; std::swap(a, b); std::cout << a << ' ' << b << '\n'; Ns::A p{6}, q{9}; std::cout << p << ' ' << q << '\n'; // std::swap(p, q); // 错误,不满足类型要求 swap(p, q); // OK:实参依赖查找找到了合适的友元 swap std::cout << p << ' ' << q << '\n'; }
输出:
5 3 3 5 A::id=6 A::id=9 swap(A::id=6, A::id=9) A::id=9 A::id=6