
Chad Nelson wrote:
On Mon, 7 Mar 2011 04:25:00 +0200 "Peter Dimov" <pdimov@pdimov.com> wrote:
[...] For the people who do care, the library should provide free function templates that operate on a well-defined Integer concept which is "operationless" on its own and only stores bits (in chunks of some element_type perhaps). The supplied 'integer' class would be our best effort of implementing this concept in the manner we think is best for the users who want us to make this decision for them. The rest should be able to define their own integer classes and get the operations "for free".
That's what I'm aiming for in the long run, as a result of the feedback I've gotten during the review.
If that's the case - and if I were you - I would seriously consider withdrawing the library now. (This is not a "no" vote.) By trying to satisfy all people's wishes, you've made the library very complex, introducing policies and Boost.Parameter use. An architecture such as the one above would have allowed you to counter every "but I need an integer that does X instead" objection with "write your own, using example 2a as a starting point; it's easy" and would have kept the basic integer class clean. If the library enters Boost now, you may never be able to get back to this point, because for backward compatibility you'd be forced to maintain the current design. But the decision is yours and if the choice is between getting the current library into Boost and abandoning it in frustration - because having to throw a few months of work away is not very motivating - then it's obviously better to get it into Boost because it certainly looks good enough.