Boost logo

Boost :

Subject: [boost] Breaking existing libraries
From: Tomas Puverle (Tomas.Puverle_at_[hidden])
Date: 2008-11-20 11:50:03

You may or may not have noticed a thread I started on boost.users about the
breaking changes to Boost.Range. Here’s a short summary: We are currently
(firmwide) using boost 1.33.1. I am in the process of trying to migrate and
test some of our apps with boost 1.37. In 1.35 there was a breaking change to
Boost.Range with respect to how singular ranges behave. This brings up several

1) The breakage was silent. The interface stayed the same but the behavior
changed, and drastically so.
2) No communation: While I don’t usually post to boost.devel/boost.user, I and
my colleagues still read it. Nobody recalls any mention of this on the list.
Searching gmane brings up nothing, either.
3) No documentation on the boost website. As far as I can see, this change was
introduced in 1.35 this March.
On, there is no mention of a
breaking change to Boost.Range.
4) The new Boost.Range behaves differently in debug and release builds. The
public function is_singular() always returns false in release builds even when
it would return true in debug builds.

Apart from the fact that this change breaks a lot of our code and obsoletes
several useful (necessary?) idioms, the manner in which it happened is far below
the standards that one has come to expect from boost.

At the moment, I have to say I don’t have a good answer to how to fix our code.
 However, I would at least like to try to make sure this kind of silent breakage
doesn’t happen again.


Boost list run by bdawes at, gregod at, cpdaniel at, john at