Namespaces
Variants

std::experimental::ranges:: less_equal

From cppreference.net
template < class T = void >

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

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

Funktionsobjekt zum Durchführen von Vergleichen. Die primäre Template-Instanz ruft operator < auf const Lvalues vom Typ T mit invertierter Argumentreihenfolge auf und negiert dann das Ergebnis. Die Spezialisierung less_equal<void> leitet die Parametertypen des Funktionsaufrufoperators aus den Argumenten ab (aber nicht den Rückgabetyp).

Alle Spezialisierungen von less_equal sind Semiregular .

Inhaltsverzeichnis

Mitgliedertypen

Mitgliedstyp Definition
is_transparent (nur Mitglied von less_equal<void> Spezialisierung) /* nicht spezifiziert */

Memberfunktionen

operator()
prüft, ob das erste Argument kleiner als oder gleich dem zweiten ist
(public member function)

std::experimental::ranges::less_equal:: operator()

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

requires StrictTotallyOrderedWith < 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 less_equal<void> -Spezialisierung)
1) Vergleicht x und y . Entspricht return ! ranges:: less <> { } ( y, x ) ; .
2) Vergleicht t und u . Entspricht return ! ranges:: less <> { } ( std:: forward < U > ( u ) , std:: forward < T > ( t ) ) ; .

Hinweise

Im Gegensatz zu std::less_equal erfordert ranges::less_equal alle sechs Vergleichsoperatoren < , <= , > , >= , == und != gültig zu sein (über die StrictTotallyOrdered und StrictTotallyOrderedWith Constraints) und ist vollständig in Bezug auf ranges::less definiert. Die Implementierung kann jedoch frei operator <= direkt verwenden, da diese Konzepte erfordern, dass die Ergebnisse der Vergleichsoperatoren konsistent sind.

Beispiel

Siehe auch

Funktionsobjekt, das x <= y implementiert
(Klassentemplate)