iterator.hpp
Go to the documentation of this file.
7 /*************************************************************************************************/
36 /*************************************************************************************************/
44 /*************************************************************************************************/
89 /*************************************************************************************************/
134 typename boost::iterator_reference<typename boost::range_iterator<typename boost::iterator_value<I>::type>::type>::type,
135 typename boost::iterator_difference<typename boost::range_iterator<typename boost::iterator_value<I>::type>::type>::type>
170 typedef typename boost::range_iterator<typename boost::iterator_value<I>::type>::type bottom_iterator_t;
229 inline segmented_iterator<typename boost::range_iterator<R>::type> make_segmented_iterator(R& r)
236 /*************************************************************************************************/
334 typename S_FN> // A policy object that can compute the distance between two iterators of type IT
336 class step_iterator_adaptor : public boost::iterator_adaptor<DERIVED, IT, boost::use_default, boost::use_default, boost::use_default, typename S_FN::difference_type> {
338 typedef boost::iterator_adaptor<DERIVED, IT, boost::use_default, boost::use_default, boost::use_default, typename S_FN::difference_type> parent_type;
344 step_iterator_adaptor(const IT& it, S_FN step_fn=S_FN()) : parent_type(it), _step_fn(step_fn) {}
356 difference_type distance_to(const step_iterator_adaptor& it) const { return _step_fn.difference(this->base_reference(),it.base_reference()); }
359 // although boost::iterator_adaptor defines these, the default implementation computes distance and compares for zero.
365 bool operator>(const step_iterator_adaptor<D,IT,S_FN>& p1, const step_iterator_adaptor<D,IT,S_FN>& p2)
372 bool operator<(const step_iterator_adaptor<D,IT,S_FN>& p1, const step_iterator_adaptor<D,IT,S_FN>& p2)
378 bool operator>=(const step_iterator_adaptor<D,IT,S_FN>& p1, const step_iterator_adaptor<D,IT,S_FN>& p2)
385 bool operator<=(const step_iterator_adaptor<D,IT,S_FN>& p1, const step_iterator_adaptor<D,IT,S_FN>& p2)
392 bool operator==(const step_iterator_adaptor<D,IT,S_FN>& p1, const step_iterator_adaptor<D,IT,S_FN>& p2)
399 bool operator!=(const step_iterator_adaptor<D,IT,S_FN>& p1, const step_iterator_adaptor<D,IT,S_FN>& p2)
404 /*************************************************************************************************/
427 /*************************************************************************************************/
|