Namensräume
Varianten
Aktionen

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

Von cppreference.com
 
 
Speicherverwaltungsbibliothek
(nur Exposition*)
Algorithmen für uninitialisierten Speicher
(C++17)
(C++17)
(C++17)
Beschränkte uninitialisierte
Speicher-Algorithmen
C-Bibliothek

Allocatoren
Speicherressourcen
Unterstützung für Garbage Collection
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
Uninitialisierter Speicher
Explizites Lebenszeitmanagement
 
 
Definiert 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) (seit C++17)
friend bool operator==( const polymorphic_allocator& lhs,
                        const polymorphic_allocator& rhs ) noexcept;
(2) (seit 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) (seit C++17)
(bis C++20)
friend bool operator!=( const polymorphic_allocator& lhs,
                        const polymorphic_allocator& rhs ) noexcept;
(4) (seit C++17)
(bis C++20)

Vergleicht zwei polymorphe Allocatoren. Zwei polymorphe Allocatoren sind gleich, wenn ihre zugrundeliegenden Speicherressourcen gleich sind.

1) Gibt *lhs.resource() == *rhs.resource() zurück.
2) Wie in (1), erlaubt Konvertierung zu polymorphic_allocator.
Diese Funktion ist für gewöhnliche unqualifizierte oder qualifizierte Lookups nicht sichtbar und kann nur durch argumentabhängige Suche gefunden werden, wenn std::pmr::polymorphic_allocator eine zugehörige Klasse der Argumente ist.
3) Gibt !(lhs == rhs) zurück.
4) Wie in (3), erlaubt Konvertierung zu polymorphic_allocator.
Diese Funktion ist für gewöhnliche unqualifizierte oder qualifizierte Lookups nicht sichtbar und kann nur durch argumentabhängige Suche gefunden werden, wenn std::pmr::polymorphic_allocator eine zugehörige Klasse der Argumente ist.

Der Operator != wird aus operator== synthetisiert.

(seit C++20)

[bearbeiten] Parameter

lhs, rhs - polymorphe Allocatoren, die verglichen werden sollen

[bearbeiten] Rückgabewert

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

[bearbeiten] Defect reports

Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR angewendet auf Verhalten wie veröffentlicht Korrigiertes Verhalten
LWG 3683 C++17 polymorphic_allocator konnte nicht mit zu ihm konvertierbaren Typen verglichen werden Überladung hinzugefügt