Subject: Re: [boost] Breaking existing libraries
From: Thorsten Ottosen (thorsten.ottosen_at_[hidden])
Date: 2008-11-23 07:21:23
Dave Handley skrev:
> Comments inlined:
> Markus Werle writes:
> I've got one final point to make here. I went through and reviewed the
> code changes in boost.range that Tom is referring to. I wouldn't be
> happy putting this type of code change through in my own libraries.
> Changing the functionality of a default constructed object just to get
> rid of a single test against bool in a couple of functions (ostensibly
> for performance) seems to me misguided.
That is of course a valid view. But take to the extreame, it means we
would have to give up the "you don't pay for what you don't use" mantra.
> Furthermore, having different
> functionality in debug and release, for most major users of a library,
> is just dangerous. The size and empty functions for example assert in
> debug, but just silent fail in release.
"Silently fail" is a bit strong here. I mean, if there are any unit-test
set up, I would expect them to trigger an assert in debug-mode. I don't
consider that "silent".
> The issingular function is even
> worse, it tells you whether a range is singular in debug, but always
> returns false in release.
IIRC, is_singular is not documented. So using it is on your own risk. It
could disappear in the next release or whatever.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk