We have come across these before. Objects that are instances of classes that have an overloaded operator(), the function call operator, are considered to be function objects. In the context of STL there are some specific templated function objects classes that are used. There is a list at: http://en.cppreference.com/w/cpp/utility/functional
These are all in the header <functional>
less: Implements x < y
equal_to: Implements x == y
greater: Implements x > y
These provide a passable means of accessing those operations generically, so for use in a generic algorithm. We can, for example, take a container specified by iterators, and apply sort using a random_access iterator and a function object less. The less tells you how to do the individual comparisons within the sort.