std::experimental::ranges::not_equal_to
| Definiert in Header <experimental/ranges/functional> |
||
| template< class T = void > erfordert EqualityComparable<T> || |
(Ranges TS) | |
| template<> struct not_equal_to<void>; |
(Ranges TS) | |
Funktionsobjekt für Vergleiche. Die primäre Vorlage ruft operator == für 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 (nicht aber den Rückgabetyp).
Alle Spezialisierungen von not_equal_to sind Semiregular.
Inhalt |
[bearbeiten] Member types
| Mitgliedertyp | Definition |
is_transparent (nur Mitglied der Spezialisierung not_equal_to<void>) |
/* nicht spezifiziert */ |
[bearbeiten] Member functions
| operator() |
prüft, ob die Argumente *nicht gleich* sind. (öffentliche Memberfunktion) |
std::experimental::ranges::not_equal_to::operator()
| constexpr bool operator()(const T& x, const T& y) const; |
(1) | (nur Mitglied der primären Vorlage not_equal_to<T>) |
| template< class T, class U > erfordert EqualityComparableWith<T, U> || |
(2) | (nur Mitglied der Spezialisierung not_equal_to<void>) |
t und u. Äquivalent zu return !ranges::equal_to<>{}(std::forward<T>(t), std::forward<U>(u));.[bearbeiten] Notes
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. Die Implementierung kann jedoch operator!= direkt verwenden, da diese Konzepte die Konsistenz der Ergebnisse von == und != erfordern.
[bearbeiten] Example
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[bearbeiten] See also
| Funktions-Objekt, das x != y implementiert (Klassen-Template) |