std::owner_less
来自cppreference.com
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
在头文件 <memory> 中定义
|
||
template< class T > struct owner_less; /* undefined */ |
(1) | (C++11 起) |
template< class T > struct owner_less<std::shared_ptr<T>>; |
(2) | (C++11 起) |
template< class T > struct owner_less<std::weak_ptr<T>>; |
(3) | (C++11 起) |
此函数的对象提供雇主基(而不是基于值的)混合型顺序std::weak_ptr和std::shared_ptr。比较两个智能指针相当于只有当它们都是空的,或者如果他们都管理相同的对象,即使得到
get()
的原始指针的值是不同的(例如,在不同的子对象,因为它们指向同一个对象内的顺序是这样的)原文:
This function object provides owner-based (as opposed to value-based) mixed-type ordering of both std::weak_ptr and std::shared_ptr. The order is such that two smart pointers compare equivalent only if they are both empty or if they both manage the same object, even if the values of the raw pointers obtained by
get()
are different (e.g. because they point at different subobjects within the same object)这个类模板时,是首选的比较谓词std::shared_ptr或std::weak_ptr键建立关联的容器,也就是
原文:
This class template is the preferred comparison predicate when building associative containers with std::shared_ptr or std::weak_ptr as keys, that is,
std::map<std::shared_ptr<T>, U, std::owner_less<std::shared_ptr<T>>>
or
std::map<std::weak_ptr<T>, U, std::owner_less<std::weak_ptr<T>>>.
没有定义默认operator<弱指针,可能会错误地认为两个共享同一个对象的指针,非等价的(见shared_ptr::owner_before)
原文:
The default operator< is not defined for weak pointers, and may wrongly consider two shared pointers for the same object non-equivalent (see shared_ptr::owner_before)
[编辑] 会员类型
会员类型
|
Definition |
result_type
|
bool |
first_argument_type
|
1) T 2) std::shared_ptr<T> 3) std::weak_ptr<T> |
second_argument_type
|
1) T 2) std::shared_ptr<T> 3) std::weak_ptr<T> |
[编辑] 成员函数
业主基于语义的,它的参数进行比较 原文: compares its arguments using owner-based semantics (函数) |
[编辑] 另请参阅
业主基于订购的共享指针 原文: provides owner-based ordering of shared pointers (公共成员函数of std::shared_ptr )
|