[Boost-bugs] [Boost C++ Libraries] #10336: compilation error in iterator_range and unordered_map

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