Scroll to navigation

std::less_equal(3) C++ Standard Libary std::less_equal(3)

NAME

std::less_equal - std::less_equal

Synopsis


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


Function object for performing comparisons. Unless specialized, invokes operator<=
on type T.


Implementation-defined strict total order over pointers


A specialization of std::less_equal for any pointer type yields the
implementation-defined strict total order, even if the built-in <= operator does
not.


The implementation-defined strict total order is consistent with the partial order
imposed by built-in comparison operators (
<=>,
(since C++20)<, >, <=, and >=), and consistent among following standard function
objects:


* std::less, std::greater, std::less_equal, and std::greater_equal, when the
template argument is a pointer type
or void
(since C++14)


* std::ranges::equal_to, std::ranges::not_equal_to,
std::ranges::less, std::ranges::greater, std::ranges::less_equal, (since C++20)
std::ranges::greater_equal, and std::compare_three_way

Specializations


less_equal<void> function object implementing x <= y deducing argument and return
(C++14) types
(class template specialization)

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 inheriting (until C++11)
std::binary_function<T, T, bool>.

Member functions


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

std::less_equal::operator()


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


Checks if lhs is less than or equal to rhs.

Parameters


lhs, rhs - values to compare

Return value


For T which is not a pointer type, true if lhs <= rhs, false otherwise.


For T which is a pointer type, true if lhs does not succeed rhs in the
implementation-defined strict total order, false otherwise.

Exceptions


May throw implementation-defined exceptions.

Possible implementation


constexpr bool operator()(const T &lhs, const T &rhs) const
{
return lhs <= rhs; // assumes that the implementation uses a flat address space
}

See also


less function object implementing x < y
(class template)
ranges::less_equal function object implementing x <= y
(C++20) (class)

2022.07.31 http://cppreference.com