15 Oct
2008
15 Oct
'08
10:37 p.m.
Why does boost::iterator_range::size() require a random access iterator? The implementation is 'return m_End - m_Begin;' -- if this were changed to 'return std::distance(m_Begin, m_End);' then size() would work with any iterator type. This strikes me as an arbitrary limitation, or at the least a leaky abstraction. Is there a rationale here?