home | help
std::less(3)		       C++ Standard Libary		    std::less(3)

NAME
     std::less - std::less

Synopsis
	Defined in header <functional>
	template<>			(since C++14)
	class less<void>;

	std::less<void>  is a specialization of std::less with parameter and re-
     turn type
	deduced.

Member functions
	operator() tests if lhs compares less than rhs
		   (public member function)

     std::less<void>::operator()

	template< class T, class U >

	constexpr auto operator()( T&& lhs, U&& rhs ) const

	    -> decltype(std::forward<T>(lhs) < std::forward<U>(rhs));

	Returns the result of std::forward<T>(lhs) < std::forward<U>(rhs).

Parameters
	lhs, rhs - values to compare

Return value
	std::forward<T>(lhs) < std::forward<U>(rhs).

	If a built-in operator comparing pointers is called, the result is  con-
     sistent with
	the implementation-defined strict total order over pointers.

Exceptions
	May throw implementation-defined exceptions.

Example
     // Run this code

      #include <algorithm>
      #include <functional>

      constexpr bool strictly_negative(int lhs)
      {
	  return std::less<>()(lhs, 0);
      }

      int main()
      {
	  constexpr signed low = 010;
	  constexpr unsigned high = 10;
	  std::less<> less{};
	  static_assert(less(low, high));

	  constexpr static auto arr = {0, -1, -2, -3, -4, -5};
	  static_assert(!std::all_of(arr.begin(),    arr.end(),   strictly_nega-
     tive));
	  static_assert(std::all_of(arr.begin() + 1,  arr.end(),  strictly_nega-
     tive));
      }

	Defect reports

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

	   DR	 Applied to	   Behavior  as  published		 Correct
     behavior
	LWG  2562  C++98      the pointer total order might be	   guaranteed to
     be consistent
			    inconsistent

http://cppreference.com 	   2024.06.10			    std::less(3)

home | help