Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/memory/polymorphic allocator/operator eq"

From cppreference.com
m (.)
m (@-@ -> @,@)
 
Line 40: Line 40:
  
 
===Return value===
 
===Return value===
@1-2@ {{c|1=*lhs.resource() == *rhs.resource()}}
+
@1,2@ {{c|1=*lhs.resource() == *rhs.resource()}}
@3-4@ {{c|1=!(lhs == rhs)}}
+
@3,4@ {{c|1=!(lhs == rhs)}}
  
 
===Defect reports===
 
===Defect reports===

Latest revision as of 23:22, 6 October 2023

 
 
Dynamic memory management
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Allocators
Garbage collection support
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)



 
 
Defined in header <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) (since C++17)
friend bool operator==( const polymorphic_allocator& lhs,
                        const polymorphic_allocator& rhs ) noexcept;
(2) (since 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) (since C++17)
(until C++20)
friend bool operator!=( const polymorphic_allocator& lhs,
                        const polymorphic_allocator& rhs ) noexcept;
(4) (since C++17)
(until C++20)

Compares two polymorphic allocators. Two polymorphic allocators compare equal if their underlying memory resource compares equal.

1) Returns *lhs.resource() == *rhs.resource().
2) Same as (1), allowing conversion to polymorphic_allocator.
This function is not visible to ordinary unqualified or qualified lookup, and can only be found by argument-dependent lookup when std::pmr::polymorphic_allocator is an associated class of the arguments.
3) Returns !(lhs == rhs).
4) Same as (3), allowing conversion to polymorphic_allocator.
This function is not visible to ordinary unqualified or qualified lookup, and can only be found by argument-dependent lookup when std::pmr::polymorphic_allocator is an associated class of the arguments.

The != operator is synthesized from operator==.

(since C++20)

[edit] Parameters

lhs, rhs - polymorphic allocators to compare

[edit] Return value

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

[edit] Defect reports

The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

DR Applied to Behavior as published Correct behavior
LWG 3683 C++17 polymorphic_allocator could not be compared with types convertible to it overload added