Boost logo

Boost :

Subject: Re: [boost] New libraries implementing C++11 features in C++03
From: Brent Spillner (spillner_at_[hidden])
Date: 2011-11-24 07:08:20


On 24 Nov 2011 09:11:19 Joel de Guzman wrote:
>Man! Of course you should use the examples in 1.45. Those examples
>are for 1.48 and uses new features implemented in 1.48! Sheesh!

I fully understand that. The point is that the Phoenix interface is
evolving much more quickly than that of probably any other Boost
library. Even apart from the fact that there already have been two
bottom-up rewrites, there are enough significant changes between point
releases that even small example programs are tied to a particular
version of the library. Why is the optimal way to write a small
calculator example today so different from the optimal way to write it
six months ago? I'm not disputing that you're making forward
progress, just highlighting this as another barrier to entry that
Local likely won't have.

>Double Sheesh! If you've spent even a few seconds looking into the
>error (beyond fault-finding), you will see that a simple textual
>search of "error" will reveal this:

Yes, it's possible to wade through the error messages and figure out
what went wrong. And Qi is clearly trying to help out with traceable
assertions; that may well be the best we can do. But no reasonable
person would claim that hundreds of lines of error message, mostly
filled with types that the user never directly constructed, are the
most desirable way to report a simple syntax error. This problem is
endemic to all ET libraries and compilers, and it would be very, very
hard to do much better. Again, though, I think you're underselling
this as a barrier to entry. How many people would ever learn C++ if
all libraries did this?

>Now having said that, and before I leave this thread, let me remind
>everyone that **you can also have statement syntax in Phoenix** if you
>have a complex statement and you fear writing complex phoenix lambda
>expressions. It's called phoenix::functions.

The important issue here isn't just statement /syntax/, it's that we
have options available that don't turn what looks like an ordinary C++
statement into a massive AST with its own mini-compiler behind the
scenes.


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