7 #ifndef BOOST_ITERATOR_ADAPTOR_23022003THW_HPP 8 #define BOOST_ITERATOR_ADAPTOR_23022003THW_HPP 25 #ifdef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY 44 using iterators::use_default;
107 # if defined(BOOST_NO_IS_CONVERTIBLE) || defined(BOOST_NO_SFINAE) 109 template <
class From,
class To>
110 struct enable_if_convertible
112 typedef boost::iterators::detail::enable_type
type;
115 # elif BOOST_WORKAROUND(_MSC_FULL_VER, BOOST_TESTED_AT(13102292)) 119 template<
typename From,
typename To>
120 struct enable_if_convertible
124 , is_convertible<From, To>
126 , boost::iterators::detail::enable_type
132 template<
typename From,
typename To>
135 is_convertible<From, To>
136 , boost::iterators::detail::enable_type
149 template <
class T,
class DefaultNullaryFn>
152 is_same<T, use_default>
174 # ifdef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY 185 Value, iterator_value<Base>
211 template <
class Tr1,
class Tr2>
246 ,
class Value = use_default
247 ,
class Traversal = use_default
248 ,
class Reference = use_default
249 ,
class Difference = use_default
253 Derived, Base, Value, Traversal, Reference, Difference
260 Derived, Base,
Value, Traversal, Reference, Difference
273 {
return m_iterator; }
283 {
return m_iterator; }
286 {
return m_iterator; }
296 {
return *m_iterator; }
299 class OtherDerived,
class OtherIterator,
class V,
class C,
class R,
class D 307 return m_iterator == x.
base();
311 typename super_t::iterator_category
314 # define BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(cat) \ 315 boost::iterators::detail::iterator_adaptor_assert_traversal<my_traversal, cat>(); 332 class OtherDerived,
class OtherIterator,
class V,
class C,
class R,
class D 342 return y.
base() - m_iterator;
345 # undef BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL 360 #endif // BOOST_ITERATOR_ADAPTOR_23022003THW_HPP super_t::difference_type distance_to(iterator_adaptor< OtherDerived, OtherIterator, V, C, R, D > const &y) const
void iterator_adaptor_assert_traversal()
void advance(typename super_t::difference_type n)
#define BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(cat)
BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.
bool equal(iterator_adaptor< OtherDerived, OtherIterator, V, C, R, D > const &x) const
iterator_adaptor< Derived, Base, Value, Traversal, Reference, Difference > iterator_adaptor_
Base const & base() const
iterator_facade< Derived, typename boost::iterators::detail::ia_dflt_help< Value, iterator_value< Base > >::type, typename boost::iterators::detail::ia_dflt_help< Traversal, iterator_traversal< Base > >::type, typename boost::iterators::detail::ia_dflt_help< Reference, mpl::eval_if< is_same< Value, use_default >, iterator_reference< Base >, add_reference< Value > > >::type, typename boost::iterators::detail::ia_dflt_help< Difference, iterator_difference< Base > >::type > type
Base const & base_reference() const
IMGUI_API void Value(const char *prefix, bool b)
super_t::reference dereference() const
iterator_adaptor(Base const &iter)
#define BOOST_STATIC_ASSERT(...)
boost::iterators::detail::iterator_adaptor_base< Derived, Base, Value, Traversal, Reference, Difference >::type super_t
iterator_category_to_traversal< typename super_t::iterator_category >::type my_traversal