17 #ifndef __deal2__synchronous_iterator_h 18 #define __deal2__synchronous_iterator_h 21 #include <deal.II/base/config.h> 24 #include <deal.II/base/std_cxx1x/tuple.h> 57 template <
typename Iterators>
79 template <
typename Iterators>
88 template <
typename Iterators>
107 template <
typename Iterators>
110 operator< (const SynchronousIterators<Iterators> &a,
113 return std_cxx1x::get<0>(a.iterators) < std_cxx1x::get<0>(b.iterators);
126 template <
typename Iterators>
135 return std::distance (std_cxx1x::get<0>(b.
iterators),
143 template <
typename I1,
typename I2>
145 void advance (std_cxx1x::tuple<I1,I2> &t,
146 const unsigned int n)
148 std::advance (std_cxx1x::get<0>(t), n);
149 std::advance (std_cxx1x::get<1>(t), n);
155 template <
typename I1,
typename I2,
typename I3>
157 void advance (std_cxx1x::tuple<I1,I2,I3> &t,
158 const unsigned int n)
160 std::advance (std_cxx1x::get<0>(t), n);
161 std::advance (std_cxx1x::get<1>(t), n);
162 std::advance (std_cxx1x::get<2>(t), n);
168 template <
typename I1,
typename I2,
169 typename I3,
typename I4>
171 void advance (std_cxx1x::tuple<I1,I2,I3, I4> &t,
172 const unsigned int n)
174 std::advance (std_cxx1x::get<0>(t), n);
175 std::advance (std_cxx1x::get<1>(t), n);
176 std::advance (std_cxx1x::get<2>(t), n);
177 std::advance (std_cxx1x::get<3>(t), n);
185 template <
typename I1,
typename I2>
187 void advance_by_one (std_cxx1x::tuple<I1,I2> &t)
189 ++std_cxx1x::get<0>(t);
190 ++std_cxx1x::get<1>(t);
196 template <
typename I1,
typename I2,
typename I3>
198 void advance_by_one (std_cxx1x::tuple<I1,I2,I3> &t)
200 ++std_cxx1x::get<0>(t);
201 ++std_cxx1x::get<1>(t);
202 ++std_cxx1x::get<2>(t);
208 template <
typename I1,
typename I2,
209 typename I3,
typename I4>
211 void advance_by_one (std_cxx1x::tuple<I1,I2,I3,I4> &t)
213 ++std_cxx1x::get<0>(t);
214 ++std_cxx1x::get<1>(t);
215 ++std_cxx1x::get<2>(t);
216 ++std_cxx1x::get<3>(t);
225 template <
typename Iterators>
240 template <
typename Iterators>
256 template <
typename Iterators>
262 return (std_cxx1x::get<0>(a.
iterators) !=
266 DEAL_II_NAMESPACE_CLOSE
#define Assert(cond, exc)
SynchronousIterators(const Iterators &i)
::ExceptionBase & ExcInternalError()