Boost logo

Boost Users :

Subject: Re: [Boost-users] Boost 1.56.0 compilation error in iterator_range
From: Eric Niebler (eniebler_at_[hidden])
Date: 2014-08-09 15:46:35


On 8/9/2014 4:10 AM, gast128 wrote:
> I get a compilation error with vc10, iterator_range and a (const)
> unordered_map (the beta candidate 2 was still ok I think):
>
> #include "stdafx.h"
> #include <boost/range/iterator_range.hpp>
> #include <boost/unordered_map.hpp>
>
> int _tmain(int /*argc*/, _TCHAR* /*argv*/[])
> {
> typedef boost::unordered_map<int, int> Container;
> typedef Container::const_iterator ContainerIterator;
> typedef boost::iterator_range<ContainerIterator> ContainerIteratorRange;
>
> const Container cnt;
>
> ContainerIteratorRange rng(cnt.cbegin(), cnt.cend());
>
> return 0;
> }
>
> This gives C2248:
>
> 'boost::unordered::iterator_detail::c_iterator<Node,ConstNodePointer>::iterator'
>
> cannot access private typedef declared in class

Well, this is unfortunate. It's broken also on msvc-12 and clang trunk,
but strangely not on gcc. I thought it might be due to this change in
Boost.Range:

https://github.com/boostorg/range/commit/264017e2a9bdbfcc24517ce05f8ef96df0a8c45b

But reverting that doesn't have any effect. It works on Boost 1.55, so
this is definitely a regression.

Can you please file a bug? Neil, can you take a look?

Thanks,
Eric


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net