
Hello, I have boost::array< pair<double, double>, 16 >::iterator (it has iterator_traits<>::iterator_category random_access_iterator_tag) which I have transformed with typedef transform_iterator< UnaryFunction, ... > iteratorIntoFirst; struct UnaryFunction: public std::unary_function< pair<double, double>, double> { double operator()( const pair<double, double>& e ) const { return e.first; } } However on asserting the category is still random access, boost static assert fails: BOOST_STATIC_ASSERT(( boost::is_convertible< iteratorIntoFirst, std::random_access_iterator_tag >::value ));
From the docs http://www.boost.org/doc/libs/1_38_0/libs/iterator/doc/transform_iterator.ht ml
If Iterator models Readable Lvalue Iterator and if Iterator models "Random Access Traversal Iterator", then iterator_category is convertible to random_access_iterator_tag. Any ideas, Regards,