Namensräume
Varianten
Aktionen

std::ranges::less

Von cppreference.com
< cpp‎ | utility‎ | functional
 
 
Dienstprogramm-Bibliotheken
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programm-Dienstprogramme
Variadische Funktionen
Coroutine-Unterstützung (C++20)
Vertragsunterstützung (C++26)
Drei-Wege-Vergleich
(C++20)
(C++20)(C++20)(C++20)  
(C++20)(C++20)(C++20)

Allgemeine Hilfsmittel
Relationale Operatoren (in C++20 veraltet)
 
Funktionsobjekte
Funktionsaufruf
(C++17)(C++23)
Identitätsfunktions-Objekt
(C++20)
Transparente Operator-Wrapper
(C++14)
(C++14)
(C++14)
(C++14)  
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)

Alte Binder und Adaptoren
(bis C++17*)
(bis C++17*)
(bis C++17*)
(bis C++17*)
(bis C++17*)(bis C++17*)(bis C++17*)(bis C++17*)
(bis C++20*)
(bis C++20*)
(bis C++17*)(bis C++17*)
(bis C++17*)(bis C++17*)

(bis C++17*)
(bis C++17*)(bis C++17*)(bis C++17*)(bis C++17*)
(bis C++20*)
(bis C++20*)
 
Definiert in der Header-Datei <functional>
struct less;
(seit C++20)

Funktionsobjekt für Vergleiche. Leitet die Parametertypen des Funktionsaufrufoperators aus den Argumenten ab (nicht jedoch den Rückgabetyp).

Inhalt

[bearbeiten] Verschachtelte Typen

Verschachtelter Typ Definition
is_transparent nicht spezifiziert

[bearbeiten] Memberfunktionen

operator()
prüft, ob das erste Argument kleiner ist als das zweite
(öffentliche Memberfunktion)

std::ranges::less::operator()

template< class T, class U >
constexpr bool operator()( T&& t, U&& u ) const;

Gegeben den Ausdruck std::forward<T>(t) < std::forward<U>(u) als expr

  • Andernfalls

Diese Überladung nimmt nur an der Overload Resolution teil, wenn std::totally_ordered_with<T, U> erfüllt ist.

Wenn ein Ausdruck expr1 vom Typ T und ein Ausdruck expr2 vom Typ U existieren, so dass die Vergleichsergebnisse von expr1 und expr2 die strikte Totalordnung verletzen (die Regeln sind unten definiert), ist das Verhalten undefiniert.

Die Vergleichsergebnisse von expr1 und expr2 folgen der strikten Totalordnung nur, wenn **genau einer** der folgenden Ausdrücke true ist

[bearbeiten] Hinweise

Im Gegensatz zu std::less erfordert std::ranges::less, dass alle sechs Vergleichsoperatoren <, <=, >, >=, == und != gültig sind (über die totally_ordered_with-Einschränkung).

[bearbeiten] Beispiel

[bearbeiten] Fehlerberichte

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 3530 C++20 syntaktische Prüfungen wurden beim Vergleichen von Zeigern gelockert nur semantische Anforderungen sind gelockert

[bearbeiten] Siehe auch

Funktions-Objekt, das x < y implementiert
(Klassen-Template) [bearbeiten]