From 17514e1d446652efa14ce43bc490518dafae6774 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorsten=20J=C3=B8rgen=20Ottosen?= Date: Tue, 23 Oct 2007 19:34:38 +0000 Subject: [PATCH] added operator() to allow random access index with transform iterators [SVN r40375] --- include/boost/range/iterator_range.hpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/include/boost/range/iterator_range.hpp b/include/boost/range/iterator_range.hpp index ebdbc3e..41b30af 100755 --- a/include/boost/range/iterator_range.hpp +++ b/include/boost/range/iterator_range.hpp @@ -348,10 +348,21 @@ namespace boost return *--last; } - reference operator[]( size_type sz ) const + reference operator[]( size_type at ) const { - BOOST_ASSERT( sz < size() ); - return m_Begin[sz]; + BOOST_ASSERT( at < size() ); + return m_Begin[at]; + } + + // + // When storing transform iterators, operator[]() + // fails because it returns by reference. Therefore + // operator()() is provided for these cases. + // + value_type operator()( size_type at ) const + { + BOOST_ASSERT( at < size() ); + return m_Begin[at]; } iterator_range& advance_begin( difference_type n )