/usr/include/boost/geometry/index/detail/rtree
NameSizeModeActions
kmeans/-0755rm
linear/-0755rm
node/-0755rm
quadratic/-0755rm
rstar/-0755rm
utilities/-0755rm
visitors/-0755rm
adaptors.hpp17810644editdlrm
iterators.hpp32700644editdlrm
options.hpp47300644editdlrm
pack_create.hpp221200644editdlrm
query_iterators.hpp116070644editdlrm
Edit: /usr/include/boost/geometry/index/detail/rtree/iterators.hpp (3270B)
// Boost.Geometry Index // // R-tree iterators // // Copyright (c) 2011-2015 Adam Wulkiewicz, Lodz, Poland. // // Use, modification and distribution is subject to the Boost Software License, // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) #ifndef BOOST_GEOMETRY_INDEX_DETAIL_RTREE_ITERATORS_HPP #define BOOST_GEOMETRY_INDEX_DETAIL_RTREE_ITERATORS_HPP namespace boost { namespace geometry { namespace index { namespace detail { namespace rtree { namespace iterators { template struct end_iterator { typedef std::forward_iterator_tag iterator_category; typedef Value value_type; typedef typename Allocators::const_reference reference; typedef typename Allocators::difference_type difference_type; typedef typename Allocators::const_pointer pointer; reference operator*() const { BOOST_GEOMETRY_INDEX_ASSERT(false, "iterator not dereferencable"); pointer p(0); return *p; } const value_type * operator->() const { BOOST_GEOMETRY_INDEX_ASSERT(false, "iterator not dereferencable"); const value_type * p = 0; return p; } end_iterator & operator++() { BOOST_GEOMETRY_INDEX_ASSERT(false, "iterator not incrementable"); return *this; } end_iterator operator++(int) { BOOST_GEOMETRY_INDEX_ASSERT(false, "iterator not incrementable"); return *this; } friend bool operator==(end_iterator const& /*l*/, end_iterator const& /*r*/) { return true; } }; template class iterator { typedef visitors::iterator visitor_type; typedef typename visitor_type::node_pointer node_pointer; public: typedef std::forward_iterator_tag iterator_category; typedef Value value_type; typedef typename Allocators::const_reference reference; typedef typename Allocators::difference_type difference_type; typedef typename Allocators::const_pointer pointer; inline iterator() {} inline iterator(node_pointer root) { m_visitor.initialize(root); } reference operator*() const { return m_visitor.dereference(); } const value_type * operator->() const { return boost::addressof(m_visitor.dereference()); } iterator & operator++() { m_visitor.increment(); return *this; } iterator operator++(int) { iterator temp = *this; this->operator++(); return temp; } friend bool operator==(iterator const& l, iterator const& r) { return l.m_visitor == r.m_visitor; } friend bool operator==(iterator const& l, end_iterator const& /*r*/) { return l.m_visitor.is_end(); } friend bool operator==(end_iterator const& /*l*/, iterator const& r) { return r.m_visitor.is_end(); } private: visitor_type m_visitor; }; }}}}}} // namespace boost::geometry::index::detail::rtree::iterators #endif // BOOST_GEOMETRY_INDEX_DETAIL_RTREE_ITERATORS_HPP