diff options
Diffstat (limited to '3rdParty/Boost/src/boost/range/size.hpp')
-rw-r--r-- | 3rdParty/Boost/src/boost/range/size.hpp | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/3rdParty/Boost/src/boost/range/size.hpp b/3rdParty/Boost/src/boost/range/size.hpp index 2b572d4..4b4eebe 100644 --- a/3rdParty/Boost/src/boost/range/size.hpp +++ b/3rdParty/Boost/src/boost/range/size.hpp @@ -15,6 +15,7 @@ # pragma once #endif +#include <boost/range/config.hpp> #include <boost/range/begin.hpp> #include <boost/range/end.hpp> #include <boost/range/difference_type.hpp> @@ -22,13 +23,28 @@ namespace boost { + namespace range_detail + { + template<class SinglePassRange> + inline BOOST_DEDUCED_TYPENAME range_difference<SinglePassRange>::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<T>::type size( const T& r ) + template<class SinglePassRange> + inline BOOST_DEDUCED_TYPENAME range_difference<SinglePassRange>::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' |