What is a function object?
An object that in some way behaves like a function, of course. Typically, that would mean an object of a class that defines the application operator – operator(). A function object is a more general concept than a function because a function object can have state that persist across several calls (like a static local variable) and can be initialized and examined from outside the object (unlike a static local variable).