Subject: [Boost-bugs] [Boost C++ Libraries] #10336: compilation error in iterator_range and unordered_map
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2014-08-10 08:07:32
#10336: compilation error in iterator_range and unordered_map
------------------------------+------------------------
Reporter: gast128@⦠| Owner: neilgroves
Type: Bugs | Status: new
Milestone: To Be Determined | Component: range
Version: Boost 1.56.0 | Severity: Problem
Keywords: |
------------------------------+------------------------
I get a compilation error with vc10, iterator_range and a (const)
unordered_map (the beta candidate 2 was still ok I think):
{{{#!cpp
#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
etc.
Eric: Niebler:
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:
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?
A possible fix:
github.com/boostorg/range/pull/19
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/10336> 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