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
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 acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk