I am a big fan of function objects. Do you think that all "global" functions are better defined as objects? How about member functions in classes? I usually define fctn. objects inheriting from unary or binary function classes. Is there ever a reason not to do that?

I find the language a bit confusing. Is the class the function object or is each instance of the class a function object. I think the latter.