15#ifndef dealii_synchronous_iterator_h
16#define dealii_synchronous_iterator_h
48template <
typename Iterators>
89template <
typename Iterators>
96template <
typename Iterators>
97inline const Iterators &
105template <
typename Iterators>
122template <
typename Iterators>
127 return std::get<0>(*a) < std::get<0>(*b);
139template <
typename Iterators>
144 Assert(std::distance(std::get<0>(*b), std::get<0>(*a)) >= 0,
146 return std::distance(std::get<0>(*b), std::get<0>(*a));
155template <
typename I1,
typename I2>
157advance(std::tuple<I1, I2> &t,
const unsigned int n)
159 std::advance(std::get<0>(t), n);
160 std::advance(std::get<1>(t), n);
168template <
typename I1,
typename I2,
typename I3>
170advance(std::tuple<I1, I2, I3> &t,
const unsigned int n)
172 std::advance(std::get<0>(t), n);
173 std::advance(std::get<1>(t), n);
174 std::advance(std::get<2>(t), n);
182template <
typename I1,
typename I2,
typename I3,
typename I4>
184advance(std::tuple<I1, I2, I3, I4> &t,
const unsigned int n)
186 std::advance(std::get<0>(t), n);
187 std::advance(std::get<1>(t), n);
188 std::advance(std::get<2>(t), n);
189 std::advance(std::get<3>(t), n);
197template <
typename I1,
typename I2>
210template <
typename I1,
typename I2,
typename I3>
224template <
typename I1,
typename I2,
typename I3,
typename I4>
226prev(std::tuple<I1, I2, I3, I4> &t)
239template <
typename I1,
typename I2>
252template <
typename I1,
typename I2,
typename I3>
266template <
typename I1,
typename I2,
typename I3,
typename I4>
281template <
typename Iterators>
295template <
typename Iterators>
308template <
typename Iterators>
321template <
typename Iterators>
336template <
typename Iterators>
341 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)