28 #ifndef YB_INC_ystdex_any_iterator_hpp_
29 #define YB_INC_ystdex_any_iterator_hpp_ 1
78 template<
typename _type>
82 typedef typename conditional<wrapped_traits<_type>::value,
83 ref_handler<value_type>, value_handler<value_type>>
::type type;
87 template<
typename _type>
94 using base::get_reference;
113 base::manage(d, s, op);
119 template<
typename _type>
126 using base::get_reference;
139 d.
access<
bool>() = get_reference(*p) == get_reference(s);
151 template<
typename _type>
158 using base::get_reference;
167 template<
typename _type>
174 using base::get_reference;
198 #define YB_ITERATOR_OP1(_n, _t, _it, _e) \
199 template<typename _type, typename _tDifference, typename _tPointer, \
200 typename _tReference> \
202 _n(const _it<_type, _tDifference, _tPointer, _tReference>& i) \
207 #define YB_ITERATOR_OP2(_n, _t, _it, _e) \
208 template<typename _type, typename _tDifference, typename _tPointer, \
209 typename _tReference> \
211 _n(const _it<_type, _tDifference, _tPointer, _tReference>& x, \
212 const _it<_type, _tDifference, _tPointer, _tReference>& y) \
217 #define YB_ITERATOR_MEMBER_POSTFIX(_op, _it) \
232 template<
typename _type,
typename _tDifference = ptrdiff_t,
233 typename _tPointer = _type*,
typename _tReference = _type&>
235 _tDifference, _tPointer, _tReference>,
protected any
247 template<
typename _tIterator>
254 static_assert(is_convertible<decltype(*std::declval<
typename
256 "Wrong target iterator type found.");
296 return static_cast<const any&
>(*this);
326 return t.access<
bool>();
349 template<
typename _type,
typename _tDifference = ptrdiff_t,
350 typename _tPointer = _type*,
typename _tReference = _type&>
360 template<
typename _tIterator>
391 template<
typename _type,
typename _tDifference = ptrdiff_t,
392 typename _tPointer = _type*,
typename _tReference = _type&>
402 template<
typename _tIterator>
439 #undef YB_ITERATOR_OP1
440 #undef YB_ITERATOR_OP2
441 #undef YB_ITERATOR_MEMBER_POSTFIX