Boost logo

Boost :

Subject: Re: [boost] [Review] Phoenix V3: mini-review starts February 19th
From: Eric Niebler (eric_at_[hidden])
Date: 2011-02-02 12:55:42


(Cross-posting for now, but please follow up on boost-users only.)

On 2/3/2011 12:06 AM, Robert Ramey wrote:
> I've been studying proto/fusion/phoenix. Becoming familiar with this stuff
> takes quite an effort. It's quite interesting though. And it seems ideal
> for a project I want to do. But I do have one question:
>
> phoenix/Function objects
> Functional/
> Proto/
> PolymorphicFunctionObject
> ?
>
> All seem to address function objects. There seems to be a lot of
> overlap and it's not clear to me which I should be using for what.
> That is, each library seems to address function objects from a
> different perspective, but there is not summary which contrasts
> them. I need a "function object library Decoder Ring". Are
> there any documents which would help me out?

Lots of libraries define function objects or tools for creating them.
That's true for Phoenix and Proto (both tools for creating function
objects). Phoenix helps you define general purpose function objects
in-place (lambdas). Proto helps you define function objects specifically
for manipulating expression trees (grammars w/ semantic actions).

PolymorphicFunctionObject is a concept that function objects must model
if they are to be usable with boost::result_of. Function objects created
by Phoenix and Proto all model PolymorphicFunctionObject.

I don't know anything about boost/functional.

HTH,

-- 
Eric Niebler
BoostPro Computing
http://www.boostpro.com

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk