[Boost-bugs] [Boost C++ Libraries] #12955: ambiguous member when calling upper_bound_rank

Subject: [Boost-bugs] [Boost C++ Libraries] #12955: ambiguous member when calling upper_bound_rank
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2017-04-07 18:23:26


#12955: ambiguous member when calling upper_bound_rank
-------------------------------------------------+-------------------------
 Reporter: Rob Rose <rrose@…> | Owner: joaquin
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: multi_index
  Version: Boost 1.63.0 | Severity: Problem
 Keywords: multi_index, upper_bound_rank, |
  ambiguous |
-------------------------------------------------+-------------------------
 When using a boost::multi_index::multi_index_container with ranked
 indices, trying to call upper_bound_rank on any but the '''last''' ranked
 index listed in the indexed_by template parameter of the
 multi_index_container gives the following compiler error (in gcc 4.9, and
 MSVC 14 gives a similar error):
 {{{
 /usr/local/boost_1_63_0/boost/multi_index/detail/rnk_index_ops.hpp:216:22:
 error: request for member ‘size’ is ambiguous
    std::size_t s=top->size;
                       ^
 In file included from /home/aqsystem/repos/md/cpp/test_proj/main.cpp:2:0:
 /usr/local/boost_1_63_0/boost/multi_index/ranked_index.hpp:32:15: note:
 candidates are: std::size_t
 boost::multi_index::detail::ranked_node<boost::multi_index::detail::ordered_index_node_compressed_base<boost::multi_index::detail::rank_policy,
 std::allocator<char> > >::size
    std::size_t size;
                ^
 /usr/local/boost_1_63_0/boost/multi_index/ranked_index.hpp:32:15: note:
 std::size_t
 boost::multi_index::detail::ranked_node<boost::multi_index::detail::ordered_index_node_compressed_base<boost::multi_index::detail::rank_policy,
 std::allocator<char> > >::size
 make[3]: *** [test_proj/CMakeFiles/test_proj.dir/main.cpp.o] Error 1
 }}}
 Attached is code that exhibits this error- you can see that trying to call
 upper_bound_rank on the first or second index of the multi_index_container
 produces the compiler error given above, and that calling it on the third
 (and final ranked) index does not. Changing the fourth index to be
 ranked_unique or ranked_non_unique will cause the third index to also
 product the above compiler error.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/12955>
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-04-07 18:26:26 UTC