Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::less

      From cppreference.com
      <cpp‎ |utility‎ |functional
       
       
      Utilities library
       
      Function objects
      Function invocation
      (C++17)(C++23)
      Identity function object
      (C++20)
      Old binders and adaptors
      (until C++17*)
      (until C++17*)
      (until C++17*)
      (until C++17*)  
      (until C++17*)
      (until C++17*)(until C++17*)(until C++17*)(until C++17*)
      (until C++20*)
      (until C++20*)
      (until C++17*)(until C++17*)
      (until C++17*)(until C++17*)

      (until C++17*)
      (until C++17*)(until C++17*)(until C++17*)(until C++17*)
      (until C++20*)
      (until C++20*)
       
      Defined in header<functional>
      template<class T>
      struct less;
      (until C++14)
      template<class T=void>
      struct less;
      (since C++14)

      Function object for performing comparisons. The main template invokesoperator< on typeT.

      Contents

      [edit]Specializations

      (C++14)
      function object implementingx< y deducing parameter and return types
      (class template specialization)[edit]

      [edit]Member types

      Type Definition
      result_type(deprecated in C++17)(removed in C++20)bool
      first_argument_type(deprecated in C++17)(removed in C++20)T
      second_argument_type(deprecated in C++17)(removed in C++20)T

      These member types are obtained via publicly inheritingstd::binary_function<T, T,bool>.

      (until C++11)

      [edit]Member functions

      operator()
      checks whether the first argument isless than the second
      (public member function)

      std::less::operator()

      bool operator()(const T& lhs,const T& rhs)const;
      (constexpr since C++14)

      Checks whetherlhs isless thanrhs.

      Parameters

      lhs, rhs - values to compare

      Return value

      lhs< rhs.

      IfT is a pointer type, the result is consistent with theimplementation-defined strict total order over pointers.

      [edit]Exceptions

      May throw implementation-defined exceptions.

      Possible implementation

      constexprbool operator()(const T& lhs,const T& rhs)const{return lhs< rhs;// assumes that the implementation handles pointer total order}

      [edit]Example

      Run this code
      #include <functional> template<typename A,typename B,typename C= std::less<>>constexprbool fun(A a, B b, C cmp= C{}){return cmp(a, b);} static_assert(fun(1,2)==true);static_assert(fun(1.0,1)==false);static_assert(fun(1,2.0)==true);static_assert(std::less<int>{}(5,5.6)==false);// 5 < 5 (warn: implicit conversion)static_assert(std::less<double>{}(5,5.6)==true);// 5.0 < 5.6static_assert(std::less<int>{}(5.6,5.7)==false);// 5 < 5 (warn: implicit conversion)static_assert(std::less{}(5,5.6)==true);// less<void>: 5.0 < 5.6 int main(){}

      [edit]Defect reports

      The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

      DRApplied toBehavior as publishedCorrect behavior
      LWG 2562C++98the pointer total order might be inconsistentguaranteed to be consistent

      [edit]See also

      function object implementingx== y
      (class template)[edit]
      function object implementingx> y
      (class template)[edit]
      constrained function object implementingx< y
      (class)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/utility/functional/less&oldid=173634"

      [8]ページ先頭

      ©2009-2025 Movatter.jp