diff --git a/dune/common/test/iteratortest.hh b/dune/common/test/iteratortest.hh index e457c32f5f2a96cab4ef9a35481c71fba75429c7..c8cbe100fd50902bbd18d73bc199fe1af9277782 100644 --- a/dune/common/test/iteratortest.hh +++ b/dune/common/test/iteratortest.hh @@ -91,10 +91,21 @@ template<class Iter, class Opt> int testBidirectionalIterator(Iter begin, Iter end, Opt opt) { testForwardIterator(begin, end, opt); - for(Iter it = end; it != begin; ) + for(Iter pre = end, post = end; pre != begin; ) { - --it; - opt(*it); + if(pre != post--) + { + std::cerr << "Postdecrement did not return the old iterator" + << std::endl; + return 1; + } + if(--pre != post) + { + std::cerr << "Predecrement did not return the new iterator" + << std::endl; + return 1; + } + opt(*pre); } typename Iter::difference_type size = std::distance(begin, end);