Subject: Re: [Boost-bugs] [Boost C++ Libraries] #1315: iterator_adaptor does not work with incomplete Value types
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2010-10-13 22:51:21
#1315: iterator_adaptor does not work with incomplete Value types
--------------------------------------+-------------------------------------
Reporter: joaquin | Owner: witt
Type: Feature Requests | Status: new
Milestone: To Be Determined | Component: iterator
Version: Boost Development Trunk | Severity: Problem
Resolution: | Keywords:
--------------------------------------+-------------------------------------
Comment (by Duncan Exon Smith <duncanphilipnorman@â¦>):
Replying to [comment:7 Duncan Exon Smith <duncanphilipnorman@â¦>]:
> This feature worked in GCC only because of a bug prior to v4.4 (e.g.,
you could use abstract types in v4.3.4). However, this bug -- to do with
the intrinsics `__is_abstract` and `__is_pod` -- was fixed:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39475
>
> GCC v4.4.3 now gives the same as MSVC. In particular,
`iterator_facade<>` cannot be used to wrap pointers to abstract types any
longer. With a large codebase that accidentally relied on this
misbehaviour, we cannot upgrade past GCC v4.3 without this feature.
BTW, in case anyone else is searching for it, there's a similar problem
with `boost::iterator_range<>`, from Boost.RangeEx, since it uses
`is_abstract<>`. Incomplete types cannot be used there, either.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/1315#comment:8> 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