
on Fri Aug 10 2012, Karsten Ahnert <karsten.ahnert-AT-ambrosys.de> wrote:
I tried to find different solutions but it is difficult since one is more or less always checking for overlap. On the other hand I wonder if the requirement of transitivity can be relaxed in this case. I can not imagine an algorithm where the above situation might occur. The iterator is a single pass iterator which limits the number of possible algorithms. Furthermore the violation can only appear if two end iterators are used. This is not the case for all algorithms in the standard and Boost.Range.
Any ideas or comments? Is it really necessary to require transitivity?
Yes. Transitivity of == is fundamental. -- Dave Abrahams BoostPro Computing Software Development Training http://www.boostpro.com Clang/LLVM/EDG Compilers C++ Boost