命名空间
变体
操作

std::weak_ptr<T>::owner_equal

来自 cppreference.com
< cpp‎ | memory‎ | weak ptr
 
 
实用程序库
语言支持
类型支持 (基本类型,RTTI)
库功能测试宏 (C++20)
动态内存管理
程序实用程序
协程支持 (C++20)
可变参数函数
调试支持
(C++26)
三向比较
(C++20)
(C++20)(C++20)(C++20)
(C++20)(C++20)(C++20)
通用实用程序
日期和时间
函数对象
格式化库 (C++20)
(C++11)
关系运算符 (C++20 中已弃用)
整数比较函数
(C++20)(C++20)(C++20)   
(C++20)
交换类型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
通用词汇类型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
基本字符串转换
(C++17)
(C++17)

 
动态内存管理
未初始化内存算法
受约束的未初始化内存算法
分配器
垃圾回收支持
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)



 
 
template< class Y >
bool owner_equal( const std::weak_ptr<Y>& other ) const noexcept;
(1) (自 C++26 起)
template< class Y >
bool owner_equal( const std::shared_ptr<Y>& other ) const noexcept;
(2) (自 C++26 起)

检查此 weak_ptrother 是否共享所有权或都为空。比较方式是,只有当两个智能指针都为空或都拥有同一个对象时,它们才被认为是等效的,即使通过 get() 获取的指针的值不同(例如,因为它们指向同一个对象内的不同子对象)。

成员函数 owner_equal 是一个等价关系,因此,如果 !owner_before(other) && !other.owner_before(*this)true,则当且仅当 owner_equal(other)true 时成立。

此排序用于使共享指针和弱指针能够用作无序关联容器中的键,通常通过 std::owner_equal 实现。

内容

[编辑] 参数

other - 要比较的 std::shared_ptrstd::weak_ptr

[编辑] 返回值

如果 *thisother 共享所有权或都为空,则返回 true。否则,返回 false

[编辑] 备注

功能测试 Std 功能
__cpp_lib_smart_ptr_owner_equality 202306L (C++26) 启用将 std::weak_ptr 用作 无序关联容器 中的键

[编辑] 示例

[编辑] 另请参阅

提供共享指针和弱指针的混合类型基于所有者的相等比较
(类) [编辑]