Re: [Boost-bugs] [Boost C++ Libraries] #4647: BOOST_CONCEPT_ASSERT((RandomAccessIterator<boost::transform_iterator>)) fails

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #4647: BOOST_CONCEPT_ASSERT((RandomAccessIterator<boost::transform_iterator>)) fails
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2010-09-13 22:55:22


#4647: BOOST_CONCEPT_ASSERT((RandomAccessIterator<boost::transform_iterator>))
fails
-------------------------------------------------+--------------------------
  Reporter: Ilya Murav'jov <muravev@…> | Owner:
      Type: Bugs | Status: closed
 Milestone: To Be Determined | Component: iterator
   Version: Boost 1.44.0 | Severity: Problem
Resolution: invalid | Keywords:
-------------------------------------------------+--------------------------
Changes (by steven_watanabe):

  * status: new => closed
  * resolution: => invalid
  * component: None => iterator

Comment:

 Replying to [ticket:4647 Ilya Murav'jov <muravev@…>]:
> {{{#!c++
> This is because iterator_adaptor turns std::random_access_iterator_tag
 into boost::random_access_traversal_tag, then iterator_facade turns it
 into iterator_category_with_traversal<std::input_iterator_tag,
 boost::random_access_traversal_tag>. The check fails if
>
> typedef boost::transform_iterator<int(*)(int), int_iterator>
 tr_iterator;
>
> but not if
>
> typedef boost::transform_iterator<int&(*)(int), int_iterator>
 tr_iterator;
>

 This is the correct behavior because of the way the standard defines
 !RandomAccessIterators.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/4647#comment:1>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:04 UTC