Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::isless

      From cppreference.com
      <cpp‎ |numeric‎ |math
       
       
       
      Common mathematical functions
      Nearest integer floating point operations
      (C++11)(C++11)(C++11)
      (C++11)
      (C++11)
      (C++11)(C++11)(C++11)
      Floating point manipulation functions
      (C++11)(C++11)
      (C++11)
      (C++11)
      Classification and comparison
      (C++11)
      (C++11)
      (C++11)
      (C++11)
      (C++11)
      (C++11)
      (C++11)
      isless
      (C++11)
      Types
      (C++11)
      (C++11)
      (C++11)
      Macro constants
       
      Defined in header<cmath>
      (1)
      bool isless(float x,float y);

      bool isless(double x,double y);

      bool isless(longdouble x,longdouble y);
      (since C++11)
      (until C++23)
      constexprbool isless(/* floating-point-type */ x,
                             /* floating-point-type */ y);
      (since C++23)
      Defined in header<cmath>
      template<class Arithmetic1,class Arithmetic2>
      bool isless( Arithmetic1 x, Arithmetic2 y);
      (A)(since C++11)
      (constexpr since C++23)
      1) Determines if the floating point numberx is less than the floating-point numbery, without setting floating-point exceptions. The library provides overloads for all cv-unqualified floating-point types as the type of the parametersx andy.(since C++23)
      A) Additional overloads are provided for all other combinations of arithmetic types.

      Contents

      [edit]Parameters

      x, y - floating-point or integer values

      [edit]Return value

      true ifx< y,false otherwise.

      [edit]Notes

      The built-inoperator< for floating-point numbers may raiseFE_INVALID if one or both of the arguments is NaN. This function is a "quiet" version ofoperator<.

      The additional overloads are not required to be provided exactly as(A). They only need to be sufficient to ensure that for their first argumentnum1 and second argumentnum2:

      • Ifnum1 ornum2 has typelongdouble, thenstd::isless(num1, num2) has the same effect asstd::isless(static_cast<longdouble>(num1),
                   static_cast<longdouble>(num2))
        .
      • Otherwise, ifnum1 and/ornum2 has typedouble or an integer type, thenstd::isless(num1, num2) has the same effect asstd::isless(static_cast<double>(num1),
                   static_cast<double>(num2))
        .
      • Otherwise, ifnum1 ornum2 has typefloat, thenstd::isless(num1, num2) has the same effect asstd::isless(static_cast<float>(num1),
                   static_cast<float>(num2))
        .
      (until C++23)

      Ifnum1 andnum2 have arithmetic types, thenstd::isless(num1, num2) has the same effect asstd::isless(static_cast</*common-floating-point-type*/>(num1),
                 static_cast</*common-floating-point-type*/>(num2))
      , where/*common-floating-point-type*/ is the floating-point type with the greatestfloating-point conversion rank and greatestfloating-point conversion subrank between the types ofnum1 andnum2, arguments of integer type are considered to have the same floating-point conversion rank asdouble.

      If no such floating-point type with the greatest rank and subrank exists, thenoverload resolution does not result in a usable candidate from the overloads provided.

      (since C++23)

      [edit]See also

      function object implementingx< y
      (class template)[edit]
      (C++11)
      checks if the first floating-point argument is greater than the second
      (function)[edit]
      C documentation forisless
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/numeric/math/isless&oldid=149466"

      [8]ページ先頭

      ©2009-2025 Movatter.jp