X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=boost%2Fboost%2Frange%2Fsize.hpp;h=6ae74d1176ad386d03f451933294551f02cd3441;hb=75ffcc8e866de04b076c81d78003a86efca98e4e;hp=311a69210bb215f5a0835df515dbe10e1034042b;hpb=c2f99181e60c3b92ddeed85a5910ac856d155810;p=lyx.git diff --git a/boost/boost/range/size.hpp b/boost/boost/range/size.hpp index 311a69210b..6ae74d1176 100644 --- a/boost/boost/range/size.hpp +++ b/boost/boost/range/size.hpp @@ -15,20 +15,36 @@ # pragma once #endif +#include #include #include -#include +#include #include -namespace boost +namespace boost { + namespace range_detail + { + template + inline BOOST_DEDUCED_TYPENAME range_size::type + range_calculate_size(const SinglePassRange& rng) + { + BOOST_ASSERT( (boost::end(rng) - boost::begin(rng)) >= 0 && + "reachability invariant broken!" ); + return boost::end(rng) - boost::begin(rng); + } + } - template< class T > - inline BOOST_DEDUCED_TYPENAME range_difference::type size( const T& r ) + template + inline BOOST_DEDUCED_TYPENAME range_size::type + size(const SinglePassRange& rng) { - BOOST_ASSERT( (boost::end( r ) - boost::begin( r )) >= 0 && - "reachability invariant broken!" ); - return boost::end( r ) - boost::begin( r ); +#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \ + !BOOST_WORKAROUND(__GNUC__, < 3) \ + /**/ + using namespace range_detail; +#endif + return range_calculate_size(rng); } } // namespace 'boost'