命名空间
变体
操作

std::pmr::operator==, std::pmr::operator!=

来自 cppreference.com
 
 
动态内存管理
未初始化内存算法
受约束的未初始化内存算法
分配器
垃圾收集支持
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)



 
 
在头文件 <memory_resource> 中定义
template< class T1, class T2 >

bool operator==( const std::pmr::polymorphic_allocator<T1>& lhs,

                 const std::pmr::polymorphic_allocator<T2>& rhs ) noexcept;
(1) (自 C++17 起)
friend bool operator==( const polymorphic_allocator& lhs,
                        const polymorphic_allocator& rhs ) noexcept;
(2) (自 C++17 起)
template< class T1, class T2 >

bool operator!=( const std::pmr::polymorphic_allocator<T1>& lhs,

                 const std::pmr::polymorphic_allocator<T2>& rhs ) noexcept;
(3) (自 C++17 起)
(直到 C++20)
friend bool operator!=( const polymorphic_allocator& lhs,
                        const polymorphic_allocator& rhs ) noexcept;
(4) (自 C++17 起)
(直到 C++20)

比较两个多态分配器。如果两个多态分配器的底层内存资源比较相等,则它们比较相等。

1) 返回 *lhs.resource() == *rhs.resource().
2)(1) 相同,允许转换为 polymorphic_allocator
此函数对普通的 无限定限定查找 不可見,只有当 std::pmr::polymorphic_allocator 是参数的关联类时,才能通过 参数相关查找 找到它。
3) 返回 !(lhs == rhs).
4)(3) 相同,允许转换为 polymorphic_allocator
此函数对普通的 无限定限定查找 不可見,只有当 std::pmr::polymorphic_allocator 是参数的关联类时,才能通过 参数相关查找 找到它。

!= 运算符是 operator== 合成的

(自 C++20 起)

[编辑] 参数

lhs, rhs - 要比较的多态分配器

[编辑] 返回值

1,2) *lhs.resource() == *rhs.resource()
3,4) !(lhs == rhs)

[编辑] 缺陷报告

以下更改行为的缺陷报告被追溯应用于先前发布的 C++ 标准。

DR 应用于 发布的行为 正确的行为
LWG 3683 C++17 polymorphic_allocator 无法与可转换为它的类型进行比较 添加重载