operator==,!=,<,<=,>,>=(std::unique_ptr)

来自cppreference.com
< cpp‎ | memory‎ | unique ptr

 
 
实用工具库
类型的支持 (basic types, RTTI, type traits)
动态内存管理
错误处理
程序实用工具
可变参数函数
日期和时间
函数对象
initializer_list(C++11)
bitset
hash(C++11)
关系运算符
原文:
Relational operators
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
rel_ops::operator!=
rel_ops::operator>
rel_ops::operator<=
rel_ops::operator>=
对和元组
原文:
Pairs and tuples
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
pair
tuple(C++11)
apply(C++17)
make_from_tuple(C++17)
piecewise_construct_t(C++11)
piecewise_construct(C++11)
integer_sequence(C++14)
交换,前进和移动
原文:
Swap, forward and move
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
swap
exchange(C++14)
forward(C++11)
move(C++11)
move_if_noexcept(C++11)
类型操作
原文:
Type operations
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
declval(C++11)
as_const(C++17)
 
动态内存管理
低级别的内存管理
分配器
原文:
Allocators
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
allocator
allocator_traits(C++11)
allocator_arg_t(C++11)
allocator_arg(C++11)
uses_allocator(C++11)
scoped_allocator_adaptor(C++11)
未初始化的存储空间
原文:
Uninitialized storage
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
uninitialized_copy
uninitialized_copy_n(C++11)
uninitialized_fill
uninitialized_fill_n
raw_storage_iterator
get_temporary_buffer
return_temporary_buffer
智能指针
原文:
Smart pointers
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
unique_ptr(C++11)
shared_ptr(C++11)
weak_ptr(C++11)
auto_ptr(过时)
owner_less(C++11)
enable_shared_from_this(C++11)
bad_weak_ptr(C++11)
default_delete(C++11)
垃圾收集的支持
原文:
Garbage collection support
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
declare_reachable(C++11)
undeclare_reachable(C++11)
declare_no_pointers(C++11)
undeclare_no_pointers(C++11)
pointer_safety(C++11)
get_pointer_safety(C++11)
杂项
原文:
Miscellaneous
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
pointer_traits(C++11)
addressof(C++11)
align(C++11)
C库
原文:
C Library
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
 
 
template<class T1, class D1, class T2, class D2>
bool operator==(const unique_ptr<T1, D1>& x, const unique_ptr<T2, D2>& y);
(1) (C++11起)
template<class T1, class D1, class T2, class D2>
bool operator!=(const unique_ptr<T1, D1>& x, const unique_ptr<T2, D2>& y);
(2) (C++11起)
template<class T1, class D1, class T2, class D2>
bool operator<(const unique_ptr<T1, D1>& x, const unique_ptr<T2, D2>& y);
(3) (C++11起)
template<class T1, class D1, class T2, class D2>
bool operator<=(const unique_ptr<T1, D1>& x, const unique_ptr<T2, D2>& y);
(4) (C++11起)
template<class T1, class D1, class T2, class D2>
bool operator>(const unique_ptr<T1, D1>& x, const unique_ptr<T2, D2>& y);
(5) (C++11起)
template<class T1, class D1, class T2, class D2>
bool operator>=(const unique_ptr<T1, D1>& x, const unique_ptr<T2, D2>& y);
(6) (C++11起)
template <class T, class D>
bool operator==(const unique_ptr<T, D>& x, nullptr_t) noexcept;
(7) (C++11起)
template <class T, class D>
bool operator==(nullptr_t, const unique_ptr<T, D>& x) noexcept;
(8) (C++11起)
template <class T, class D>
bool operator!=(const unique_ptr<T, D>& x, nullptr_t) noexcept;
(9) (C++11起)
template <class T, class D>
bool operator!=(nullptr_t, const unique_ptr<T, D>& x) noexcept;
(10) (C++11起)
template <class T, class D>
bool operator<(const unique_ptr<T, D>& x, nullptr_t);
(11) (C++11起)
template <class T, class D>
bool operator<(nullptr_t, const unique_ptr<T, D>& y);
(12) (C++11起)
template <class T, class D>
bool operator<=(const unique_ptr<T, D>& x, nullptr_t);
(13) (C++11起)
template <class T, class D>
bool operator<=(nullptr_t, const unique_ptr<T, D>& y);
(14) (C++11起)
template <class T, class D>
bool operator>(const unique_ptr<T, D>& x, nullptr_t);
(15) (C++11起)
template <class T, class D>
bool operator>(nullptr_t, const unique_ptr<T, D>& y);
(16) (C++11起)
template <class T, class D>
bool operator>=(const unique_ptr<T, D>& x, nullptr_t);
(17) (C++11起)
template <class T, class D>
bool operator>=(nullptr_t, const unique_ptr<T, D>& y);
(18) (C++11起)
指针的值进行比较的两个unique_ptrs,或unique_ptrnullptr.
原文:
Compares the pointer values of two unique_ptrs, or a unique_ptr and nullptr.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

目录

[编辑] 参数

x, y -
unique_ptrs比较
原文:
unique_ptrs to compare
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

[编辑] 返回值

1) x.get() == y.get()

2) x.get() != y.get()

3)
std::less<CT>()(x.get(), y.get())CTstd::common_type<unique_ptr<T1, D1>::pointer, unique_ptr<T2, D2>::pointer>::type
原文:
std::less<CT>()(x.get(), y.get()), where CT is std::common_type<unique_ptr<T1, D1>::pointer, unique_ptr<T2, D2>::pointer>::type
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

4) !(y < x)

5) y < x

6) !(x < y)

7-8) !x

9-10) (bool)x

11) std::less<unique_ptr<T,D>::pointer>()(x.get(), nullptr)

12) std::less<unique_ptr<T,D>::pointer>()(nullptr, y.get())

13) nullptr < x

14) y < nullptr

15) !(nullptr < x)

16) !(y < nullptr)

17) !(x < nullptr)

18) !(nullptr < y)

[编辑] 示例

#include <iostream>
#include <memory>
 
int main() 
{
    std::unique_ptr<int> p1(new int(42));
    std::unique_ptr<int> p2(new int(42));
 
    std::cout << "p1 == p1: " << (p1 == p1) << '\n';
 
    // p1 and p2 point to different memory locations, so p1 != p2
    std::cout << "p1 == p2: " << (p1 == p2) << '\n';
}

输出:

p1 == p1: 1
p1 == p2: 0

[编辑] 另请参阅

返回指向被管理对象的指针
(公共成员函数) [edit]