On 9/27/2017 2:03 AM, degski via Boost wrote:
On 27 September 2017 at 00:43, Joaquin M López Muñoz via Boost < boost@lists.boost.org> wrote:
... but libraries, in my opinion, should start with a minimal and well grounded design and add more stuff as demand proves their need.
This sounds good in theory, but doesn't work like that in practice. Libraries tend to get "stuck" in their inital state.
As an example of this: I recently proposed to add variadic move construction for nodes to boost::pool (a trivial change). And even though this has obvious advantages (and would get rid for C++11 capable compilers of the use of M4 to generate the necessary code), this was received with: file a PR, including tests (?) and change to documentation. Enough to put me off, so I just changed it locally.
The pool library has no official maintainer so it had been added to the CMT libraries. You would probably have gotten more response to your suggestion if pool had an official maintainer. I do not think that is much proof that libraries tend to get "stuck" in their initial state, although it happens some of the time. C++ inheritance often means that you can add functionality to a library via another library or your own one-off class(es). But I agree that the initial notion that a library should have a well grounded design, although "minimal" is highly subjective, is a good one. snipped...