Opened 6 years ago
Last modified 6 years ago
#621 new defect
Lemon and Boost: call of overloaded ‘ignore_unused_variable_warning(...)’ is ambiguous
Reported by: | F.Meckel | Owned by: | Alpar Juttner |
---|---|---|---|
Priority: | major | Milestone: | LEMON 1.4 release |
Component: | core | Version: | hg main |
Keywords: | Cc: | ||
Revision id: |
Description
Hello dear team of LEMON.
The error is as far as i can tell not new. I have seen back in 2013 there has been an attempt to address that issue here at LEMON in issue #294. As well as on the side of boost in the issue 9438 https://svn.boost.org/trac10/ticket/9438#no1 and 514 https://github.com/boostorg/geometry/pull/514
But it happens still: Because there are ambigous declarations for ignore_unused_variable_warning(...)
in boost
and lemon
the RTree implementations of boost cannot be used with lemon nodes.
Since on the side of boost/geometry the issue has not been tackled further, I would like to ask you if there is a chance of replacement or unambiguously calling ignore_unused_variable_warning() in LEMON.
- OS: Ubuntu 18.04 Bionic Beaver
- clang: 6.0
- lemon: 1.3.1
- boost: happened under 1.63 and was reproduced with boost 1.68
#include <boost/geometry.hpp> #include <lemon/list_graph.h> namespace bg = boost::geometry; namespace bgi = boost::geometry::index; using Point = boost::geometry::model::point<double, 2, bg::cs::cartesian>; using Graph = lemon::ListDigraph; using Node = lemon::ListDigraph::Node; typedef std::pair<Point, Node> Pair; using BoostRTree = bgi::rtree<Pair, bgi::quadratic<16>>; using BoostQueryResult = std::vector<Pair>; int main() { Point one = Point(10, 51); Point two = Point(10, 51); BoostRTree rtreePair = BoostRTree(); Graph graph; Node dummy1 = graph.addNode(); Node dummy2 = graph.addNode(); rtreePair.insert(std::make_pair(one, dummy1)); return 0; }
Here is the first error instance of the compiler output. All output has ~200k characters... not sure you want to see it, since the error is raised in boost-code.
In file included from /usr/include/boost/range/concepts.hpp:19:0, from /usr/include/boost/range/size_type.hpp:20, from /usr/include/boost/range/size.hpp:21, from /usr/include/boost/range/functions.hpp:20, from /usr/include/boost/range/iterator_range_core.hpp:38, from /usr/include/boost/lexical_cast.hpp:30, from /usr/include/boost/math/tools/convert_from_string.hpp:15, from /usr/include/boost/math/constants/constants.hpp:13, from /usr/include/boost/geometry/util/math.hpp:28, from /usr/include/boost/geometry/core/radian_access.hpp:33, from /usr/include/boost/geometry/geometry.hpp:43, from /usr/include/boost/geometry.hpp:17, from test.cpp:1: /usr/include/boost/concept_check.hpp: In instantiation of ‘boost::DefaultConstructible<TT>::~DefaultConstructible() [with TT = std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>*]’: /usr/include/boost/iterator/iterator_concepts.hpp:143:3: required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost_concepts::ForwardTraversal<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>*>]’ /usr/include/boost/geometry/index/detail/varray.hpp:288:9: required from ‘boost::geometry::index::detail::varray<Value, Capacity>::varray(Iterator, Iterator) [with Iterator = std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>*; Value = std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>; long unsigned int Capacity = 17]’ /usr/include/boost/geometry/index/detail/rtree/quadratic/redistribute_elements.hpp:116:24: required from ‘static void boost::geometry::index::detail::rtree::redistribute_elements<Value, Options, Translator, Box, Allocators, boost::geometry::index::detail::rtree::quadratic_tag>::apply(Node&, Node&, Box&, Box&, const parameters_type&, const Translator&, Allocators&) [with Node = boost::geometry::index::detail::rtree::variant_leaf<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::allocators<std::allocator<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >, std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_variant_static_tag>, boost::geometry::index::detail::rtree::node_variant_static_tag>; Value = std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>; Options = boost::geometry::index::detail::rtree::options<boost::geometry::index::quadratic<16>, boost::geometry::index::detail::rtree::insert_default_tag, boost::geometry::index::detail::rtree::choose_by_content_diff_tag, boost::geometry::index::detail::rtree::split_default_tag, boost::geometry::index::detail::rtree::quadratic_tag, boost::geometry::index::detail::rtree::node_variant_static_tag>; Translator = boost::geometry::index::detail::translator<boost::geometry::index::indexable<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >, boost::geometry::index::equal_to<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> > >; Box = boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Allocators = boost::geometry::index::detail::rtree::allocators<std::allocator<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >, std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_variant_static_tag>; boost::geometry::index::detail::rtree::redistribute_elements<Value, Options, Translator, Box, Allocators, boost::geometry::index::detail::rtree::quadratic_tag>::parameters_type = boost::geometry::index::quadratic<16>]’ /usr/include/boost/geometry/index/detail/rtree/visitors/insert.hpp:164:17: required from ‘static void boost::geometry::index::detail::rtree::split<Value, Options, Translator, Box, Allocators, boost::geometry::index::detail::rtree::split_default_tag>::apply(boost::geometry::index::detail::rtree::split<Value, Options, Translator, Box, Allocators, boost::geometry::index::detail::rtree::split_default_tag>::nodes_container_type&, Node&, Box&, const parameters_type&, const Translator&, Allocators&) [with Node = boost::geometry::index::detail::rtree::variant_leaf<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::allocators<std::allocator<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >, std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_variant_static_tag>, boost::geometry::index::detail::rtree::node_variant_static_tag>; Value = std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>; Options = boost::geometry::index::detail::rtree::options<boost::geometry::index::quadratic<16>, boost::geometry::index::detail::rtree::insert_default_tag, boost::geometry::index::detail::rtree::choose_by_content_diff_tag, boost::geometry::index::detail::rtree::split_default_tag, boost::geometry::index::detail::rtree::quadratic_tag, boost::geometry::index::detail::rtree::node_variant_static_tag>; Translator = boost::geometry::index::detail::translator<boost::geometry::index::indexable<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >, boost::geometry::index::equal_to<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> > >; Box = boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Allocators = boost::geometry::index::detail::rtree::allocators<std::allocator<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >, std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_variant_static_tag>; boost::geometry::index::detail::rtree::split<Value, Options, Translator, Box, Allocators, boost::geometry::index::detail::rtree::split_default_tag>::nodes_container_type = boost::geometry::index::detail::varray<boost::geometry::index::detail::rtree::ptr_pair<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::variant<boost::geometry::index::detail::rtree::variant_leaf<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::allocators<std::allocator<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >, std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_variant_static_tag>, boost::geometry::index::detail::rtree::node_variant_static_tag>, boost::geometry::index::detail::rtree::variant_internal_node<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16, 4>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::allocators<std::allocator<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >, std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16, 4>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_variant_static_tag>, boost::geometry::index::detail::rtree::node_variant_static_tag> >*>, 1>; typename boost::geometry::index::detail::rtree::elements_type<typename boost::geometry::index::detail::rtree::internal_node<Value, typename Options::parameters_type, Box, Allocators, typename Options::node_tag>::type>::type::value_type = boost::geometry::index::detail::rtree::ptr_pair<boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::variant<boost::geometry::index::detail::rtree::variant_leaf<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::allocators<std::allocator<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >, std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_variant_static_tag>, boost::geometry::index::detail::rtree::node_variant_static_tag>, boost::geometry::index::detail::rtree::variant_internal_node<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16, 4>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::allocators<std::allocator<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >, std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16, 4>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_variant_static_tag>, boost::geometry::index::detail::rtree::node_variant_static_tag> >*>; boost::geometry::index::detail::rtree::split<Value, Options, Translator, Box, Allocators, boost::geometry::index::detail::rtree::split_default_tag>::parameters_type = boost::geometry::index::quadratic<16>]’ /usr/include/boost/geometry/index/detail/rtree/visitors/insert.hpp:357:26: required from ‘void boost::geometry::index::detail::rtree::visitors::detail::insert<Element, Value, Options, Translator, Box, Allocators>::split(Node&) const [with Node = boost::geometry::index::detail::rtree::variant_leaf<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::allocators<std::allocator<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >, std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_variant_static_tag>, boost::geometry::index::detail::rtree::node_variant_static_tag>; Element = std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>; Value = std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>; Options = boost::geometry::index::detail::rtree::options<boost::geometry::index::quadratic<16>, boost::geometry::index::detail::rtree::insert_default_tag, boost::geometry::index::detail::rtree::choose_by_content_diff_tag, boost::geometry::index::detail::rtree::split_default_tag, boost::geometry::index::detail::rtree::quadratic_tag, boost::geometry::index::detail::rtree::node_variant_static_tag>; Translator = boost::geometry::index::detail::translator<boost::geometry::index::indexable<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >, boost::geometry::index::equal_to<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> > >; Box = boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Allocators = boost::geometry::index::detail::rtree::allocators<std::allocator<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >, std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_variant_static_tag>]’ /usr/include/boost/geometry/index/detail/rtree/visitors/insert.hpp:326:18: [ skipping 8 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] /usr/include/boost/variant/variant.hpp:2431:52: required from ‘typename Visitor::result_type boost::variant<T0, TN>::apply_visitor(Visitor&) [with Visitor = boost::geometry::index::detail::rtree::visitors::insert<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::detail::rtree::options<boost::geometry::index::quadratic<16>, boost::geometry::index::detail::rtree::insert_default_tag, boost::geometry::index::detail::rtree::choose_by_content_diff_tag, boost::geometry::index::detail::rtree::split_default_tag, boost::geometry::index::detail::rtree::quadratic_tag, boost::geometry::index::detail::rtree::node_variant_static_tag>, boost::geometry::index::detail::translator<boost::geometry::index::indexable<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >, boost::geometry::index::equal_to<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> > >, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::allocators<std::allocator<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >, std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_variant_static_tag>, boost::geometry::index::detail::rtree::insert_default_tag>; T0_ = boost::geometry::index::detail::rtree::variant_leaf<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::allocators<std::allocator<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >, std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_variant_static_tag>, boost::geometry::index::detail::rtree::node_variant_static_tag>; TN = {boost::geometry::index::detail::rtree::variant_internal_node<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16, 4>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::allocators<std::allocator<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >, std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16, 4>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_variant_static_tag>, boost::geometry::index::detail::rtree::node_variant_static_tag>}; typename Visitor::result_type = void]’ /usr/include/boost/variant/detail/apply_visitor_unary.hpp:70:43: required from ‘typename Visitor::result_type boost::apply_visitor(Visitor&, Visitable&) [with Visitor = boost::geometry::index::detail::rtree::visitors::insert<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::detail::rtree::options<boost::geometry::index::quadratic<16>, boost::geometry::index::detail::rtree::insert_default_tag, boost::geometry::index::detail::rtree::choose_by_content_diff_tag, boost::geometry::index::detail::rtree::split_default_tag, boost::geometry::index::detail::rtree::quadratic_tag, boost::geometry::index::detail::rtree::node_variant_static_tag>, boost::geometry::index::detail::translator<boost::geometry::index::indexable<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >, boost::geometry::index::equal_to<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> > >, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::allocators<std::allocator<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >, std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_variant_static_tag>, boost::geometry::index::detail::rtree::insert_default_tag>; Visitable = boost::variant<boost::geometry::index::detail::rtree::variant_leaf<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::allocators<std::allocator<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >, std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_variant_static_tag>, boost::geometry::index::detail::rtree::node_variant_static_tag>, boost::geometry::index::detail::rtree::variant_internal_node<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16, 4>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::allocators<std::allocator<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >, std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16, 4>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_variant_static_tag>, boost::geometry::index::detail::rtree::node_variant_static_tag> >; typename Visitor::result_type = void]’ /usr/include/boost/geometry/index/detail/rtree/node/variant_visitor.hpp:51:25: required from ‘void boost::geometry::index::detail::rtree::apply_visitor(Visitor&, boost::variant<boost::geometry::index::detail::rtree::variant_leaf<Value, Parameters, Box, Allocators, Tag>, boost::geometry::index::detail::rtree::variant_internal_node<Value, Parameters, Box, Allocators, Tag> >&) [with Visitor = boost::geometry::index::detail::rtree::visitors::insert<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::detail::rtree::options<boost::geometry::index::quadratic<16>, boost::geometry::index::detail::rtree::insert_default_tag, boost::geometry::index::detail::rtree::choose_by_content_diff_tag, boost::geometry::index::detail::rtree::split_default_tag, boost::geometry::index::detail::rtree::quadratic_tag, boost::geometry::index::detail::rtree::node_variant_static_tag>, boost::geometry::index::detail::translator<boost::geometry::index::indexable<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >, boost::geometry::index::equal_to<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> > >, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::allocators<std::allocator<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >, std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_variant_static_tag>, boost::geometry::index::detail::rtree::insert_default_tag>; Value = std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>; Parameters = boost::geometry::index::quadratic<16>; Box = boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >; Allocators = boost::geometry::index::detail::rtree::allocators<std::allocator<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >, std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>, boost::geometry::index::quadratic<16>, boost::geometry::model::box<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_variant_static_tag>; Tag = boost::geometry::index::detail::rtree::node_variant_static_tag]’ /usr/include/boost/geometry/index/rtree.hpp:1454:37: required from ‘void boost::geometry::index::rtree<Value, Options, IndexableGetter, EqualTo, Allocator>::raw_insert(const value_type&) [with Value = std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>; Parameters = boost::geometry::index::quadratic<16>; IndexableGetter = boost::geometry::index::indexable<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >; EqualTo = boost::geometry::index::equal_to<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >; Allocator = std::allocator<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >; boost::geometry::index::rtree<Value, Options, IndexableGetter, EqualTo, Allocator>::value_type = std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>]’ /usr/include/boost/geometry/index/rtree.hpp:582:15: required from ‘void boost::geometry::index::rtree<Value, Options, IndexableGetter, EqualTo, Allocator>::insert(const value_type&) [with Value = std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>; Parameters = boost::geometry::index::quadratic<16>; IndexableGetter = boost::geometry::index::indexable<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >; EqualTo = boost::geometry::index::equal_to<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >; Allocator = std::allocator<std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node> >; boost::geometry::index::rtree<Value, Options, IndexableGetter, EqualTo, Allocator>::value_type = std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>]’ test.cpp:23:49: required from here /usr/include/boost/concept_check.hpp:139:37: error: call of overloaded ‘ignore_unused_variable_warning(std::pair<boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian>, lemon::ListDigraphBase::Node>*&)’ is ambiguous ignore_unused_variable_warning(a);
Change History (2)
comment:1 follow-up: 2 Changed 6 years ago by
comment:2 Changed 6 years ago by
Replying to Alpar Juttner:
I do not quite understand. They are in different namespaces, aren't they?
Yes they are. I'm not entirely sure about the reason either.
But it seems that boost imports the namespace of the RTree member classes.
In the boost code ignore_unused_variable_warning
is called from a local template.
If you change the call by hand in all concerning boost-files to boost::ignore_unused_variable_warning(...)
or alike, it compiles.
Could you reproduce the error with the codesnippet?
I do not quite understand. They are in different namespaces, aren't they?