13#ifndef dealii_synchronous_iterator_h
14#define dealii_synchronous_iterator_h
46template <
typename Iterators>
87template <
typename Iterators>
94template <
typename Iterators>
95inline const Iterators &
103template <
typename Iterators>
120template <
typename Iterators>
125 return std::get<0>(*a) < std::get<0>(*b);
137template <
typename Iterators>
142 Assert(std::distance(std::get<0>(*b), std::get<0>(*a)) >= 0,
144 return std::distance(std::get<0>(*b), std::get<0>(*a));
153template <
typename I1,
typename I2>
155advance(std::tuple<I1, I2> &t,
const unsigned int n)
157 std::advance(std::get<0>(t), n);
158 std::advance(std::get<1>(t), n);
166template <
typename I1,
typename I2,
typename I3>
168advance(std::tuple<I1, I2, I3> &t,
const unsigned int n)
170 std::advance(std::get<0>(t), n);
171 std::advance(std::get<1>(t), n);
172 std::advance(std::get<2>(t), n);
180template <
typename I1,
typename I2,
typename I3,
typename I4>
182advance(std::tuple<I1, I2, I3, I4> &t,
const unsigned int n)
184 std::advance(std::get<0>(t), n);
185 std::advance(std::get<1>(t), n);
186 std::advance(std::get<2>(t), n);
187 std::advance(std::get<3>(t), n);
195template <
typename I1,
typename I2>
208template <
typename I1,
typename I2,
typename I3>
222template <
typename I1,
typename I2,
typename I3,
typename I4>
224prev(std::tuple<I1, I2, I3, I4> &t)
237template <
typename I1,
typename I2>
250template <
typename I1,
typename I2,
typename I3>
264template <
typename I1,
typename I2,
typename I3,
typename I4>
279template <
typename Iterators>
293template <
typename Iterators>
306template <
typename Iterators>
319template <
typename Iterators>
334template <
typename Iterators>
339 return (std::get<0>(*a) != std::get<0>(*b));
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
#define Assert(cond, exc)
static ::ExceptionBase & ExcInternalError()
void advance_by_one(std::tuple< I1, I2, I3 > &t)
void prev(std::tuple< I1, I2, I3, I4 > &t)
bool operator!=(const SynchronousIterators< Iterators > &a, const SynchronousIterators< Iterators > &b)
void advance(std::tuple< I1, I2, I3, I4 > &t, const unsigned int n)
SynchronousIterators< Iterators > operator+(const SynchronousIterators< Iterators > &a, const std::size_t n)
std::size_t operator-(const SynchronousIterators< Iterators > &a, const SynchronousIterators< Iterators > &b)
void advance(std::tuple< I1, I2, I3 > &t, const unsigned int n)
SynchronousIterators(const Iterators &i)
SynchronousIterators< Iterators > & operator--(SynchronousIterators< Iterators > &a)
void advance(std::tuple< I1, I2 > &t, const unsigned int n)
std::bidirectional_iterator_tag iterator_category
void advance_by_one(std::tuple< I1, I2 > &t)
void prev(std::tuple< I1, I2, I3 > &t)
std::size_t difference_type
SynchronousIterators< Iterators > & operator++(SynchronousIterators< Iterators > &a)
SynchronousIterators< Iterators > operator++(SynchronousIterators< Iterators > &a, int)
const Iterators & operator*() const
void advance_by_one(std::tuple< I1, I2, I3, I4 > &t)
void prev(std::tuple< I1, I2 > &t)
bool operator<(const SynchronousIterators< Iterators > &a, const SynchronousIterators< Iterators > &b)
void advance(std::tuple< I1, I2 > &t, const unsigned int n)
void advance_by_one(std::tuple< I1, I2 > &t)
void prev(std::tuple< I1, I2 > &t)