std::swap(std::weak_ptr) 来自cppreference.com < cpp | memory | weak ptr C++ 语言 标准库头文件 自立与有宿主实现 具名要求 语言支持库 概念库 (C++20) 诊断库 工具库 字符串库 容器库 迭代器库 范围库 (C++20) 算法库 数值库 本地化库 输入/输出库 文件系统库 (C++17) 正则表达式库 (C++11) 原子操作库 (C++11) 线程支持库 (C++11) 技术规范 工具库 语言支持 类型支持(基本类型、 RTTI 、类型特征) 库功能特性测试宏 (C++20) 动态内存管理 程序工具 错误处理 协程支持 (C++20) 变参数函数 launder(C++17) initializer_list(C++11) source_location(C++20) 三路比较 (C++20) three_way_comparablethree_way_comparable_with(C++20)(C++20) strong_ordering(C++20) weak_ordering(C++20) partial_ordering(C++20) common_comparison_category(C++20) compare_three_way_result(C++20) compare_three_way(C++20) strong_order(C++20) weak_order(C++20) partial_order(C++20) compare_strong_order_fallback(C++20) compare_weak_order_fallback(C++20) compare_partial_order_fallback(C++20) is_eqis_neqis_ltis_lteqis_gtis_gteq(C++20)(C++20)(C++20)(C++20)(C++20)(C++20) 通用工具 日期和时间 函数对象 格式化库 (C++20) bitset hash(C++11) integer_sequence(C++14) 关系运算符 (C++20 中弃用) rel_ops::operator!=rel_ops::operator>rel_ops::operator<=rel_ops::operator>= 整数比较函数 cmp_equalcmp_not_equalcmp_lesscmp_greatercmp_less_thancmp_greater_than(C++20)(C++20)(C++20)(C++20)(C++20)(C++20) in_range(C++20) swap 与类型运算 swap ranges::swap(C++20) exchange(C++14) declval(C++11) forward(C++11) move(C++11) move_if_noexcept(C++11) as_const(C++17) 常用词汇类型 pair tuple(C++11) apply(C++17) make_from_tuple(C++17) optional(C++17) any(C++17) variant(C++17) 初等字符串转换 to_chars(C++17) from_chars(C++17) chars_format(C++17) 动态内存管理 智能指针 unique_ptr(C++11) shared_ptr(C++11) weak_ptr(C++11) auto_ptr(C++17 前) owner_less(C++11) enable_shared_from_this(C++11) bad_weak_ptr(C++11) default_delete(C++11) 分配器 allocator allocator_traits(C++11) allocator_arg_t(C++11) allocator_arg(C++11) uses_allocator(C++11) uses_allocator_construction_args(C++20) make_obj_using_allocator(C++20) uninitialized_construct_using_allocator(C++20) scoped_allocator_adaptor(C++11) pmr::polymorphic_allocator(C++17) 内存资源 pmr::memory_resource(C++17) pmr::get_default_resource(C++17) pmr::set_default_resource(C++17) pmr::new_delete_resource(C++17) pmr::null_memory_resource(C++17) pmr::synchronized_pool_resource(C++17) pmr::unsynchronized_pool_resource(C++17) pmr::monotonic_buffer_resource(C++17) pmr::pool_options(C++17) 未初始化存储 raw_storage_iterator(C++20 前) get_temporary_buffer(C++20 前) return_temporary_buffer(C++20 前) 未初始化内存算法 uninitialized_copy uninitialized_fill uninitialized_move(C++17) uninitialized_default_construct(C++17) uninitialized_value_construct(C++17) destroy(C++17) destroy_at(C++17) uninitialized_copy_n(C++11) uninitialized_fill_n uninitialized_move_n(C++17) uninitialized_default_construct_n(C++17) uninitialized_value_construct_n(C++17) destroy_n(C++17) construct_at(C++20) 有制约的未初始化内存算法 ranges::uninitialized_copy(C++20) ranges::uninitialized_fill(C++20) ranges::uninitialized_move(C++20) ranges::uninitialized_default_construct(C++20) ranges::uninitialized_value_construct(C++20) ranges::destroy(C++20) ranges::destroy_at(C++20) ranges::uninitialized_copy_n(C++20) ranges::uninitialized_fill_n(C++20) ranges::uninitialized_move_n(C++20) ranges::uninitialized_default_construct_n(C++20) ranges::uninitialized_value_construct_n(C++20) ranges::destroy_n(C++20) ranges::construct_at(C++20) 垃圾收集支持 declare_reachable(C++11) undeclare_reachable(C++11) declare_no_pointers(C++11) undeclare_no_pointers(C++11) pointer_safety(C++11) get_pointer_safety(C++11) 杂项 pointer_traits(C++11) to_address(C++20) addressof(C++11) align(C++11) assume_aligned(C++20) C 库 malloc aligned_alloc(C++17) calloc realloc free 低层内存管理 std::weak_ptr 成员函数 weak_ptr::weak_ptr weak_ptr::~weak_ptr weak_ptr::operator= 修改器 weak_ptr::reset weak_ptr::swap 观察器 weak_ptr::use_count weak_ptr::expired weak_ptr::lock weak_ptr::owner_before 非成员函数 std::swap 辅助类 std::atomic<std::weak_ptr>(C++20) 推导指引(C++17) template< class T > void swap( weak_ptr<T>& lhs, weak_ptr<T>& rhs ) noexcept; (C++11 起) 为 std::weak_ptr 特化 std::swap 算法。交换 lhs 与 rhs 的指针。调用 lhs.swap(rhs) 。 参数 lhs, rhs - 要交换内容的智能指针 返回值 (无) 复杂度 常数 参阅 swap 交换两个对象的值 (函数模板) swap 交换内容 (公开成员函数)