|
step_iterator.hpp
Go to the documentation of this file.
11 /*************************************************************************************************/ 51 typename SFn> // A policy object that can compute the distance between two iterators of type Iterator 53 class step_iterator_adaptor : public iterator_adaptor<Derived, Iterator, use_default, use_default, use_default, typename SFn::difference_type> { 55 typedef iterator_adaptor<Derived, Iterator, use_default, use_default, use_default, typename SFn::difference_type> parent_t; 61 step_iterator_adaptor(const Iterator& it, SFn step_fn=SFn()) : parent_t(it), _step_fn(step_fn) {} 73 difference_type distance_to(const step_iterator_adaptor& it) const { return _step_fn.difference(this->base_reference(),it.base_reference()); } 76 // although iterator_adaptor defines these, the default implementation computes distance and compares for zero. 79 bool operator>(const step_iterator_adaptor<D,Iterator,SFn>& p1, const step_iterator_adaptor<D,Iterator,SFn>& p2) { 84 bool operator<(const step_iterator_adaptor<D,Iterator,SFn>& p1, const step_iterator_adaptor<D,Iterator,SFn>& p2) { 89 bool operator>=(const step_iterator_adaptor<D,Iterator,SFn>& p1, const step_iterator_adaptor<D,Iterator,SFn>& p2) { 94 bool operator<=(const step_iterator_adaptor<D,Iterator,SFn>& p1, const step_iterator_adaptor<D,Iterator,SFn>& p2) { 99 bool operator==(const step_iterator_adaptor<D,Iterator,SFn>& p1, const step_iterator_adaptor<D,Iterator,SFn>& p2) { 104 bool operator!=(const step_iterator_adaptor<D,Iterator,SFn>& p1, const step_iterator_adaptor<D,Iterator,SFn>& p2) { 138 difference_type difference(const Iterator& it1, const Iterator& it2) const { return memunit_distance(it1,it2)/_step; } 149 class memory_based_step_iterator : public detail::step_iterator_adaptor<memory_based_step_iterator<Iterator>, 162 memory_based_step_iterator(Iterator it, std::ptrdiff_t memunit_step) : parent_t(it, memunit_step_fn<Iterator>(memunit_step)) {} 183 struct iterator_is_mutable<memory_based_step_iterator<Iterator> > : public iterator_is_mutable<Iterator> {}; 208 struct color_space_type<memory_based_step_iterator<Iterator> > : public color_space_type<Iterator> {}; 211 struct channel_mapping_type<memory_based_step_iterator<Iterator> > : public channel_mapping_type<Iterator> {}; 223 struct byte_to_memunit<memory_based_step_iterator<Iterator> > : public byte_to_memunit<Iterator> {}; 226 inline std::ptrdiff_t memunit_step(const memory_based_step_iterator<Iterator>& p) { return p.step(); } 270 static type make(const memory_based_step_iterator<Iterator>& it, const Deref& d) { return type(iterator_add_deref<Iterator, Deref>::make(it.base(),d),it.step()); } 277 template <typename I> typename dynamic_x_step_type<I>::type make_step_iterator(const I& it, std::ptrdiff_t step); 281 // if the iterator is a plain base iterator (non-adaptor), wraps it in memory_based_step_iterator 283 typename dynamic_x_step_type<I>::type make_step_iterator_impl(const I& it, std::ptrdiff_t step, mpl::false_) { 289 typename dynamic_x_step_type<I>::type make_step_iterator_impl(const I& it, std::ptrdiff_t step, mpl::true_) { 295 memory_based_step_iterator<BaseIt> make_step_iterator_impl(const memory_based_step_iterator<BaseIt>& it, std::ptrdiff_t step, mpl::true_) { Represents a unary function object that can be invoked upon dereferencing a pixel iterator... Definition: gil_concept.hpp:1093 Definition: pixel_iterator.hpp:126 metafunction predicate determining whether the given iterator is a plain one or an adaptor over anoth... Definition: gil_concept.hpp:65 pixel step iterator, pixel image iterator and pixel dereference iterator Definition: algorithm.hpp:50 Concept of a random-access iterator that can be advanced in memory units (bytes or bits) ... Definition: gil_concept.hpp:1293 returns the base iterator for a given iterator adaptor. Provide an specialization when introducing ne... Definition: gil_concept.hpp:67 Returns the type (and creates an instance) of an iterator that invokes the given dereference adaptor ... Definition: locator.hpp:38 reference operator[](difference_type d) const Definition: step_iterator.hpp:169 dynamic_x_step_type< I >::type make_step_iterator(const I &it, std::ptrdiff_t step) make_step_iterator Definition: step_iterator.hpp:314 pixel iterator support Changes the base iterator of an iterator adaptor. Provide an specialization when introducing new iter... Definition: gil_concept.hpp:66 function object that returns the memory unit distance between two iterators and advances a given iter... Definition: step_iterator.hpp:133 GIL configuration file. Metafunction predicate returning whether the given iterator allows for changing its values... Definition: gil_concept.hpp:64 An adaptor over an existing iterator that changes the step unit. Definition: step_iterator.hpp:53 Returns the type of an iterator just like the input iterator, except operating over immutable values... Definition: gil_concept.hpp:63 Various utilities not specific to the image library. Some are non-standard STL extensions or generic ... Generated by
1.8.13
|