COIN-OR::LEMON - Graph Library

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 Changed 6 years ago by Alpar Juttner

I do not quite understand. They are in different namespaces, aren't they?

comment:2 in reply to:  1 Changed 6 years ago by F.Meckel

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?

Note: See TracTickets for help on using tickets.