The C++ standard defines function objects as:
A function object type is an object type that can be the type of the postfix-expression in a function call
Yes, they are. The term "object" in C++ standard does not mean "object" in the OOP sense. An int is an object.
int