函数模板
<memory>

std::unique_ptr 的关系运算符

(1)
template <class T1, class D1, class T2, class D2>  bool operator== (const unique_ptr<T1,D1>& lhs, const unique_ptr<T2,D2>& rhs);template <class T, class D> bool operator== (const unique_ptr<T,D>& lhs, nullptr_t) noexcept;template <class T, class D> bool operator== (nullptr_t, const unique_ptr<T,D>& rhs) noexcept;
(2)
template <class T1, class D1, class T2, class D2>  bool operator!= (const unique_ptr<T1,D1>& lhs, const unique_ptr<T2,D2>& rhs);template <class T, class D> bool operator!= (const unique_ptr<T,D>& lhs, nullptr_t) noexcept;template <class T, class D> bool operator!= (nullptr_t, const unique_ptr<T,D>& rhs) noexcept;
(3)
template <class T1, class D1, class T2, class D2>  bool operator<  (const unique_ptr<T1,D1>& lhs, const unique_ptr<T2,D2>& rhs);template <class T, class D> bool operator<  (const unique_ptr<T,D>& lhs, nullptr_t) noexcept;template <class T, class D> bool operator<  (nullptr_t, const unique_ptr<T,D>& rhs) noexcept;
(4)
template <class T1, class D1, class T2, class D2>  bool operator<= (const unique_ptr<T1,D1>& lhs, const unique_ptr<T2,D2>& rhs);template <class T, class D> bool operator<= (const unique_ptr<T,D>& lhs, nullptr_t) noexcept;template <class T, class D> bool operator<= (nullptr_t, const unique_ptr<T,D>& rhs) noexcept;
(5)
template <class T1, class D1, class T2, class D2>  bool operator>  (const unique_ptr<T1,D1>& lhs, const unique_ptr<T2,D2>& rhs);template <class T, class D> bool operator>  (const unique_ptr<T,D>& lhs, nullptr_t) noexcept;template <class T, class D> bool operator>  (nullptr_t, const unique_ptr<T,D>& rhs) noexcept;
(6)
template <class T1, class D1, class T2, class D2>  bool operator>= (const unique_ptr<T1,D1>& lhs, const unique_ptr<T2,D2>& rhs);template <class T, class D> bool operator>= (const unique_ptr<T,D>& lhs, nullptr_t) noexcept;template <class T, class D> bool operator>= (nullptr_t, const unique_ptr<T,D>& rhs) noexcept;
关系运算符 ==, !=, <, <=, >, >=
lhsrhs 之间的 unique_ptr 对象执行适当的关系比较操作,或者对 unique_ptr 和nullptr.

当两个 unique_ptr 的存储指针比较相等时,它们相等(==),否则不相等(!=)。

其他运算符(<, <=, >>=)根据其各自存储指针上定义的 less 的严格弱序对指针进行排序。

比较时会忽略存储的删除器(stored deleter)。

参数

lhs, rhs
unique_ptr 对象(分别位于运算符的左侧和右侧)。

返回值

true如果条件成立,则为 true,并且false否则为 false。

另见