1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #ifndef BOOST_GEOMETRY_ITERATORS_BASE_HPP
- #define BOOST_GEOMETRY_ITERATORS_BASE_HPP
- #include <type_traits>
- #include <boost/iterator/iterator_adaptor.hpp>
- #include <boost/iterator/iterator_categories.hpp>
- #ifndef DOXYGEN_NO_DETAIL
- namespace boost { namespace geometry { namespace detail { namespace iterators
- {
- template
- <
- typename DerivedClass,
- typename Iterator,
- typename TraversalFlag = boost::bidirectional_traversal_tag
- >
- struct iterator_base
- : public boost::iterator_adaptor
- <
- DerivedClass,
- Iterator,
- boost::use_default,
- std::conditional_t
- <
- std::is_convertible
- <
- typename boost::iterator_traversal<Iterator>::type,
- boost::random_access_traversal_tag
- >::value,
- TraversalFlag,
- boost::use_default
- >
- >
- {
-
- inline operator Iterator() const
- {
- return this->base();
- }
-
- };
- }}}}
- #endif
- #endif
|