Namensräume
Varianten
Aktionen

std::isless

Von cppreference.com
< cpp‎ | numeric‎ | math
 
 
 
 
Definiert in der Header-Datei <cmath>
(1)
bool isless( float x, float y );

bool isless( double x, double y );

bool isless( long double x, long double y );
(seit C++11)
(bis C++23)
constexpr bool isless( /* floating-point-type */ x,
                       /* floating-point-type */ y );
(seit C++23)
Definiert in der Header-Datei <cmath>
template< class Arithmetic1, class Arithmetic2 >
bool isless( Arithmetic1 x, Arithmetic2 y );
(A) (seit C++11)
(constexpr seit C++23)
1) Bestimmt, ob die Gleitkommazahl x kleiner ist als die Gleitkommazahl y, ohne Gleitkommaausnahmen zu setzen. Die Bibliothek stellt Überladungen für alle cv-unqualifizierten Gleitkommatypen als Typ der Parameter x und y bereit.(seit C++23)
A) Zusätzliche Überladungen werden für alle anderen Kombinationen von arithmetischen Typen bereitgestellt.

Inhalt

[bearbeiten] Parameter

x, y - Gleitkomma- oder Ganzzahlwerte

[bearbeiten] Rückgabewert

true, wenn x < y, sonst false.

[bearbeiten] Anmerkungen

Der eingebaute operator< für Gleitkommazahlen kann FE_INVALID auslösen, wenn eines oder beide Argumente NaN sind. Diese Funktion ist eine "ruhige" Version von operator<.

Die zusätzlichen Überladungen müssen nicht exakt wie (A) angegeben werden. Sie müssen nur ausreichen, um sicherzustellen, dass für ihr erstes Argument num1 und ihr zweites Argument num2

  • Wenn num1 oder num2 vom Typ long double ist, dann hat std::isless(num1, num2) denselben Effekt wie std::isless(static_cast<long double>(num1),
                static_cast<long double>(num2))
    .
  • Andernfalls, wenn num1 und/oder num2 vom Typ double oder einem ganzzahligen Typ ist, dann hat std::isless(num1, num2) denselben Effekt wie std::isless(static_cast<double>(num1),
                static_cast<double>(num2))
    .
  • Andernfalls, wenn num1 oder num2 vom Typ float ist, dann hat std::isless(num1, num2) denselben Effekt wie std::isless(static_cast<float>(num1),
                static_cast<float>(num2))
    .
(bis C++23)

Wenn num1 und num2 arithmetische Typen haben, dann hat std::isless(num1, num2) denselben Effekt wie std::isless(static_cast</*common-floating-point-type*/>(num1),
            static_cast</*common-floating-point-type*/>(num2))
, wobei /*common-floating-point-type*/ der Gleitkommatyp mit dem höchsten Gleitkomma-Konvertierungsrang und dem höchsten Gleitkomma-Konvertierungs-Subrang zwischen den Typen von num1 und num2 ist; Argumente vom ganzzahligen Typ werden so behandelt, als hätten sie denselben Gleitkomma-Konvertierungsrang wie double.

Wenn kein solcher Gleitkommazahltyp mit dem höchsten Rang und Subrang existiert, dann führt die Überladungsauflösung nicht zu einem nutzbaren Kandidaten aus den bereitgestellten Überladungen.

(seit C++23)

[edit] Siehe auch

Funktions-Objekt, das x < y implementiert
(Klassen-Template) [bearbeiten]
(C++11)
prüft, ob das erste Gleitkommaargument größer ist als das zweite
(Funktion) [bearbeiten]
C-Dokumentation für isless