Boost logo

Boost-Build :

Subject: [Boost-build] [range] size works only with random access ranges
From: Felipe Magno de Almeida (felipe.m.almeida_at_[hidden])
Date: 2010-08-04 06:57:03


Why the size primitive only works with random access range?
Shouldn't it be implemented generically?

It is implemented like this in boost 1.43.0:

    template< class T >
    inline BOOST_DEDUCED_TYPENAME range_difference<T>::type size( const T& r )
        BOOST_ASSERT( (boost::end( r ) - boost::begin( r )) >= 0 &&
                      "reachability invariant broken!" );
        return boost::end( r ) - boost::begin( r );

Which requires a binary operator- for the iterator type.


Felipe Magno de Almeida

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at