Boost logo

Boost :

From: Eric Niebler (eric_at_[hidden])
Date: 2008-06-06 14:05:39


Daniel Walker wrote:
> Does Phoenix allow side-effects or is it "pure" functional like Fusion
> and FC++? Does it allow modification of arguments by reference -
> either builtin references or reference_wrapper?

Yes. Placeholders are substituted with argument references, so you can
do this:

   int i = 0;
   (++_1)(i);
   assert(1 == i);

Local variables that appear in Phoenix lambdas are captured by value,
unless you specify that you want them captured by reference. You can do
that with phoenix::ref().

> What is the status of the Phoenix msvc port? The documentation seems
> to indicate that it's possible but not necessarily forthcoming.

MSVC port? Phoenix works on MSVC and always has, AFAIK.

> Is there any immediate plan to make Phoenix interoperable with the
> coming standard library's std::bind, std::placeholders,
> std::is_bind_expression, and std::is_placeholder?

I don't know. I do know that Phoenix has been ported to Proto in its
entirety (by me), and this might be a nice addition for Phoenix v3.

<snip lots>

> One last thing - I noticed that FC++ was submitted for inclusion in
> Boost a few years back. What ever happened with that?

It was rejected. I seem to recall people feeling that it wasn't C++-ish
enough.

-- 
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