Subject: Re: [boost] New libraries implementing C++11 features in C++03
From: Gregory Crosswhite (gcrosswhite_at_[hidden])
Date: 2011-11-23 06:43:43
On Nov 23, 2011, at 9:15 PM, Sergey Cheban wrote:
> 23.11.2011 8:22, Gregory Crosswhite Ð¿Ð¸ÑÐµÑ:
>> If Boost really were primarily about providing functionality that will only become truly useful on compilers that don't actually exist yet, then I am not sure why anyone would pretend that Boost was *also* intended for practical every-day use by programmers just looking to solve problems. I mean, your point that Boost should be pushing the envelope is well taken, but surely this shouldn't be done at the expense of refusing to ever address the issues that we face in the present.
>> As a wise man once said: "As you know, you go to code with the compilers you have, not the compilers you might want or wish to have at a later time."
> We lived without macro-style lambdas for more than ten years. We can wait for 2-3 years. OTOH, if the boost.local will be included into the boost, it will be neccessary to support it forever or reimplement all the code that depends on it.
> Please note that the boost.move was accepted before the c++11 was accepted. I think it is too late to include the boost.local into the boost.
Just to be clear, what you quoted was my response to the apparent argument that Local doesn't belong in Boost for the reason that we should be using Lambda/Phoenix instead, with the justification being that the essence of the Boost project is to have us use libraries that give us bad experiences so that we can provide feedback based on these experiences to improve C++ compilers. I was not trying to argue that Boost should accept every library that provides useful functionality in the present without regard for its impact on the future of Boost.
I do think that your argument that adding Local to Boost would add an eternal support burden for something that is only needed for 2-3 years is a fair objection; ultimately this comes down to subjective judgement.
> OTOH, the boost.atomic is compatible with std::atomic. It will be relatively easy to remove it from the boost when c++11-incompatible compilers become obsolete.
That is a fair point; deprecation of Boost.Atomic would be a lot easier change for end users to deal with than deprecation of Boost.Local --- assuming that Boost.Local is destined to be deprecated.