16 #ifndef dealii_synchronous_iterator_h 17 #define dealii_synchronous_iterator_h 20 #include <deal.II/base/config.h> 22 #include <deal.II/base/exceptions.h> 27 DEAL_II_NAMESPACE_OPEN
51 template <
typename Iterators>
80 template <
typename Iterators>
87 template <
typename Iterators>
95 template <
typename Iterators>
111 template <
typename Iterators>
113 operator<(const SynchronousIterators<Iterators> &a,
116 return std::get<0>(*a) < std::get<0>(*b);
128 template <
typename Iterators>
133 Assert(std::distance(std::get<0>(*b), std::get<0>(*a)) >= 0,
135 return std::distance(std::get<0>(*b), std::get<0>(*a));
144 template <
typename I1,
typename I2>
146 advance(std::tuple<I1, I2> &t,
const unsigned int n)
148 std::advance(std::get<0>(t), n);
149 std::advance(std::get<1>(t), n);
157 template <
typename I1,
typename I2,
typename I3>
159 advance(std::tuple<I1, I2, I3> &t,
const unsigned int n)
161 std::advance(std::get<0>(t), n);
162 std::advance(std::get<1>(t), n);
163 std::advance(std::get<2>(t), n);
171 template <
typename I1,
typename I2,
typename I3,
typename I4>
173 advance(std::tuple<I1, I2, I3, I4> &t,
const unsigned int n)
175 std::advance(std::get<0>(t), n);
176 std::advance(std::get<1>(t), n);
177 std::advance(std::get<2>(t), n);
178 std::advance(std::get<3>(t), n);
188 template <
typename I1,
typename I2>
201 template <
typename I1,
typename I2,
typename I3>
215 template <
typename I1,
typename I2,
typename I3,
typename I4>
232 template <
typename Iterators>
246 template <
typename Iterators>
261 template <
typename Iterators>
266 return (std::get<0>(*a) != std::get<0>(*b));
269 DEAL_II_NAMESPACE_CLOSE
void advance(std::tuple< I1, I2, I3 > &t, const unsigned int n)
void advance_by_one(std::tuple< I1, I2, I3 > &t)
std::size_t operator-(const SynchronousIterators< Iterators > &a, const SynchronousIterators< Iterators > &b)
void advance(std::tuple< I1, I2, I3, I4 > &t, const unsigned int n)
void advance_by_one(std::tuple< I1, I2 > &t)
#define Assert(cond, exc)
SynchronousIterators(const Iterators &i)
void advance_by_one(std::tuple< I1, I2, I3, I4 > &t)
SynchronousIterators< Iterators > operator+(const SynchronousIterators< Iterators > &a, const std::size_t n)
bool operator!=(const SynchronousIterators< Iterators > &a, const SynchronousIterators< Iterators > &b)
SynchronousIterators< Iterators > operator++(SynchronousIterators< Iterators > &a)
const Iterators & operator*() const
void advance(std::tuple< I1, I2 > &t, const unsigned int n)
static ::ExceptionBase & ExcInternalError()