Subject: Re: [Boost-bugs] [Boost C++ Libraries] #9801: I can no longer create and iterator_range from a stable_vector
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2014-06-05 13:07:06
#9801: I can no longer create and iterator_range from a stable_vector
------------------------------------------+------------------------
Reporter: Joseph Southwell <joseph@â¦> | Owner: igaztanaga
Type: Bugs | Status: new
Milestone: Boost 1.56.0 | Component: container
Version: Boost Release Branch | Severity: Regression
Resolution: | Keywords:
------------------------------------------+------------------------
Changes (by neilgroves):
* owner: neilgroves => igaztanaga
* status: assigned => new
* component: range => container
Comment:
I have been able to reproduce the problem. This is a compiler defect that
has plagued Microsoft C++ compilers for many major versions. It simply
reaches a scalability point where the names become jumbled and muddled
between namespaces. It is almost impossible to reproduce a small test case
and therefore very difficult to get Microsoft to take the report
seriously.
The reason that only stable_vector appears to be a problem is that it,
quite legitimately uses the class name iterator within the
boost::stable_vector_detail namespace. However the Microsoft compiler is
confusing the class in boost::stable_vector_detail::iterator with the
iterator typedef within stable_vector. I have proven this to be true by
renaming boost::stable_vector_detail::iterator to
boost::stable_vector_detail::sv_iterator and showing that this fixes the
issue.
It is therefore clearly neither a defect in Boost.Container or
Boost.Range, but try as I might there appears to only be the possibilty to
work-around this problem by making a small change to Boost.Container.
I am therefore reassigning this defect to Boost.Container since I do not
have write-access to fix this problem myself. It is clear that simply
renaming iterator to sv_iterator fixes this issue.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/9801#comment:7> 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:16 UTC