merged from trunk

[SVN r47983]
This commit is contained in:
Eric Niebler committed 2008-08-05 05:39:57 +00:00
1 parent 630a84aae0
commit 893b0fa60b
15 files changed
+123 -106

No files matched your search

+11 -3
View File
@@ -23,6 +23,8 @@
#include <boost/range/size_type.hpp>
#include <boost/range/difference_type.hpp>
#include <boost/assert.hpp>
#include <boost/type_traits/is_reference.hpp>
#include <boost/type_traits/remove_reference.hpp>
namespace boost
{
@@ -41,6 +43,12 @@ namespace boost
typedef BOOST_DEDUCED_TYPENAME range_difference<ForwardRange>::type difference_type;
typedef BOOST_DEDUCED_TYPENAME range_size<ForwardRange>::type size_type;
typedef BOOST_DEDUCED_TYPENAME base::reference reference;
public: // for return value of front/back
typedef BOOST_DEDUCED_TYPENAME
boost::mpl::if_< boost::is_reference<reference>,
const BOOST_DEDUCED_TYPENAME boost::remove_reference<reference>::type&,
reference >::type const_reference;
public:
sub_range() : base()
@@ -112,7 +120,7 @@ namespace boost
return base::front();
}
const value_type& front() const
const_reference front() const
{
return base::front();
}
@@ -122,7 +130,7 @@ namespace boost
return base::back();
}
const value_type& back() const
const_reference back() const
{
return base::back();
}
@@ -132,7 +140,7 @@ namespace boost
return base::operator[](sz);
}
const value_type& operator[]( difference_type sz ) const
const_reference operator[]( difference_type sz ) const
{
return base::operator[](sz);
}