Subject: Re: [boost] [iterator][range] BoostIteratorTraversalConcepts-aware boost::advance/distance
From: Andrzej Krzemienski (akrzemi1_at_[hidden])
Date: 2017-06-28 20:14:07
2017-06-28 22:03 GMT+02:00 Michel Morin via Boost <boost_at_[hidden]>:
> The Boost iterator traversal concepts have not been adopted by the C++
> Because of this, some of RandomAccessTraversalIterators (Boost's concepts)
> treated as InputIterators (Standard's concepts) by the stdlib.
> IMHO, Boost.Iterator should provide BoostIteratorTraversalConcepts-aware
> `boost::advance` and `boost::distance` to avoid the inefficiencies.
Not just inefficiencies. Using `prev()` may simply cause UB. See here:
> neither of them are implemented. (Boost.Range has `boost::distance` for
> ranges, but it just calls `std::distance`.)
> I'm attaching files that implement `boost::advance` and `boost::distance`.
> Would these functions be useful additions?
They are necessary for Boost to be consistent. But I think this means
coupling two libraries.