
Hi, Steven Watanabe wrote:
The code currently supports only forward_traversal_tag, bidirectional_traversal_tag, and random_access_traversal_tag.
What needs to be added is another concept_interface specialization.
Of course, thanks. Now it works as expected. With the patch sent in the other email also bidirection iterator Concept must be tweaked since now it must use requirements from forward iterator Concept. I've run tests and on MSVC2010 and clang everything is ok but on MinGW and GCC 4.7 there is an error: boost/mpl/aux_/preprocessed/gcc/arg.hpp:45:9: error: template instantiation depth exceeds maximum of 128 in test_forward_iterator. After some tweaks (no_traversal iterator as a base Concept) it's ok for forward iterator but there are no tests for bidirectional and random access one. It's possible that this error will occur for those iterators even without my change. So just in case I've also set no_traversal_tag as a base Concept for those too. One might also try to implement only one concept_interface using boost::iterator_facade<...>::iterator_category or boost::detail::facade_iterator_category<> to be consistent with Boost.Iterator. I hope this would be useful. Do you know if Boost.TypeErasure is going to be released in 1.54 (preferably with similar changes)? I'm considering using it in Geometry.Index. Best regards, Adam Wulkiewicz