
I encountered some problems while using counting_iterator. Suppose we have a range called RangeType, and we define: typedef boost::counting_iterator< boost::range_value< RangeType >::type
MyCountingIterator;
if I do:
std::vector< int > vec( 100 );
std::vector< int >:: iterator iter = vec.begin() + ( countingIter2 -
counitingIter1 );
VC8 would then complain about a conversion from __int64 to int because the
difference type of MyCountingIterator (using default) is __int64. Since we
treat warnings as errors. I then changed MyCountingIterator to
typedef boost::counting_iterator< boost::range_value< RangeType >::type,
boost::use_default, boost::range_difference< RangeType >::type >
MyCountingIterator;
This time I got a different error:
iterator_facade.hpp(554) : error C2784: '__w64 int
boost::counting_iterator