Boost logo

Boost :

Subject: Re: [boost] [range] Boost.Range induced regression, is there somewhere a change?
From: Barend Gehrels (barend_at_[hidden])
Date: 2012-05-25 08:19:53


Hi again,

On 25-5-2012 13:46, Barend Gehrels wrote:
> Hi,
>
> Is there something changed in Boost.Range?
>
> Background: I just noticed that there appeared many failing issues
> (yellow squares) in the Boost.Geometry regression matrix here:
>
> http://www.boost.org/development/tests/trunk/developer/geometry.html
>
> I checked the assemble square and it gives me an assertion: Assertion
> `id.ring_index >= -1 && id.ring_index <
> boost::size(interior_rings(polygon))'
>
> Because this did not use to be the case, I did run the test on my
> local machine and it was OK. Then I updated some Boost libraries
> (manually, separately) and as soon as I updated Boost.Range this
> exception did appear.
>
> So the regression is somehow caused by a change in Boost.Range. I did
> not yet research it further, it might be that we do something wrong
> here that was previously accepted but now is not, but it still stays
> an unexpected regression...
>
> Is there someone who has any idea what introduced this?
>
> Thanks, Barend

Found the answer myself. We compare id.ring_index <
boost::size(interior_rings(polygon), where ring_index can be -1.

boost::size's result changed from signed to unsigned. Therefore the
assertion is triggered.

The change on itself is fair, done at April 15:
https://svn.boost.org/trac/boost/changeset/77990

I can fix Boost.Geometry for it, of course, now that we know this. But
it might break other code as well.

Besides this "breaking", it also can cause new warnings about
signed/unsigned comparisons (which is very useful).

Regards, Barend


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk