$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [boost] [local] Help for the Alternatives section
From: Gordon Woodhull (gordon_at_[hidden])
Date: 2011-03-28 04:06:36
On Mar 28, 2011, at 2:08 AM, Thomas Heller wrote:
>> That's what came to my mind too - it's statement syntax versus expression syntax, right? Phoenix has pseudo-statements but they're still in expression syntax.
>
> Yes. This is a bit confusing: Everything in Phoenix (or BLL) is a C++ Expression
> (having a return type etc., can be void). Phoenix has a statement module, which
> emulates C++ statements. As a C++ Expression they have a return type of void.
> We compose these expressions using expression templates (woohoo!), which we
> traverse upon evaluation.
Sure, I get that. I was suggesting that the most neutral way to describe that row might be Syntax? Statement / Expression
> Phoenix also has something similar to Boost.Local. Not really local functions
> but you can adapt (almost) any function object (with everything written with C++
> statements) to be phoenix statements.
It's great that all these techniques work together so well.
> So i might even claim that you can write phoenix functions "using usual C++ syntax".
While that's really cool, I think it's confusing matters to say that, at least in this context. It's a function that's been adapted for use with phoenix, it's not what anyone would think of when talking about the phoenix syntax.
Gordon