Re: [Boost-bugs] [Boost C++ Libraries] #1315: iterator_adaptor does not work with incomplete Value types

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