Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2003-06-11 09:17:36


hartmutkaiser_at_[hidden] (Hartmut Kaiser) writes:

> David Abrahams wrote:
>
>> > As a last resort this certainly helps. And in a year or so
>> nobody will
>> > talk about the transitional CVS versions. But now it would be very
>> > helpful, if there was a separate BOOST_ITERATOR_ADAPTOR_VERSION pp
>> > constant, which could be used for this needs (BTW Spirit has such a
>> > constant from the early beginnings). Please don't get me
>> wrong, I do
>> > not want to have a very fine granulated version tracking
>> constant. My
>> > point is, that such interface breaking changes _must_ be track-able.
>>
>> Well, here are the problems:
>>
>> 1. There's no definition of this macro in the current sources
>>
>> 2. The new iterator adaptors don't use the same file paths,
>> e.g. boost/iterator/iterator_adaptor.hpp vs
>> boost/iterator_adaptors.hpp.
>>
>> I'm certainly open to any concrete solutions to this problem.
>> Just tell me how to do it.
>
> Hmmm... You're removed the boost/iterator_adaptors.hpp file
> intentionally, right? This makes it even more problematic, because,
> there is no chance to circumvent compilation errors.

There are going to be compilation errors anyway, since the interface
is drastically different.

> What about re-introducing the boost/iterator_adaptors.hpp file:
>
> #define BOOST_ITERATOR_ADAPTOR_VERSION 0x2000
> #include <boost/iterator/iterator_adaptor.hpp>
>
> This would allow for some version tracking and a smooth migration path
> for those libraries, willing to support both, the new _and_ the old
> iterator libs. Thought's?

OK, that seems reasonable. Libraries can check to see if
BOOST_ITERATOR_ADAPTOR_VERSION is defined and use different code in
that case.

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

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