dereference problems with iterator_facade
hello,
i have a build error when i try to use an iterator derived from
iterator_facade<Iter> with Iter an iterator over a const Range. It's the
const that causes the error. See the *.hpp below and an example.
any other suggestion to improve the *hpp also appreciated.
thanks!
///////////////////////////////////////////////////////////////////////////////
// boost::skip_one_step_iterator.hpp
//
// Copyright 2008 Erwann Rogard. Distributed under the Boost
// Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#ifndef BOOST_ITERATOR_SKIP_ONE_STEP_ITERATOR_HPP_ER200808
#define BOOST_ITERATOR_SKIP_ONE_STEP_ITERATOR_HPP_ER200808
#include <iterator>
#include <stdexcept>
#include
on Tue Aug 19 2008, e r
hello,
i have a build error when i try to use an iterator derived from iterator_facade<Iter> with Iter an iterator over a const Range. It's the const that causes the error. See the *.hpp below and an example.
The problem is that the reference type of Iter is value_type& when it should be value_type const&. The value_type of a constant iterator is still non-const, and you're getting the Value parameter by asking the value_type of BaseIter.
any other suggestion to improve the *hpp also appreciated.
Use iterator_adaptor; all your problems will go away and your code will get smaller. -- Dave Abrahams BoostPro Computing http://www.boostpro.com
David Abrahams wrote:
on Tue Aug 19 2008, e r
wrote: hello,
i have a build error when i try to use an iterator derived from iterator_facade<Iter> with Iter an iterator over a const Range. It's the const that causes the error. See the *.hpp below and an example.
The problem is that the reference type of Iter is value_type& when it should be value_type const&. The value_type of a constant iterator is still non-const, and you're getting the Value parameter by asking the value_type of BaseIter.
any other suggestion to improve the *hpp also appreciated.
Use iterator_adaptor; all your problems will go away and your code will get smaller.
Indeed, it worked. Thanks^2!
participants (2)
-
David Abrahams
-
e r