std::experimental::ranges::greater
| Definiert in Header <experimental/ranges/functional> |
||
| template< class T = void > erfordert StrictTotallyOrdered<T> || |
(Ranges TS) | |
| template<> struct greater<void>; |
(Ranges TS) | |
Funktionsobjekt für Vergleiche. Die primäre Vorlage ruft operator< auf const-Lvalues vom Typ T mit vertauschter Argumentreihenfolge auf. Die Spezialisierung greater<void> leitet die Parametertypen des Funktionsaufrufoperators aus den Argumenten ab (nicht aber den Rückgabetyp).
Alle Spezialisierungen von greater sind Semiregular.
Inhalt |
[bearbeiten] Member types
| Mitgliedertyp | Definition |
is_transparent (nur Mitglied der Spezialisierung greater<void>) |
/* nicht spezifiziert */ |
[bearbeiten] Member functions
| operator() |
prüft, ob das erste Argument *größer* als das zweite ist (öffentliche Memberfunktion) |
std::experimental::ranges::greater::operator()
| constexpr bool operator()(const T& x, const T& y) const; |
(1) | (nur Mitglied der primären greater<T>-Vorlage) |
| template< class T, class U > erfordert StrictTotallyOrderedWith<T, U> || |
(2) | (nur Mitglied der Spezialisierung greater<void>) |
t und u. Äquivalent zu return ranges::less<>{}(std::forward<U>(u), std::forward<T>(t));.[bearbeiten] Notes
Im Gegensatz zu std::greater erfordert ranges::greater, dass alle sechs Vergleichsoperatoren <, <=, >, >=, == und != gültig sind (über die Constraints StrictTotallyOrdered und StrictTotallyOrderedWith) und ist vollständig in Bezug auf ranges::less definiert. Die Implementierung kann jedoch den operator> direkt verwenden, da diese Konzepte erfordern, dass die Ergebnisse der Vergleichsoperatoren konsistent sind.
[bearbeiten] Example
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[bearbeiten] See also
| Funktions-Objekt, das x > y implementiert (Klassen-Template) |