16 #ifndef dealii__synchronous_iterator_h 17 #define dealii__synchronous_iterator_h 20 #include <deal.II/base/config.h> 21 #include <deal.II/base/exceptions.h> 23 #include <deal.II/base/std_cxx11/tuple.h> 27 DEAL_II_NAMESPACE_OPEN
50 template <
typename Iterators>
71 template <
typename Iterators>
80 template <
typename Iterators>
98 template <
typename Iterators>
101 operator< (const SynchronousIterators<Iterators> &a,
104 return std_cxx11::get<0>(a.iterators) < std_cxx11::get<0>(b.iterators);
116 template <
typename Iterators>
125 return std::distance (std_cxx11::get<0>(b.
iterators),
135 template <
typename I1,
typename I2>
138 const unsigned int n)
140 std::advance (std_cxx11::get<0>(t), n);
141 std::advance (std_cxx11::get<1>(t), n);
149 template <
typename I1,
typename I2,
typename I3>
152 const unsigned int n)
154 std::advance (std_cxx11::get<0>(t), n);
155 std::advance (std_cxx11::get<1>(t), n);
156 std::advance (std_cxx11::get<2>(t), n);
164 template <
typename I1,
typename I2,
165 typename I3,
typename I4>
167 void advance (std_cxx11::tuple<I1,I2,I3, I4> &t,
168 const unsigned int n)
170 std::advance (std_cxx11::get<0>(t), n);
171 std::advance (std_cxx11::get<1>(t), n);
172 std::advance (std_cxx11::get<2>(t), n);
173 std::advance (std_cxx11::get<3>(t), n);
183 template <
typename I1,
typename I2>
187 ++std_cxx11::get<0>(t);
188 ++std_cxx11::get<1>(t);
196 template <
typename I1,
typename I2,
typename I3>
200 ++std_cxx11::get<0>(t);
201 ++std_cxx11::get<1>(t);
202 ++std_cxx11::get<2>(t);
210 template <
typename I1,
typename I2,
211 typename I3,
typename I4>
215 ++std_cxx11::get<0>(t);
216 ++std_cxx11::get<1>(t);
217 ++std_cxx11::get<2>(t);
218 ++std_cxx11::get<3>(t);
228 template <
typename Iterators>
244 template <
typename Iterators>
260 template <
typename Iterators>
266 return (std_cxx11::get<0>(a.
iterators) !=
270 DEAL_II_NAMESPACE_CLOSE
std::size_t operator-(const SynchronousIterators< Iterators > &a, const SynchronousIterators< Iterators > &b)
void advance_by_one(std_cxx11::tuple< I1, I2, I3 > &t)
#define Assert(cond, exc)
SynchronousIterators(const Iterators &i)
void advance(std_cxx11::tuple< I1, I2, I3, I4 > &t, const unsigned int n)
void advance(std_cxx11::tuple< I1, I2, I3 > &t, const unsigned int n)
void advance_by_one(std_cxx11::tuple< I1, I2 > &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)
void advance(std_cxx11::tuple< I1, I2 > &t, const unsigned int n)
void advance_by_one(std_cxx11::tuple< I1, I2, I3, I4 > &t)