Lines Matching refs:zip_iterator
158 class zip_iterator {
173 zip_iterator() : my_it() {}
174 explicit zip_iterator(Types... args) : my_it(std::make_tuple(args...)) {}
175 zip_iterator(const zip_iterator& input) : my_it(input.my_it) {}
176 zip_iterator& operator=(const zip_iterator& input) {
186 difference_type operator-(const zip_iterator& it) const {
192 zip_iterator& operator+=(difference_type forward) {
196 zip_iterator& operator-=(difference_type backward) { return *this += -backward; }
197 zip_iterator& operator++() { return *this += 1; }
198 zip_iterator& operator--() { return *this -= 1; }
200 zip_iterator operator++(int) {
201 zip_iterator it(*this);
205 zip_iterator operator--(int) {
206 zip_iterator it(*this);
211 zip_iterator operator-(difference_type backward) const {
212 zip_iterator it(*this);
215 zip_iterator operator+(difference_type forward) const {
216 zip_iterator it(*this);
219 …friend zip_iterator operator+(difference_type forward, const zip_iterator& it) { return it + forwa…
221 bool operator==(const zip_iterator& it) const {
226 bool operator!=(const zip_iterator& it) const { return !(*this == it); }
227 bool operator<(const zip_iterator& it) const { return *this - it < 0; }
228 bool operator>(const zip_iterator& it) const { return it < *this; }
229 bool operator<=(const zip_iterator& it) const { return !(*this > it); }
230 bool operator>=(const zip_iterator& it) const { return !(*this < it); }
236 zip_iterator<T...> make_zip_iterator(T... args) { return zip_iterator<T...>(args...); }