Re: [Boost-bugs] [Boost C++ Libraries] #6167: Assignment from a temporary of a class containing boost::unordered_map members fails with GNU GCC.

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #6167: Assignment from a temporary of a class containing boost::unordered_map members fails with GNU GCC.
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2011-11-24 09:04:59


#6167: Assignment from a temporary of a class containing boost::unordered_map
members fails with GNU GCC.
----------------------------------------------+-----------------------------
  Reporter: Geurt Vos <geurt.vos@…> | Owner: igaztanaga
      Type: Bugs | Status: new
 Milestone: To Be Determined | Component: unordered
   Version: Boost 1.48.0 | Severity: Problem
Resolution: | Keywords:
----------------------------------------------+-----------------------------

Comment (by Geurt Vos <geurt.vos@…>):

 this works:

   boost::unordered_map<int, int> m = boost::assign::map_list_of(1, 1)(2,
 2);

 this doesn't:

   boost::unordered_map<int, int> m; [[BR]]
   m = boost::assign::map_list_of(1, 1)(2, 2);

 with the follow errors:

   move.hpp:233:7: error: ‘boost::rv<T>::~rv() [with T =
 boost::unordered::unordered_map<int, int>]’ is private [[BR]]
   test.cpp:14:28: error: within this context

   In file included from test.cpp:6:0: [[BR]]
   move.hpp: In member function
 â€˜boost::assign_detail::generic_list<T>::operator Container() const [with
 Container = boost::rv<boost::unordered::unordered_map<int, int> >, T =
 std::pair<int, int>]’: [[BR]]
   test.cpp:14:28: instantiated from here

   move.hpp:233:7: error: ‘boost::rv<T>::~rv() [with T =
 boost::unordered::unordered_map<int, int>]’ is private [[BR]]
   list_of.hpp:436:81: error: within this context

   move.hpp:234:7: error: ‘boost::rv<T>::rv(const boost::rv<T>&) [with T =
 boost::unordered::unordered_map<int, int>, boost::rv<T> =
 boost::rv<boost::unordered::unordered_map<int, int> >]’ is private [[BR]]
   list_of.hpp:436:81: error: within this context

   In file included from test.cpp:6:0: [[BR]]
   move.hpp: In member function ‘Container
 boost::assign_detail::converter<DerivedTAssign,
 Iterator>::convert_to_container() const [with Container =
 boost::rv<boost::unordered::unordered_map<int, int> >, DerivedTAssign =
 boost::assign_detail::generic_list<std::pair<int, int> >, Iterator =
 std::_Deque_iterator<std::pair<int, int>, std::pair<int, int>&,
 std::pair<int, int>*>]’: [[BR]]
   list_of.hpp:436:81: instantiated from
 â€˜boost::assign_detail::generic_list<T>::operator Container() const [with
 Container = boost::rv<boost::unordered::unordered_map<int, int> >, T =
 std::pair<int, int>]’ [[BR]]
   test.cpp:14:28: instantiated from here

   move.hpp:233:7: error: ‘boost::rv<T>::~rv() [with T =
 boost::unordered::unordered_map<int, int>]’ is private [[BR]]
   list_of.hpp:142:54: error: within this context

   move.hpp:234:7: error: ‘boost::rv<T>::rv(const boost::rv<T>&) [with T =
 boost::unordered::unordered_map<int, int>, boost::rv<T> =
 boost::rv<boost::unordered::unordered_map<int, int> >]’ is private [[BR]]
   list_of.hpp:142:54: error: within this context

   list_of.hpp: In member function ‘Container
 boost::assign_detail::converter<DerivedTAssign, Iterator>::convert(const
 Container*, boost::assign_detail::default_type_tag) const [with Container
 = boost::rv<boost::unordered::unordered_map<int, int> >, DerivedTAssign =
 boost::assign_detail::generic_list<std::pair<int, int> >, Iterator =
 std::_Deque_iterator<std::pair<int, int>, std::pair<int, int>&,
 std::pair<int, int>*>]’: [[BR]]
   list_of.hpp:142:54: instantiated from ‘Container
 boost::assign_detail::converter<DerivedTAssign,
 Iterator>::convert_to_container() const [with Container =
 boost::rv<boost::unordered::unordered_map<int, int> >, DerivedTAssign =
 boost::assign_detail::generic_list<std::pair<int, int> >, Iterator =
 std::_Deque_iterator<std::pair<int, int>, std::pair<int, int>&,
 std::pair<int, int>*>]’ [[BR]]
   list_of.hpp:436:81: instantiated from
 â€˜boost::assign_detail::generic_list<T>::operator Container() const [with
 Container = boost::rv<boost::unordered::unordered_map<int, int> >, T =
 std::pair<int, int>]’ [[BR]]
   test.cpp:14:28: instantiated from here

   list_of.hpp:163:46: error: no matching function for call to
 â€˜boost::rv<boost::unordered::unordered_map<int, int>
>::rv(boost::assign_detail::converter<boost::assign_detail::generic_list<std::pair<int,
 int> >, std::_Deque_iterator<std::pair<int, int>, std::pair<int, int>&,
 std::pair<int, int>*> >::iterator,
 boost::assign_detail::converter<boost::assign_detail::generic_list<std::pair<int,
 int> >, std::_Deque_iterator<std::pair<int, int>, std::pair<int, int>&,
 std::pair<int, int>*> >::iterator)’ [[BR]]
   list_of.hpp:163:46: note: candidates are: [[BR]]
   move.hpp:234:7: note: boost::rv<T>::rv(const boost::rv<T>&) [with T =
 boost::unordered::unordered_map<int, int>, boost::rv<T> =
 boost::rv<boost::unordered::unordered_map<int, int> >] [[BR]]
   move.hpp:234:7: note: candidate expects 1 argument, 2 provided [[BR]]
   move.hpp:232:7: note: boost::rv<T>::rv() [with T =
 boost::unordered::unordered_map<int, int>] [[BR]]
   move.hpp:232:7: note: candidate expects 0 arguments, 2 provided

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/6167#comment:4>
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:07 UTC