std::owner_less

来自cppreference.com
< cpp‎ | memory
 
 
工具库
通用工具
格式化库 (C++20)
(C++11)
关系运算符 (C++20 中弃用)
整数比较函数
(C++20)(C++20)(C++20)
(C++20)
swap 与类型运算
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
常用词汇类型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)

初等字符串转换
(C++17)
(C++17)
栈踪
 
动态内存管理
智能指针
(C++11)
(C++11)
(C++11)
(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 前)
(C++11)(C++23 前)
杂项
(C++20)
(C++11)
(C++11)
C 库
低层内存管理
 
定义于头文件 <memory>
template<>
struct owner_less<void>;
(C++17 起)

std::owner_less<> 是拥有待推导形参类型的 std::owner_less 特化。

成员类型

成员类型 定义
is_transparent /* 未指定 */

注意

成员类型 is_transparent 指示调用方,此函数对象是一个通透函数对象:它接受任意类型的参数并使用完美转发,这在将函数对象在多种语境中,或以右值参数使用时,避免不需要的复制和转换。特别是,诸如 std::set::findstd::set::lower_bound 的模板函数在其 Compare 类型上使用此类型。

成员函数

operator()
用基于占有者的语义比较其参数
(函数)

std::owner_less<void>::operator()

template<class T, class U>

bool operator()( const std::shared_ptr<T>& lhs,

                 const std::shared_ptr<U>& rhs ) const noexcept;
(C++17 起)
template<class T, class U>

bool operator()( const std::shared_ptr<T>& lhs,

                 const std::weak_ptr<U>& rhs ) const noexcept;
(C++17 起)
template<class T, class U>

bool operator()( const std::weak_ptr<T>& lhs,

                 const std::shared_ptr<U>& rhs ) const noexcept;
(C++17 起)
template<class T, class U>

bool operator()( const std::weak_ptr<T>& lhs,

                 const std::weak_ptr<U>& rhs ) const noexcept;
(C++17 起)

用基于占有者的语义比较 lhsrhs 。等效地调用 lhs.owner_before(rhs)

顺序是严格弱序关系。

lhsrhs 仅若均为空或共享所有权才等价。

参数

lhs, rhs - 要比较的共享所有权指针

返回值

若以基于占有者的顺序确定 lhs 小于 rhs 则为 true


参阅

提供基于拥有者的共享指针排序
(std::shared_ptr<T> 的公开成员函数)
提供弱指针的基于拥有者顺序
(std::weak_ptr<T> 的公开成员函数)