[function.objects.general] (original) (raw)

A function object type is anobject type that can be the type of thepostfix-expression in a function call ([expr.call], [over.match.call]).225

A function object is an object of a function object type.

In the places where one would expect to pass a pointer to a function to an algorithmic template, the interface is specified to accept a function object.

This not only makes algorithmic templates work with pointers to functions, but also enables them to work with arbitrary function objects.