#12566 closed Bugs (fixed)
rtree: equal_to ambiguous template instantiation when contain a raw pointer in pair, calling method remove
| Reported by: | Owned by: | Barend Gehrels | |
|---|---|---|---|
| Milestone: | Boost 1.64.0 | Component: | geometry |
| Version: | Boost 1.61.0 | Severity: | Regression |
| Keywords: | index rtree equal_to | Cc: |
Description
Im trying to compile this example:
main.cpp:
#include <boost/geometry.hpp>
namespace bg = boost::geometry;
namespace bgi = boost::geometry::index;
namespace bgm = boost::geometry::model;
int main() {
using Point = bgm::point<double, 2, bg::cs::spherical_equatorial<bg::degree>>;
using ValueType = std::pair<Point, int*>;
using Rtree = bgi::rtree<ValueType, bgi::quadratic<16>>;
int a,b;
Rtree rtree;
rtree.insert(std::make_pair(Point(45,45), &a));
rtree.insert(std::make_pair(Point(45,45), &b));
rtree.remove(std::make_pair(Point(45,45), &b));
return 0;
}
using gcc 6.2.1 and boost 1.61.0 or 1.58.0 (no problem with boost 1.52.0)
I got folowing error:
/usr/include/boost/geometry/index/equal_to.hpp:127:41: erreur : ambiguous template instantiation for ‘struct boost::geometry::index::detail::equals<int*, void>’
&& detail::equals<T2>::apply(l.second, r.second);
~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
/usr/include/boost/geometry/index/equal_to.hpp:28:8: note : candidats sont : template<class Geometry, class Tag> struct boost::geometry::index::detail::equals<Geometry*, Tag> [with Geometry = int; Tag = void]
struct equals<Geometry *, Tag>
^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/geometry/index/equal_to.hpp:37:8: note : template<class T> struct boost::geometry::index::detail::equals<T, void> [with T = int*]
struct equals<T, void>
^~~~~~~~~~~~~~~
/usr/include/boost/geometry/index/equal_to.hpp:127:41: erreur : incomplete type ‘boost::geometry::index::detail::equals<int*, void>’ used in nested name specifier
&& detail::equals<T2>::apply(l.second, r.second);
~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
no problem if I replace int* by int
also document here http://stackoverflow.com/questions/39970131/issue-storing-raw-pointers-in-boost-r-tree
Attachments (1)
Change History (3)
by , 6 years ago
comment:1 by , 6 years ago
| Keywords: | index rtree equal_to added |
|---|---|
| Resolution: | → fixed |
| Status: | new → closed |
comment:2 by , 6 years ago
| Milestone: | To Be Determined → Boost 1.64.0 |
|---|
Note:
See TracTickets
for help on using tickets.

Error example