Boost logo

Boost :

From: Giovanni Piero Deretta (gpderetta_at_[hidden])
Date: 2007-12-27 08:33:37


On 12/27/07, shunsuke <pstade.mb_at_[hidden]> wrote:
> Kirit Sælensminde wrote:
> >> Let's have more FP in C++! :-)

Boost will eventually reinvent the whole FC++ library (albeit with a
more consistent boost feeling) :)

> >
> > I've got to agree. The egg library looks like an incredible bit of work.
> > I'd love to see this in Boost too.

Me too :). But I do not think this would make Boost.Forward useless.
Egg is a complex libary that adds lot's of useful functionality to
function objects, Forward instead is simply a small tool to allow a
specific functionality. It is likely to be and remain much simpler
than Egg, so it would be great to have both. If one day Egg really is
found to obsolete the Forward library, Boost could simply remove it.
It has happened before.

There was a project to unify Boost.Bind and Boost.Phoenix which I do
not know if it is still active nor at which stage it is. As there is a
big overlap between Egg and Phoenix, Egg should integrate seamlessy
with both libraries. Or maybe the easiest way would be to simply
replace Phoenix (not a first class boost library).

>
> If boosters think so, I could prepare it for review.
> It seems to take more time, though.

I think it needs at least a good tutorial.

> BTW, I'm tempted to rename Egg to Boost.Functor.

What about Boost.Functional (already taken?) or
Boost.FunctionAdapters, or, my favourite,
Boost.FunctionObjectsOnSteroid :). Or just keep Egg, is simple and
there is precendent for non descriptive names in boost.

> > [...]
> > That isn't to say that there shouldn't be overlap between libraries, but
> > it would be nice if the documentation of the libraries cross tied a bit
> > more.
>
> I think this confusion sometimes comes from the fact that
> libraries don't define Concept names.
> "A FunctionObject that can be used with boost::bind" is not good. :-)

I usually call them Polymorphic Function Objects, even if this also
include FC++ (which originated the name), Boost.Lambda and Phoenix
result type deduction protocols. IIRC the "official name" is
AdaptableFunctionObject, even if I do not remember if the
Boost.ResultOf documentation uses this name.

Happy holidays,

gpd


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