Boost logo

Boost :

From: Eric Niebler (eric_at_[hidden])
Date: 2008-03-15 16:24:37


Markus Werle wrote:
> Hi!
>
> This is a proposal for extra text which might have helped me to catch
> some things right from the beginning:
>
> Section "Accessing Children Nodes":
> Subsection "Expression Nodes as fusion sequnces"
> After "... arguments in order"
> please insert an improved version of the following
> paragraph (intended for first-contact-to-proto people like me)
>
>
> ---
> Note that in C++ operators are nothing else but special syntax for
> operations that can be written as function calls, ...

<snip>

OK.

> ;-)
> \footnote{Once in a time binary operator+ was tagged tag::plus, which led to
> trouble for the tag name of unary operator+. A lot of crazy proposals for
> the tag name were made, now we simply use tag::binary_plus and
> tag::unary_plus, no further discussions needed}
> ;-)

:-) FWIW, I (mostly) agree with this approach. s/posit/unary_plus/. I
think plus stays plus, though. And the bike shed is green.

> the call fun(...) has a return type of expr<tag::function,
> PUT_SOME_CODE_HERE, ....>
> The integers are automatically wrapped in terminal<int>s.
> That's why proto is so cool.

I hope that's not Proto's most compelling feature.

<snip>

> we use a compile
> time algorithm which drops the first element from the list before pushing
> the result through other very useful algorithms of boost::fusion -
> in this example for_each and transform

I agree something like this is needed to make the section on Fusion
integration more understandable.

> (Did we already mention that you are lost with proto if you do not
> know fusion?)

It helps, but users should be required to read Fusion's docs to
understand Proto. If that's the case, I need to fix it.

-- 
Eric Niebler
Boost Consulting
www.boost-consulting.com

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