
We were just upgrading from 1.34.1 to 1.39.0 and I ran into this issue which I note is still in the trunk (and I would assume the 1.40 candidate). The definition of iterator_range::size is using operator- where it should be using std::distance as it did in boost 1.34 days: """ difference_type size() const { BOOST_ASSERT( !is_singular() ); return m_End - m_Begin; } """ It used to be: """ #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582)) return std::distance<IteratorT>( m_Begin, m_End ); #else return std::distance( m_Begin, m_End ); #endif """ I'm not sure why it would have changed but it's no longer working with bi-directional iterators, etc. Can we put back the old version? Can we get this fixed for 1.40? Thanks, -Ryan