std:: owner_equal
|
定义于头文件
<memory>
|
||
|
struct
owner_equal
;
|
(C++26 起) | |
此函数对象提供基于所有者的(而非基于值的)混合类型相等比较,适用于
std::weak_ptr
和
std::shared_ptr
。其比较逻辑为:两个智能指针仅当同时为空或共享所有权时才被视为等价,即使通过
get()
获取的原始指针值不同(例如因为它们指向同一对象中的不同子对象)。
std::owner_equal
从参数推导出参数类型。
目录 |
嵌套类型
| 嵌套类型 | 定义 |
is_transparent
|
未指定 |
成员函数
|
operator()
|
使用基于所有者的语义比较其参数
(函数) |
std::owner_equal:: operator()
|
template
<
class
T,
class
U
>
bool
operator
(
)
(
const
std::
shared_ptr
<
T
>
&
lhs,
|
(自 C++26 起) | |
|
template
<
class
T,
class
U
>
bool
operator
(
)
(
const
std::
shared_ptr
<
T
>
&
lhs,
|
(自 C++26 起) | |
|
template
<
class
T,
class
U
>
bool
operator
(
)
(
const
std::
weak_ptr
<
T
>
&
lhs,
|
(自 C++26 起) | |
|
template
<
class
T,
class
U
>
bool
operator
(
)
(
const
std::
weak_ptr
<
T
>
&
lhs,
|
(自 C++26 起) | |
使用基于所有者的语义比较 lhs 和 rhs 。实际上调用 lhs. owner_equal ( rhs ) 。
相等比较是一种等价关系。
仅当 lhs 和 rhs 均为空或共享所有权时,它们才是等价的。
参数
| lhs, rhs | - | 要比较的共享所有权指针 |
返回值
如果 lhs 和 rhs 均为空或通过基于所有者的相等比较确定共享所有权,则为 true ,否则为 false 。
注释
| 功能测试 宏 | 值 | 标准 | 功能 |
|---|---|---|---|
__cpp_lib_smart_ptr_owner_equality
|
202306L
|
(C++26) |
允许将
std::shared_ptr
和
std::weak_ptr
用作
无序关联容器
的键值
|
参阅
|
(C++26)
|
提供基于所有者的共享指针相等比较
(
std::shared_ptr<T>
的公开成员函数)
|
|
(C++26)
|
提供基于所有者的弱指针相等比较
(
std::weak_ptr<T>
的公开成员函数)
|