diff --git a/include/boost/range/iterator_range.hpp b/include/boost/range/iterator_range.hpp index 4469be9..b99e137 100755 --- a/include/boost/range/iterator_range.hpp +++ b/include/boost/range/iterator_range.hpp @@ -192,6 +192,8 @@ namespace boost { // iterator range free-standing operators ---------------------------// +#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING +#else template< class Iterator > inline bool empty( const iterator_range& r ) { @@ -201,6 +203,7 @@ namespace boost { // return r.empty(); } +#endif //! iterator_range output operator /*! diff --git a/include/boost/range/sub_range.hpp b/include/boost/range/sub_range.hpp index 701d8a0..438600d 100755 --- a/include/boost/range/sub_range.hpp +++ b/include/boost/range/sub_range.hpp @@ -39,11 +39,23 @@ namespace boost { } template< class ForwardRange2 > - sub_range( ForwardRange2& r ) : base( r ) + sub_range( ForwardRange2& r ) : + +#if BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, <= 800 ) + base( boost::begin( r ), boost::end( r ) ) +#else + base( r ) +#endif { } template< class ForwardRange2 > - sub_range( const ForwardRange2& r ) : base( r ) + sub_range( const ForwardRange2& r ) : + +#if BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, <= 800 ) + base( boost::begin( r ), boost::end( r ) ) +#else + base( r ) +#endif { } template< class Iter >