Namespaces
Variants

std::experimental::ranges:: not_equal_to

From cppreference.net
template < class T = void >

requires EqualityComparable < T > ||
Same < T, void > ||
/* == on two const T lvalues invokes a built-in operator comparing pointers */

struct not_equal_to ;
(ranges TS)
template <>
struct not_equal_to < void > ;
(ranges TS)

Funktionsobjekt zum Durchführen von Vergleichen. Die primäre Vorlage ruft operator == auf const Lvalues vom Typ T auf und negiert das Ergebnis. Die Spezialisierung not_equal_to<void> leitet die Parametertypen des Funktionsaufrufoperators aus den Argumenten ab (aber nicht den Rückgabetyp).

Alle Spezialisierungen von not_equal_to sind Semiregular .

Inhaltsverzeichnis

Mitgliedertypen

Mitgliedtyp Definition
is_transparent (nur Mitglied der not_equal_to<void> Spezialisierung) /* nicht spezifiziert */

Memberfunktionen

operator()
prüft, ob die Argumente nicht gleich sind
(öffentliche Elementfunktion)

std::experimental::ranges::not_equal_to:: operator()

constexpr bool operator ( ) ( const T & x, const T & y ) const ;
(1) (nur Mitglied der primären not_equal_to<T> -Vorlage)
template < class T, class U >

requires EqualityComparableWith < T, U > ||
/* std::declval<T>() == std::declval<U>() resolves to
a built-in operator comparing pointers */

constexpr bool operator ( ) ( T && t, U && u ) const ;
(2) (nur Mitglied der not_equal_to<void> -Spezialisierung)
1) Vergleicht x und y . Entspricht return ! ranges:: equal_to <> { } ( x, y ) ; .
2) Vergleicht t und u . Entspricht return ! ranges:: equal_to <> { } ( std:: forward < T > ( t ) , std:: forward < U > ( u ) ) ; .

Hinweise

Im Gegensatz zu std::not_equal_to erfordert ranges::not_equal_to , dass sowohl == als auch != gültig sind (über die EqualityComparable - und EqualityComparableWith -Constraints) und ist vollständig in Bezug auf ranges::equal_to definiert. Allerdings ist die Implementierung frei, operator ! = direkt zu verwenden, da diese Konzepte erfordern, dass die Ergebnisse von == und != konsistent sind.

Beispiel

Siehe auch

Funktionsobjekt, das x ! = y implementiert
(Klassen-Template)