std::shared_ptr<T>::owner_equal

来自cppreference.com
< cpp‎ | memory‎ | shared 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::shared_ptr<Y>& other ) const noexcept;
(1) (C++26 起)
template< class Y >
bool owner_equal( const std::weak_ptr<Y>& other ) const noexcept;
(2) (C++26 起)

检查此 shared_ptrother 是否共享所有权或均为空。比较方式使得两个智能指针当且仅当它们均为空或拥有同一对象时比较相等,即使从 get() 获得的指针值不同(例如因为它们指向同一对象的不同子对象)也是如此。

成员函数 owner_equal 是一种等价关系,当且仅当 owner_equal(other)true!owner_before(other) && !other.owner_before(*this)true

此顺序常通过 std::owner_equal 使用,使得共享指针与弱指针能用作无序关联容器的键。

参数

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

返回值

*thisother 共享所有权或均为空则为 true。否则返回 false

注解

功能特性测试 标准 功能特性
__cpp_lib_smart_ptr_owner_equality 202306L (C++26) 启用以 std::shared_ptr无序关联容器中的键

示例

参阅

提供共享指针与弱指针的基于拥有者的混合类型相等比较
(类)