
On Fri, Feb 20, 2004 at 04:35:55AM -0500, Gennadiy Rozental wrote:
I do not think we understand each other. Let me rephrase. My position is that polymorphic function object support does not belong to the library dedicated to "functional programming", even though I propose to update boost/functional.hpp header
Oh, I see. Yes, I agree. This is a generally useful feature; one not limited just to functional programming. I dunno if/what the plans are for a Boost "result_of" implementation (Doug?), but that will be the keystone library component to this end, I think.
It may also be attractive to OO people, who have gotten into the now-fashionable habit of avoiding member functions. Switching from the member notation
Shape s; Point p; if( s.contains(p) ) ...
to the non-member notation
if( contains(s,p) ) ...
loses the subject-verb-object order; using function objects that support infix, however, lets you say
if( s ^contains^ p ) ...
which some people may find attractive.
And some really confusing. Moreover in a user code, above most probably would look like if( s ^ boost::fcpp::contains ^ p ).
No; contains() in this example is a function the author of Shape would be writing. That is, it's a function you write in your own namespace.
Also it only look pretty for binary functoids. In any case I believe that if you do find it widely useful and could "prove" that, this should be the feature also implemented by boost::function.
Agreed on both points. -- -Brian McNamara (lorgon@cc.gatech.edu)