diff --git a/include/boost/geometry/index/detail/rtree/node/static_visitor.hpp b/include/boost/geometry/index/detail/rtree/node/static_visitor.hpp index c96ca3265..9b74b1e41 100644 --- a/include/boost/geometry/index/detail/rtree/node/static_visitor.hpp +++ b/include/boost/geometry/index/detail/rtree/node/static_visitor.hpp @@ -37,16 +37,6 @@ inline V & get( return boost::get(v); } -template -inline V * get( - boost::variant< - static_leaf, - static_internal_node - > *v) -{ - return boost::get(v); -} - // apply visitor template diff --git a/include/boost/geometry/index/equal_to.hpp b/include/boost/geometry/index/equal_to.hpp index cf29b5d94..4ba15e20f 100644 --- a/include/boost/geometry/index/equal_to.hpp +++ b/include/boost/geometry/index/equal_to.hpp @@ -123,4 +123,56 @@ struct equal_to< boost::tuple > }}} // namespace boost::geometry::index +//#if !defined(BOOST_NO_CXX11_HDR_TUPLE) && !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) +// +//#include +// +//namespace boost { namespace geometry { namespace index { +// +//namespace detail { +// +//template +//struct std_tuple_equals +//{ +// inline static bool apply(Tuple const& t1, Tuple const& t2) +// { +// typedef typename std::tuple_element::type T; +// return +// equals< +// T, typename geometry::traits::tag::type +// >::apply(std::get(t1), std::get(t2)) +// && +// std_tuple_equals::apply(t1, t2); +// } +//}; +// +//template +//struct std_tuple_equals +//{ +// inline static bool apply(Tuple const&, Tuple const&) +// { +// return true; +// } +//}; +// +//} // namespace detail +// +//template +//struct equal_to< std::tuple > +//{ +// typedef std::tuple value_type; +// +// typedef bool result_type; +// bool operator()(value_type const& l, value_type const& r) const +// { +// return detail::std_tuple_equals< +// value_type, 0, std::tuple_size::value +// >::apply(l ,r); +// } +//}; +// +//}}} // namespace boost::geometry::index +// +//#endif // !defined(BOOST_NO_CXX11_HDR_TUPLE) && !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + #endif // BOOST_GEOMETRY_INDEX_EQUAL_TO_HPP diff --git a/include/boost/geometry/index/indexable.hpp b/include/boost/geometry/index/indexable.hpp index 4f27459fe..19cc5a722 100644 --- a/include/boost/geometry/index/indexable.hpp +++ b/include/boost/geometry/index/indexable.hpp @@ -109,4 +109,32 @@ struct indexable< boost::tuple > }}} // namespace boost::geometry::index +//#if !defined(BOOST_NO_CXX11_HDR_TUPLE) && !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) +// +//#include +// +//namespace boost { namespace geometry { namespace index { +// +//template +//struct indexable< std::tuple > +//{ +// typedef std::tuple value_type; +// +// BOOST_MPL_ASSERT_MSG( +// (detail::is_indexable::value), +// NOT_VALID_INDEXABLE_TYPE, +// (Indexable) +// ); +// +// typedef Indexable const& result_type; +// result_type operator()(value_type const& v) const +// { +// return std::get<0>(v); +// } +//}; +// +//}}} // namespace boost::geometry::index +// +//#endif // !defined(BOOST_NO_CXX11_HDR_TUPLE) && !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + #endif // BOOST_GEOMETRY_INDEX_INDEXABLE_HPP diff --git a/test/rtree/test_rtree.hpp b/test/rtree/test_rtree.hpp index 499f7283c..b76c70c73 100644 --- a/test/rtree/test_rtree.hpp +++ b/test/rtree/test_rtree.hpp @@ -196,6 +196,56 @@ struct generate_value< boost::tuple >, } }; +//#if !defined(BOOST_NO_CXX11_HDR_TUPLE) && !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) +// +//template +//struct generate_value< std::tuple, int, int> > +//{ +// typedef bg::model::point P; +// typedef std::tuple R; +// static R apply(int x, int y) +// { +// return std::make_tuple(P(x, y), x + y * 100, 0); +// } +//}; +// +//template +//struct generate_value< std::tuple >, int, int> > +//{ +// typedef bg::model::point P; +// typedef bg::model::box

B; +// typedef std::tuple R; +// static R apply(int x, int y) +// { +// return std::make_tuple(B(P(x, y), P(x + 2, y + 3)), x + y * 100, 0); +// } +//}; +// +//template +//struct generate_value< std::tuple, int, int> > +//{ +// typedef bg::model::point P; +// typedef std::tuple R; +// static R apply(int x, int y, int z) +// { +// return std::make_tuple(P(x, y, z), x + y * 100 + z * 10000, 0); +// } +//}; +// +//template +//struct generate_value< std::tuple >, int, int> > +//{ +// typedef bg::model::point P; +// typedef bg::model::box

B; +// typedef std::tuple R; +// static R apply(int x, int y, int z) +// { +// return std::make_tuple(B(P(x, y, z), P(x + 2, y + 3, z + 4)), x + y * 100 + z * 10000, 0); +// } +//}; +// +//#endif // #if !defined(BOOST_NO_CXX11_HDR_TUPLE) && !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + // shared_ptr value template @@ -1346,6 +1396,11 @@ void test_rtree_for_point(Parameters const& parameters, Allocator const& allocat test_rtree_count(parameters, allocator); test_rtree_bounds(parameters, allocator); + +//#if !defined(BOOST_NO_CXX11_HDR_TUPLE) && !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) +// typedef std::tuple StdTupleP; +// test_rtree_by_value(parameters, allocator); +//#endif } template @@ -1366,6 +1421,11 @@ void test_rtree_for_box(Parameters const& parameters, Allocator const& allocator test_rtree_count(parameters, allocator); test_rtree_bounds(parameters, allocator); + +//#if !defined(BOOST_NO_CXX11_HDR_TUPLE) && !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) +// typedef std::tuple StdTupleB; +// test_rtree_by_value(parameters, allocator); +//#endif } template