Boost logo

Boost :

Subject: Re: [boost] New libraries implementing C++11 features in C++03
From: Christopher Jefferson (chris_at_[hidden])
Date: 2011-11-25 06:16:38

On 25 Nov 2011, at 11:01, Dean Michael Berris wrote:
> If the rejection of N2511 in favor of the current lambda is any
> indication, even the committee finds that local functions an
> unnecessary complication. What makes you think that bringing N2511
> back into C++03 would even make sense especially since there are
> already approximations to C++11 lambda's?
> It's logic really:
> 1) C++11 lambda > N2511
> 2) Since Phoenix ~ (C++11 lambda + more) and Local ~ N2511
> 3) Therefore, Phoenix > N2511
> 4) QED
> No?


You seem simply unwilling to accept that there are people who refuse to use Pheonix, and libraries built on it because:

1) It leads to horribly large compile times.
2) Error messages. I know you hate this, so let me write out my opinion one last time.

Phoenix leads to error messages which:
* On the compilers I commonly use - I can't change this, there aren't that many compilers around.
* Are very, very large
* and require different skills to read and understand than any other library.

And therefore, I choose not to use it, as developing code using these libraries is much more difficult than the alternatives, even after I spend time trying to understand their idiosyncrasies.

You seem to think that anyone who doesn't agree with you on this point is stupid, or just "doesn't get it". I have written several large parsers using boost::spirit. They had great performance, and once the code was written they looked very nice to read. However, I have still removed those parsers, and will not write any more (after I have re-evaluated the current root of spirit/phoenix, to see if error messages have improved in the last 6 months or so).

I have spent a lot of time reading C++ error messages, and writing large C++ libraries. I have contributed quite a few patches to boost.

Personally, having now taken the time to full evaluate local (which I wouldn't have done without this discussion), I believe it is a valuable C++ library, which I will make use of during the C++03 -> C++11 migration period (which I expect to take several years, given clang still doesn't support lambdas today).


Boost list run by bdawes at, gregod at, cpdaniel at, john at