Function Object
Binary function object that returns true if its first argument is less than or equal to its second
#include<functional>
template <class T> struct less_equal : public binary_function<T, T, bool>;
less_equal is a binary function object. Its operator() returns true if x is less than or equal to y. You can pass a less_equal object to any algorithm that requires a binary function. For example, the sort algorithm can accept a binary function as an alternate comparison object to sort a sequence. less_equal would be used in that algorithm in the following manner:
vector<int> vec1;
. . . sort(vec1.begin(), vec1.end(),less_equal<int>());
After this call to sort, vec1 will be sorted in ascending order.
template <class T>
struct less_equal : binary_function<T, T, bool> { typedef typename binary_function<T, T, bool>::second_argument_type second_argument_type; typedef typename binary_function<T, T, bool>::first_argument_type first_argument_type; typedef typename binary_function<T, T, bool>::result_type result_type; bool operator() (const T&, const T&) const; };
If your compiler does not support default template parameters, then you need to always supply the Allocator template argument. For instance, you'll have to write :
vector<int, allocator>
instead of
vector<int>
binary_function, Function Objects