home | help
std::experi...::less_equal(3)  C++ Standard Libary std::experi...::less_equal(3)

NAME
     std::experimental::ranges::less_equal	     -		 std::experimen-
     tal::ranges::less_equal

Synopsis
	Defined in header <experimental/ranges/functional>
	template< class T = void >

	    requires StrictTotallyOrdered<T> ||
		     Same<T,			  void> 		      ||
     (ranges TS)
		     /* < on two const T lvalues invokes a built-in operator
	comparing pointers */

	struct less_equal;
	template<>
     (ranges TS)
	struct less_equal<void>;

	Function object for performing comparisons. The primary template invokes
     operator<
	on  const  lvalues  of	type T with the argument order inverted and then
     negates the
	result. The specialization less_equal<void> deduces the parameter  types
     of the
	function call operator from the arguments (but not the return type).

	All specializations of less_equal are Semiregular.

Member types
	Member	type							 Defini-
     tion
	is_transparent (member only of less_equal<void> specialization)  /*  un-
     specified */

Member functions
	operator()  checks  if	the  first argument is less than or equal to the
     second
		   (public member function)

     std::experimental::ranges::less_equal::operator()

	constexpr bool operator()(const T& x, const T&	(1) (member only of pri-
     mary
	y) const;					     less_equal<T>  tem-
     plate)
	template< class T, class U >

	    requires StrictTotallyOrderedWith<T, U> ||
		     /*  std::declval<T>()  <		       (member	only  of
     less_equal<void>
	std::declval<U>() resolves to			(2) specialization)
			a built-in operator comparing
	pointers */

	constexpr bool operator()(T&& t, U&& u) const;

	1) Compares x and y. Equivalent to return !ranges::less<>{}(y, x);.
	2) Compares t and u. Equivalent  to  return  !ranges::less<>{}(std::for-
     ward<U>(u),
	std::forward<T>(t));.

Notes
	Unlike	std::less_equal,  ranges::less_equal requires all six comparison
     operators <,
	<=, >, >=, == and != to be valid (via the StrictTotallyOrdered and
	StrictTotallyOrderedWith constraints) and is entirely defined  in  terms
     of
	ranges::less.  However, the implementation is free to use operator<= di-
     rectly,
	because those concepts require the results of the  comparison  operators
     to be
	consistent.

Example
	 This section is incomplete
	 Reason: no example

See also
	less_equal function object implementing x <= y
		   (class template)

Category:
	  * Todo no example

http://cppreference.com 	   2024.06.10	   std::experi...::less_equal(3)

home | help