I've tried compiling your example code on Boost (version 1.48) and get the following compiler errors (sorry for the wall of text). Regarding your initial question, the objects we index in the R-Tree are pointers (of an abstract base class).
In file included from /usr/local/include/boost/geometry/geometries/concepts/check.hpp:33:0,
from /usr/local/include/boost/geometry/algorithms/append.hpp:24,
from /usr/local/include/boost/geometry/algorithms/detail/assign_values.hpp:29,
from /usr/local/include/boost/geometry/strategies/cartesian/cart_intersect.hpp:21,
from /usr/local/include/boost/geometry/strategies/intersection.hpp:22,
from /usr/local/include/boost/geometry/strategies/strategies.hpp:25,
from /usr/local/include/boost/geometry/geometry.hpp:35,
from /usr/local/include/boost/geometry/index/rtree.hpp:20,
from foo.cc:1:
/usr/local/include/boost/geometry/algorithms/not_implemented.hpp: In instantiation of ‘boost::geometry::nyi::not_implemented_error<void, void, void>’:
/usr/local/include/boost/geometry/algorithms/not_implemented.hpp:103:8: instantiated from ‘boost::geometry::not_implemented<void, void, void>’
/usr/local/include/boost/geometry/geometries/concepts/check.hpp:66:8: instantiated from ‘boost::geometry::dispatch::check<const MyFrustum, void, true>’
/usr/local/include/boost/geometry/geometries/concepts/check.hpp:157:8: instantiated from ‘boost::geometry::concept::detail::checker<const MyFrustum>’
/usr/local/include/boost/geometry/geometries/concepts/check.hpp:180:31: instantiated from ‘void boost::geometry::concept::check() [with Geometry = const MyFrustum]’
/usr/local/include/boost/geometry/algorithms/intersects.hpp:97:5: instantiated from ‘bool boost::geometry::intersects(const Geometry1&, const Geometry2&) [with Geometry1 = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Geometry2 = MyFrustum]’
/usr/local/include/boost/geometry/index/detail/predicates.hpp:185:43: instantiated from ‘static bool boost::geometry::index::detail::spatial_predicate_call<boost::geometry::index::detail::intersects_tag>::apply(const G1&, const G2&) [with G1 = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, G2 = MyFrustum]’
/usr/local/include/boost/geometry/index/detail/predicates.hpp:306:75: instantiated from ‘static bool boost::geometry::index::detail::predicate_check<boost::geometry::index::detail::spatial_predicate<Geometry, Tag, false>, boost::geometry::index::detail::bounds_tag>::apply(const Pred&, const Value&, const Indexable&) [with Value = int, Indexable = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Geometry = MyFrustum, Tag = boost::geometry::index::detail::intersects_tag, boost::geometry::index::detail::predicate_check<boost::geometry::index::detail::spatial_predicate<Geometry, Tag, false>, boost::geometry::index::detail::bounds_tag>::Pred = boost::geometry::index::detail::spatial_predicate<MyFrustum, boost::geometry::index::detail::intersects_tag, false>]’
/usr/local/include/boost/geometry/index/detail/predicates.hpp:617:62: instantiated from ‘static bool boost::geometry::index::detail::predicates_check_impl<Predicate, Tag, First, Last>::apply(const Predicate&, const Value&, const Indexable&) [with Value = int, Indexable = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Predicate = boost::geometry::index::detail::spatial_predicate<MyFrustum, boost::geometry::index::detail::intersects_tag, false>, Tag = boost::geometry::index::detail::bounds_tag, unsigned int First = 0u, unsigned int Last = 1u]’
/usr/local/include/boost/geometry/index/detail/predicates.hpp:685:24: instantiated from ‘bool boost::geometry::index::detail::predicates_check(const Predicates&, const Value&, const Indexable&) [with Tag = boost::geometry::index::detail::bounds_tag, unsigned int First = 0u, unsigned int Last = 1u, Predicates = boost::geometry::index::detail::spatial_predicate<MyFrustum, boost::geometry::index::detail::intersects_tag, false>, Value = int, Indexable = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >]’
/usr/local/include/boost/geometry/index/detail/rtree/visitors/spatial_query.hpp:45:13: instantiated from ‘void boost::geometry::index::detail::rtree::visitors::spatial_query<Value, Options, Translator, Box, Allocators, Predicates, OutIter>::operator()(const internal_node&) [with Value = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Options = boost::geometry::index::detail::rtree::options<boost::geometry::index::rstar<8ul>, boost::geometry::index::detail::rtree::insert_reinsert_tag, boost::geometry::index::detail::rtree::choose_by_overlap_diff_tag, boost::geometry::index::detail::rtree::split_default_tag, boost::geometry::index::detail::rtree::rstar_tag, boost::geometry::index::detail::rtree::node_d_mem_static_tag>, Translator = boost::geometry::index::detail::translator<boost::geometry::index::indexable<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > >, boost::geometry::index::equal_to<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > > >, Box = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Allocators = boost::geometry::index::detail::rtree::allocators<std::allocator<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > >, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::rstar<8ul>, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_d_mem_static_tag>, Predicates = boost::geometry::index::detail::spatial_predicate<MyFrustum, boost::geometry::index::detail::intersects_tag, false>, OutIter = std::back_insert_iterator<std::vector<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > > >, boost::geometry::index::detail::rtree::visitors::spatial_query<Value, Options, Translator, Box, Allocators, Predicates, OutIter>::internal_node = boost::geometry::index::detail::rtree::dynamic_internal_node<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::rstar<8ul>, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::allocators<std::allocator<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > >, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::rstar<8ul>, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_d_mem_static_tag>, boost::geometry::index::detail::rtree::node_d_mem_static_tag>]’
foo.cc:46:1: instantiated from here
/usr/local/include/boost/geometry/algorithms/not_implemented.hpp:64:5: error: no matching function for call to ‘assertion_failed(mpl_::failed************ (boost::geometry::nyi::not_implemented_error<void, void, void>::THIS_OPERATION_IS_NOT_OR_NOT_YET_IMPLEMENTED::************)(mpl_::assert_::types<void, void, void, mpl_::na>))’
/usr/local/include/boost/geometry/algorithms/not_implemented.hpp:64:5: note: candidate is:
/usr/local/include/boost/mpl/assert.hpp:82:5: note: template<bool C> int mpl_::assertion_failed(typename mpl_::assert<C>::type)
In file included from /usr/local/include/boost/geometry/core/reverse_dispatch.hpp:25:0,
from /usr/local/include/boost/geometry/algorithms/distance.hpp:25,
from /usr/local/include/boost/geometry/strategies/cartesian/centroid_weighted_length.hpp:16,
from /usr/local/include/boost/geometry/strategies/strategies.hpp:33,
from /usr/local/include/boost/geometry/geometry.hpp:35,
from /usr/local/include/boost/geometry/index/rtree.hpp:20,
from foo.cc:1:
/usr/local/include/boost/geometry/core/geometry_id.hpp: In instantiation of ‘boost::geometry::core_dispatch::geometry_id<void>’:
/usr/local/include/boost/geometry/core/geometry_id.hpp:87:8: instantiated from ‘boost::geometry::geometry_id<MyFrustum>’
/usr/local/include/boost/geometry/core/reverse_dispatch.hpp:57:8: instantiated from ‘boost::geometry::reverse_dispatch<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, MyFrustum>’
/usr/local/include/boost/geometry/algorithms/disjoint.hpp:344:80: instantiated from ‘bool boost::geometry::disjoint(const Geometry1&, const Geometry2&) [with Geometry1 = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Geometry2 = MyFrustum]’
/usr/local/include/boost/geometry/algorithms/intersects.hpp:99:53: instantiated from ‘bool boost::geometry::intersects(const Geometry1&, const Geometry2&) [with Geometry1 = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Geometry2 = MyFrustum]’
/usr/local/include/boost/geometry/index/detail/predicates.hpp:185:43: instantiated from ‘static bool boost::geometry::index::detail::spatial_predicate_call<boost::geometry::index::detail::intersects_tag>::apply(const G1&, const G2&) [with G1 = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, G2 = MyFrustum]’
/usr/local/include/boost/geometry/index/detail/predicates.hpp:306:75: instantiated from ‘static bool boost::geometry::index::detail::predicate_check<boost::geometry::index::detail::spatial_predicate<Geometry, Tag, false>, boost::geometry::index::detail::bounds_tag>::apply(const Pred&, const Value&, const Indexable&) [with Value = int, Indexable = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Geometry = MyFrustum, Tag = boost::geometry::index::detail::intersects_tag, boost::geometry::index::detail::predicate_check<boost::geometry::index::detail::spatial_predicate<Geometry, Tag, false>, boost::geometry::index::detail::bounds_tag>::Pred = boost::geometry::index::detail::spatial_predicate<MyFrustum, boost::geometry::index::detail::intersects_tag, false>]’
/usr/local/include/boost/geometry/index/detail/predicates.hpp:617:62: instantiated from ‘static bool boost::geometry::index::detail::predicates_check_impl<Predicate, Tag, First, Last>::apply(const Predicate&, const Value&, const Indexable&) [with Value = int, Indexable = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Predicate = boost::geometry::index::detail::spatial_predicate<MyFrustum, boost::geometry::index::detail::intersects_tag, false>, Tag = boost::geometry::index::detail::bounds_tag, unsigned int First = 0u, unsigned int Last = 1u]’
/usr/local/include/boost/geometry/index/detail/predicates.hpp:685:24: instantiated from ‘bool boost::geometry::index::detail::predicates_check(const Predicates&, const Value&, const Indexable&) [with Tag = boost::geometry::index::detail::bounds_tag, unsigned int First = 0u, unsigned int Last = 1u, Predicates = boost::geometry::index::detail::spatial_predicate<MyFrustum, boost::geometry::index::detail::intersects_tag, false>, Value = int, Indexable = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >]’
/usr/local/include/boost/geometry/index/detail/rtree/visitors/spatial_query.hpp:45:13: instantiated from ‘void boost::geometry::index::detail::rtree::visitors::spatial_query<Value, Options, Translator, Box, Allocators, Predicates, OutIter>::operator()(const internal_node&) [with Value = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Options = boost::geometry::index::detail::rtree::options<boost::geometry::index::rstar<8ul>, boost::geometry::index::detail::rtree::insert_reinsert_tag, boost::geometry::index::detail::rtree::choose_by_overlap_diff_tag, boost::geometry::index::detail::rtree::split_default_tag, boost::geometry::index::detail::rtree::rstar_tag, boost::geometry::index::detail::rtree::node_d_mem_static_tag>, Translator = boost::geometry::index::detail::translator<boost::geometry::index::indexable<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > >, boost::geometry::index::equal_to<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > > >, Box = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Allocators = boost::geometry::index::detail::rtree::allocators<std::allocator<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > >, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::rstar<8ul>, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_d_mem_static_tag>, Predicates = boost::geometry::index::detail::spatial_predicate<MyFrustum, boost::geometry::index::detail::intersects_tag, false>, OutIter = std::back_insert_iterator<std::vector<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > > >, boost::geometry::index::detail::rtree::visitors::spatial_query<Value, Options, Translator, Box, Allocators, Predicates, OutIter>::internal_node = boost::geometry::index::detail::rtree::dynamic_internal_node<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::rstar<8ul>, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::allocators<std::allocator<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > >, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::rstar<8ul>, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_d_mem_static_tag>, boost::geometry::index::detail::rtree::node_d_mem_static_tag>]’
foo.cc:46:1: instantiated from here
/usr/local/include/boost/geometry/core/geometry_id.hpp:39:5: error: no matching function for call to ‘assertion_failed(mpl_::failed************ (boost::geometry::core_dispatch::geometry_id<void>::NOT_IMPLEMENTED_FOR_THIS_GEOMETRY_TYPE::************)(mpl_::assert_::types<void, mpl_::na, mpl_::na, mpl_::na>))’
/usr/local/include/boost/geometry/core/geometry_id.hpp:39:5: note: candidate is:
/usr/local/include/boost/mpl/assert.hpp:82:5: note: template<bool C> int mpl_::assertion_failed(typename mpl_::assert<C>::type)
In file included from /usr/local/include/boost/geometry/algorithms/distance.hpp:25:0,
from /usr/local/include/boost/geometry/strategies/cartesian/centroid_weighted_length.hpp:16,
from /usr/local/include/boost/geometry/strategies/strategies.hpp:33,
from /usr/local/include/boost/geometry/geometry.hpp:35,
from /usr/local/include/boost/geometry/index/rtree.hpp:20,
from foo.cc:1:
/usr/local/include/boost/geometry/core/reverse_dispatch.hpp: In instantiation of ‘boost::geometry::reverse_dispatch<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, MyFrustum>’:
/usr/local/include/boost/geometry/algorithms/disjoint.hpp:344:80: instantiated from ‘bool boost::geometry::disjoint(const Geometry1&, const Geometry2&) [with Geometry1 = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Geometry2 = MyFrustum]’
/usr/local/include/boost/geometry/algorithms/intersects.hpp:99:53: instantiated from ‘bool boost::geometry::intersects(const Geometry1&, const Geometry2&) [with Geometry1 = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Geometry2 = MyFrustum]’
/usr/local/include/boost/geometry/index/detail/predicates.hpp:185:43: instantiated from ‘static bool boost::geometry::index::detail::spatial_predicate_call<boost::geometry::index::detail::intersects_tag>::apply(const G1&, const G2&) [with G1 = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, G2 = MyFrustum]’
/usr/local/include/boost/geometry/index/detail/predicates.hpp:306:75: instantiated from ‘static bool boost::geometry::index::detail::predicate_check<boost::geometry::index::detail::spatial_predicate<Geometry, Tag, false>, boost::geometry::index::detail::bounds_tag>::apply(const Pred&, const Value&, const Indexable&) [with Value = int, Indexable = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Geometry = MyFrustum, Tag = boost::geometry::index::detail::intersects_tag, boost::geometry::index::detail::predicate_check<boost::geometry::index::detail::spatial_predicate<Geometry, Tag, false>, boost::geometry::index::detail::bounds_tag>::Pred = boost::geometry::index::detail::spatial_predicate<MyFrustum, boost::geometry::index::detail::intersects_tag, false>]’
/usr/local/include/boost/geometry/index/detail/predicates.hpp:617:62: instantiated from ‘static bool boost::geometry::index::detail::predicates_check_impl<Predicate, Tag, First, Last>::apply(const Predicate&, const Value&, const Indexable&) [with Value = int, Indexable = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Predicate = boost::geometry::index::detail::spatial_predicate<MyFrustum, boost::geometry::index::detail::intersects_tag, false>, Tag = boost::geometry::index::detail::bounds_tag, unsigned int First = 0u, unsigned int Last = 1u]’
/usr/local/include/boost/geometry/index/detail/predicates.hpp:685:24: instantiated from ‘bool boost::geometry::index::detail::predicates_check(const Predicates&, const Value&, const Indexable&) [with Tag = boost::geometry::index::detail::bounds_tag, unsigned int First = 0u, unsigned int Last = 1u, Predicates = boost::geometry::index::detail::spatial_predicate<MyFrustum, boost::geometry::index::detail::intersects_tag, false>, Value = int, Indexable = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >]’
/usr/local/include/boost/geometry/index/detail/rtree/visitors/spatial_query.hpp:45:13: instantiated from ‘void boost::geometry::index::detail::rtree::visitors::spatial_query<Value, Options, Translator, Box, Allocators, Predicates, OutIter>::operator()(const internal_node&) [with Value = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Options = boost::geometry::index::detail::rtree::options<boost::geometry::index::rstar<8ul>, boost::geometry::index::detail::rtree::insert_reinsert_tag, boost::geometry::index::detail::rtree::choose_by_overlap_diff_tag, boost::geometry::index::detail::rtree::split_default_tag, boost::geometry::index::detail::rtree::rstar_tag, boost::geometry::index::detail::rtree::node_d_mem_static_tag>, Translator = boost::geometry::index::detail::translator<boost::geometry::index::indexable<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > >, boost::geometry::index::equal_to<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > > >, Box = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Allocators = boost::geometry::index::detail::rtree::allocators<std::allocator<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > >, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::rstar<8ul>, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_d_mem_static_tag>, Predicates = boost::geometry::index::detail::spatial_predicate<MyFrustum, boost::geometry::index::detail::intersects_tag, false>, OutIter = std::back_insert_iterator<std::vector<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > > >, boost::geometry::index::detail::rtree::visitors::spatial_query<Value, Options, Translator, Box, Allocators, Predicates, OutIter>::internal_node = boost::geometry::index::detail::rtree::dynamic_internal_node<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::rstar<8ul>, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::allocators<std::allocator<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > >, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::rstar<8ul>, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_d_mem_static_tag>, boost::geometry::index::detail::rtree::node_d_mem_static_tag>]’
foo.cc:46:1: instantiated from here
/usr/local/include/boost/geometry/core/reverse_dispatch.hpp:57:8: error: no type named ‘type’ in ‘struct boost::geometry::geometry_id<MyFrustum>’
In file included from /usr/local/include/boost/geometry/algorithms/num_points.hpp:26:0,
from /usr/local/include/boost/geometry/algorithms/detail/throw_on_empty_input.hpp:15,
from /usr/local/include/boost/geometry/algorithms/distance.hpp:29,
from /usr/local/include/boost/geometry/strategies/cartesian/centroid_weighted_length.hpp:16,
from /usr/local/include/boost/geometry/strategies/strategies.hpp:33,
from /usr/local/include/boost/geometry/geometry.hpp:35,
from /usr/local/include/boost/geometry/index/rtree.hpp:20,
from foo.cc:1:
/usr/local/include/boost/geometry/algorithms/disjoint.hpp: In function ‘bool boost::geometry::disjoint(const Geometry1&, const Geometry2&) [with Geometry1 = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Geometry2 = MyFrustum]’:
/usr/local/include/boost/geometry/algorithms/intersects.hpp:99:53: instantiated from ‘bool boost::geometry::intersects(const Geometry1&, const Geometry2&) [with Geometry1 = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Geometry2 = MyFrustum]’
/usr/local/include/boost/geometry/index/detail/predicates.hpp:185:43: instantiated from ‘static bool boost::geometry::index::detail::spatial_predicate_call<boost::geometry::index::detail::intersects_tag>::apply(const G1&, const G2&) [with G1 = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, G2 = MyFrustum]’
/usr/local/include/boost/geometry/index/detail/predicates.hpp:306:75: instantiated from ‘static bool boost::geometry::index::detail::predicate_check<boost::geometry::index::detail::spatial_predicate<Geometry, Tag, false>, boost::geometry::index::detail::bounds_tag>::apply(const Pred&, const Value&, const Indexable&) [with Value = int, Indexable = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Geometry = MyFrustum, Tag = boost::geometry::index::detail::intersects_tag, boost::geometry::index::detail::predicate_check<boost::geometry::index::detail::spatial_predicate<Geometry, Tag, false>, boost::geometry::index::detail::bounds_tag>::Pred = boost::geometry::index::detail::spatial_predicate<MyFrustum, boost::geometry::index::detail::intersects_tag, false>]’
/usr/local/include/boost/geometry/index/detail/predicates.hpp:617:62: instantiated from ‘static bool boost::geometry::index::detail::predicates_check_impl<Predicate, Tag, First, Last>::apply(const Predicate&, const Value&, const Indexable&) [with Value = int, Indexable = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Predicate = boost::geometry::index::detail::spatial_predicate<MyFrustum, boost::geometry::index::detail::intersects_tag, false>, Tag = boost::geometry::index::detail::bounds_tag, unsigned int First = 0u, unsigned int Last = 1u]’
/usr/local/include/boost/geometry/index/detail/predicates.hpp:685:24: instantiated from ‘bool boost::geometry::index::detail::predicates_check(const Predicates&, const Value&, const Indexable&) [with Tag = boost::geometry::index::detail::bounds_tag, unsigned int First = 0u, unsigned int Last = 1u, Predicates = boost::geometry::index::detail::spatial_predicate<MyFrustum, boost::geometry::index::detail::intersects_tag, false>, Value = int, Indexable = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >]’
/usr/local/include/boost/geometry/index/detail/rtree/visitors/spatial_query.hpp:45:13: instantiated from ‘void boost::geometry::index::detail::rtree::visitors::spatial_query<Value, Options, Translator, Box, Allocators, Predicates, OutIter>::operator()(const internal_node&) [with Value = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Options = boost::geometry::index::detail::rtree::options<boost::geometry::index::rstar<8ul>, boost::geometry::index::detail::rtree::insert_reinsert_tag, boost::geometry::index::detail::rtree::choose_by_overlap_diff_tag, boost::geometry::index::detail::rtree::split_default_tag, boost::geometry::index::detail::rtree::rstar_tag, boost::geometry::index::detail::rtree::node_d_mem_static_tag>, Translator = boost::geometry::index::detail::translator<boost::geometry::index::indexable<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > >, boost::geometry::index::equal_to<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > > >, Box = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Allocators = boost::geometry::index::detail::rtree::allocators<std::allocator<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > >, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::rstar<8ul>, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_d_mem_static_tag>, Predicates = boost::geometry::index::detail::spatial_predicate<MyFrustum, boost::geometry::index::detail::intersects_tag, false>, OutIter = std::back_insert_iterator<std::vector<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > > >, boost::geometry::index::detail::rtree::visitors::spatial_query<Value, Options, Translator, Box, Allocators, Predicates, OutIter>::internal_node = boost::geometry::index::detail::rtree::dynamic_internal_node<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::rstar<8ul>, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::allocators<std::allocator<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > >, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::rstar<8ul>, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_d_mem_static_tag>, boost::geometry::index::detail::rtree::node_d_mem_static_tag>]’
foo.cc:46:1: instantiated from here
/usr/local/include/boost/geometry/algorithms/disjoint.hpp:344:80: error: no type named ‘type’ in ‘struct boost::geometry::reverse_dispatch<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, MyFrustum>’
In file included from /usr/local/include/boost/geometry/core/coordinate_system.hpp:20:0,
from /usr/local/include/boost/geometry/core/cs.hpp:21,
from /usr/local/include/boost/geometry/geometry.hpp:19,
from /usr/local/include/boost/geometry/index/rtree.hpp:20,
from foo.cc:1:
/usr/local/include/boost/geometry/core/point_type.hpp: At global scope:
/usr/local/include/boost/geometry/core/point_type.hpp: In instantiation of ‘boost::geometry::traits::point_type<MyFrustum>’:
/usr/local/include/boost/geometry/core/point_type.hpp:66:17: instantiated from ‘boost::geometry::core_dispatch::point_type<void, MyFrustum>’
/usr/local/include/boost/geometry/core/coordinate_dimension.hpp:58:8: instantiated from ‘boost::geometry::core_dispatch::dimension<void, MyFrustum>’
/usr/local/include/boost/geometry/core/coordinate_dimension.hpp:74:8: instantiated from ‘boost::geometry::dimension<const MyFrustum>’
/usr/local/include/boost/geometry/core/coordinate_dimension.hpp:121:1: instantiated from ‘void boost::geometry::assert_dimension_equal() [with G1 = const boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, G2 = const MyFrustum]’
/usr/local/include/boost/geometry/geometries/concepts/check.hpp:195:5: instantiated from ‘void boost::geometry::concept::check_concepts_and_equal_dimensions() [with Geometry1 = const boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Geometry2 = const MyFrustum]’
/usr/local/include/boost/geometry/algorithms/disjoint.hpp:338:5: [ skipping 2 instantiation contexts ]
/usr/local/include/boost/geometry/index/detail/predicates.hpp:185:43: instantiated from ‘static bool boost::geometry::index::detail::spatial_predicate_call<boost::geometry::index::detail::intersects_tag>::apply(const G1&, const G2&) [with G1 = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, G2 = MyFrustum]’
/usr/local/include/boost/geometry/index/detail/predicates.hpp:306:75: instantiated from ‘static bool boost::geometry::index::detail::predicate_check<boost::geometry::index::detail::spatial_predicate<Geometry, Tag, false>, boost::geometry::index::detail::bounds_tag>::apply(const Pred&, const Value&, const Indexable&) [with Value = int, Indexable = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Geometry = MyFrustum, Tag = boost::geometry::index::detail::intersects_tag, boost::geometry::index::detail::predicate_check<boost::geometry::index::detail::spatial_predicate<Geometry, Tag, false>, boost::geometry::index::detail::bounds_tag>::Pred = boost::geometry::index::detail::spatial_predicate<MyFrustum, boost::geometry::index::detail::intersects_tag, false>]’
/usr/local/include/boost/geometry/index/detail/predicates.hpp:617:62: instantiated from ‘static bool boost::geometry::index::detail::predicates_check_impl<Predicate, Tag, First, Last>::apply(const Predicate&, const Value&, const Indexable&) [with Value = int, Indexable = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Predicate = boost::geometry::index::detail::spatial_predicate<MyFrustum, boost::geometry::index::detail::intersects_tag, false>, Tag = boost::geometry::index::detail::bounds_tag, unsigned int First = 0u, unsigned int Last = 1u]’
/usr/local/include/boost/geometry/index/detail/predicates.hpp:685:24: instantiated from ‘bool boost::geometry::index::detail::predicates_check(const Predicates&, const Value&, const Indexable&) [with Tag = boost::geometry::index::detail::bounds_tag, unsigned int First = 0u, unsigned int Last = 1u, Predicates = boost::geometry::index::detail::spatial_predicate<MyFrustum, boost::geometry::index::detail::intersects_tag, false>, Value = int, Indexable = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >]’
/usr/local/include/boost/geometry/index/detail/rtree/visitors/spatial_query.hpp:45:13: instantiated from ‘void boost::geometry::index::detail::rtree::visitors::spatial_query<Value, Options, Translator, Box, Allocators, Predicates, OutIter>::operator()(const internal_node&) [with Value = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Options = boost::geometry::index::detail::rtree::options<boost::geometry::index::rstar<8ul>, boost::geometry::index::detail::rtree::insert_reinsert_tag, boost::geometry::index::detail::rtree::choose_by_overlap_diff_tag, boost::geometry::index::detail::rtree::split_default_tag, boost::geometry::index::detail::rtree::rstar_tag, boost::geometry::index::detail::rtree::node_d_mem_static_tag>, Translator = boost::geometry::index::detail::translator<boost::geometry::index::indexable<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > >, boost::geometry::index::equal_to<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > > >, Box = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Allocators = boost::geometry::index::detail::rtree::allocators<std::allocator<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > >, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::rstar<8ul>, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_d_mem_static_tag>, Predicates = boost::geometry::index::detail::spatial_predicate<MyFrustum, boost::geometry::index::detail::intersects_tag, false>, OutIter = std::back_insert_iterator<std::vector<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > > >, boost::geometry::index::detail::rtree::visitors::spatial_query<Value, Options, Translator, Box, Allocators, Predicates, OutIter>::internal_node = boost::geometry::index::detail::rtree::dynamic_internal_node<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::rstar<8ul>, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::allocators<std::allocator<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > >, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::rstar<8ul>, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_d_mem_static_tag>, boost::geometry::index::detail::rtree::node_d_mem_static_tag>]’
foo.cc:46:1: instantiated from here
/usr/local/include/boost/geometry/core/point_type.hpp:45:5: error: no matching function for call to ‘assertion_failed(mpl_::failed************ (boost::geometry::traits::point_type<MyFrustum>::NOT_IMPLEMENTED_FOR_THIS_POINT_TYPE::************)(mpl_::assert_::types<MyFrustum, mpl_::na, mpl_::na, mpl_::na>))’
/usr/local/include/boost/geometry/core/point_type.hpp:45:5: note: candidate is:
/usr/local/include/boost/mpl/assert.hpp:82:5: note: template<bool C> int mpl_::assertion_failed(typename mpl_::assert<C>::type)
/usr/local/include/boost/geometry/core/point_type.hpp: In instantiation of ‘boost::geometry::core_dispatch::point_type<void, MyFrustum>’:
/usr/local/include/boost/geometry/core/coordinate_dimension.hpp:58:8: instantiated from ‘boost::geometry::core_dispatch::dimension<void, MyFrustum>’
/usr/local/include/boost/geometry/core/coordinate_dimension.hpp:74:8: instantiated from ‘boost::geometry::dimension<const MyFrustum>’
/usr/local/include/boost/geometry/core/coordinate_dimension.hpp:121:1: instantiated from ‘void boost::geometry::assert_dimension_equal() [with G1 = const boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, G2 = const MyFrustum]’
/usr/local/include/boost/geometry/geometries/concepts/check.hpp:195:5: instantiated from ‘void boost::geometry::concept::check_concepts_and_equal_dimensions() [with Geometry1 = const boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Geometry2 = const MyFrustum]’
/usr/local/include/boost/geometry/algorithms/disjoint.hpp:338:5: instantiated from ‘bool boost::geometry::disjoint(const Geometry1&, const Geometry2&) [with Geometry1 = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Geometry2 = MyFrustum]’
/usr/local/include/boost/geometry/algorithms/intersects.hpp:99:53: instantiated from ‘bool boost::geometry::intersects(const Geometry1&, const Geometry2&) [with Geometry1 = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Geometry2 = MyFrustum]’
/usr/local/include/boost/geometry/index/detail/predicates.hpp:185:43: instantiated from ‘static bool boost::geometry::index::detail::spatial_predicate_call<boost::geometry::index::detail::intersects_tag>::apply(const G1&, const G2&) [with G1 = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, G2 = MyFrustum]’
/usr/local/include/boost/geometry/index/detail/predicates.hpp:306:75: instantiated from ‘static bool boost::geometry::index::detail::predicate_check<boost::geometry::index::detail::spatial_predicate<Geometry, Tag, false>, boost::geometry::index::detail::bounds_tag>::apply(const Pred&, const Value&, const Indexable&) [with Value = int, Indexable = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Geometry = MyFrustum, Tag = boost::geometry::index::detail::intersects_tag, boost::geometry::index::detail::predicate_check<boost::geometry::index::detail::spatial_predicate<Geometry, Tag, false>, boost::geometry::index::detail::bounds_tag>::Pred = boost::geometry::index::detail::spatial_predicate<MyFrustum, boost::geometry::index::detail::intersects_tag, false>]’
/usr/local/include/boost/geometry/index/detail/predicates.hpp:617:62: instantiated from ‘static bool boost::geometry::index::detail::predicates_check_impl<Predicate, Tag, First, Last>::apply(const Predicate&, const Value&, const Indexable&) [with Value = int, Indexable = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Predicate = boost::geometry::index::detail::spatial_predicate<MyFrustum, boost::geometry::index::detail::intersects_tag, false>, Tag = boost::geometry::index::detail::bounds_tag, unsigned int First = 0u, unsigned int Last = 1u]’
/usr/local/include/boost/geometry/index/detail/predicates.hpp:685:24: instantiated from ‘bool boost::geometry::index::detail::predicates_check(const Predicates&, const Value&, const Indexable&) [with Tag = boost::geometry::index::detail::bounds_tag, unsigned int First = 0u, unsigned int Last = 1u, Predicates = boost::geometry::index::detail::spatial_predicate<MyFrustum, boost::geometry::index::detail::intersects_tag, false>, Value = int, Indexable = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >]’
/usr/local/include/boost/geometry/index/detail/rtree/visitors/spatial_query.hpp:45:13: instantiated from ‘void boost::geometry::index::detail::rtree::visitors::spatial_query<Value, Options, Translator, Box, Allocators, Predicates, OutIter>::operator()(const internal_node&) [with Value = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Options = boost::geometry::index::detail::rtree::options<boost::geometry::index::rstar<8ul>, boost::geometry::index::detail::rtree::insert_reinsert_tag, boost::geometry::index::detail::rtree::choose_by_overlap_diff_tag, boost::geometry::index::detail::rtree::split_default_tag, boost::geometry::index::detail::rtree::rstar_tag, boost::geometry::index::detail::rtree::node_d_mem_static_tag>, Translator = boost::geometry::index::detail::translator<boost::geometry::index::indexable<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > >, boost::geometry::index::equal_to<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > > >, Box = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Allocators = boost::geometry::index::detail::rtree::allocators<std::allocator<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > >, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::rstar<8ul>, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_d_mem_static_tag>, Predicates = boost::geometry::index::detail::spatial_predicate<MyFrustum, boost::geometry::index::detail::intersects_tag, false>, OutIter = std::back_insert_iterator<std::vector<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > > >, boost::geometry::index::detail::rtree::visitors::spatial_query<Value, Options, Translator, Box, Allocators, Predicates, OutIter>::internal_node = boost::geometry::index::detail::rtree::dynamic_internal_node<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::rstar<8ul>, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::allocators<std::allocator<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > >, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::rstar<8ul>, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_d_mem_static_tag>, boost::geometry::index::detail::rtree::node_d_mem_static_tag>]’
foo.cc:46:1: instantiated from here
/usr/local/include/boost/geometry/core/point_type.hpp:66:17: error: no type named ‘type’ in ‘struct boost::geometry::traits::point_type<MyFrustum>’
In file included from /usr/local/include/boost/geometry/geometries/concepts/point_concept.hpp:22:0,
from /usr/local/include/boost/geometry/arithmetic/arithmetic.hpp:23,
from /usr/local/include/boost/geometry/geometry.hpp:32,
from /usr/local/include/boost/geometry/index/rtree.hpp:20,
from foo.cc:1:
/usr/local/include/boost/geometry/core/coordinate_dimension.hpp: In function ‘void boost::geometry::assert_dimension_equal() [with G1 = const boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, G2 = const MyFrustum]’:
/usr/local/include/boost/geometry/geometries/concepts/check.hpp:195:5: instantiated from ‘void boost::geometry::concept::check_concepts_and_equal_dimensions() [with Geometry1 = const boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Geometry2 = const MyFrustum]’
/usr/local/include/boost/geometry/algorithms/disjoint.hpp:338:5: instantiated from ‘bool boost::geometry::disjoint(const Geometry1&, const Geometry2&) [with Geometry1 = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Geometry2 = MyFrustum]’
/usr/local/include/boost/geometry/algorithms/intersects.hpp:99:53: instantiated from ‘bool boost::geometry::intersects(const Geometry1&, const Geometry2&) [with Geometry1 = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Geometry2 = MyFrustum]’
/usr/local/include/boost/geometry/index/detail/predicates.hpp:185:43: instantiated from ‘static bool boost::geometry::index::detail::spatial_predicate_call<boost::geometry::index::detail::intersects_tag>::apply(const G1&, const G2&) [with G1 = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, G2 = MyFrustum]’
/usr/local/include/boost/geometry/index/detail/predicates.hpp:306:75: instantiated from ‘static bool boost::geometry::index::detail::predicate_check<boost::geometry::index::detail::spatial_predicate<Geometry, Tag, false>, boost::geometry::index::detail::bounds_tag>::apply(const Pred&, const Value&, const Indexable&) [with Value = int, Indexable = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Geometry = MyFrustum, Tag = boost::geometry::index::detail::intersects_tag, boost::geometry::index::detail::predicate_check<boost::geometry::index::detail::spatial_predicate<Geometry, Tag, false>, boost::geometry::index::detail::bounds_tag>::Pred = boost::geometry::index::detail::spatial_predicate<MyFrustum, boost::geometry::index::detail::intersects_tag, false>]’
/usr/local/include/boost/geometry/index/detail/predicates.hpp:617:62: instantiated from ‘static bool boost::geometry::index::detail::predicates_check_impl<Predicate, Tag, First, Last>::apply(const Predicate&, const Value&, const Indexable&) [with Value = int, Indexable = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Predicate = boost::geometry::index::detail::spatial_predicate<MyFrustum, boost::geometry::index::detail::intersects_tag, false>, Tag = boost::geometry::index::detail::bounds_tag, unsigned int First = 0u, unsigned int Last = 1u]’
/usr/local/include/boost/geometry/index/detail/predicates.hpp:685:24: instantiated from ‘bool boost::geometry::index::detail::predicates_check(const Predicates&, const Value&, const Indexable&) [with Tag = boost::geometry::index::detail::bounds_tag, unsigned int First = 0u, unsigned int Last = 1u, Predicates = boost::geometry::index::detail::spatial_predicate<MyFrustum, boost::geometry::index::detail::intersects_tag, false>, Value = int, Indexable = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >]’
/usr/local/include/boost/geometry/index/detail/rtree/visitors/spatial_query.hpp:45:13: instantiated from ‘void boost::geometry::index::detail::rtree::visitors::spatial_query<Value, Options, Translator, Box, Allocators, Predicates, OutIter>::operator()(const internal_node&) [with Value = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Options = boost::geometry::index::detail::rtree::options<boost::geometry::index::rstar<8ul>, boost::geometry::index::detail::rtree::insert_reinsert_tag, boost::geometry::index::detail::rtree::choose_by_overlap_diff_tag, boost::geometry::index::detail::rtree::split_default_tag, boost::geometry::index::detail::rtree::rstar_tag, boost::geometry::index::detail::rtree::node_d_mem_static_tag>, Translator = boost::geometry::index::detail::translator<boost::geometry::index::indexable<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > >, boost::geometry::index::equal_to<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > > >, Box = boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, Allocators = boost::geometry::index::detail::rtree::allocators<std::allocator<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > >, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::rstar<8ul>, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_d_mem_static_tag>, Predicates = boost::geometry::index::detail::spatial_predicate<MyFrustum, boost::geometry::index::detail::intersects_tag, false>, OutIter = std::back_insert_iterator<std::vector<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > > >, boost::geometry::index::detail::rtree::visitors::spatial_query<Value, Options, Translator, Box, Allocators, Predicates, OutIter>::internal_node = boost::geometry::index::detail::rtree::dynamic_internal_node<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::rstar<8ul>, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::allocators<std::allocator<boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> > >, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::rstar<8ul>, boost::geometry::model::box<boost::geometry::model::point<float, 2ul, boost::geometry::cs::cartesian> >, boost::geometry::index::detail::rtree::node_d_mem_static_tag>, boost::geometry::index::detail::rtree::node_d_mem_static_tag>]’
foo.cc:46:1: instantiated from here
/usr/local/include/boost/geometry/core/coordinate_dimension.hpp:121:1: error: no type named ‘type’ in ‘struct boost::geometry::dimension<const MyFrustum>’