*/
SynchronousIterators (const SynchronousIterators &i);
+ /**
+ * Dereference const operator. Returns a const reference to the iterators
+ * represented by the current class.
+ */
+ const Iterators &operator* () const;
+
+ /**
+ * Dereference operator. Returns a reference to the iterators
+ * represented by the current class.
+ */
+ Iterators &operator* ();
+
/**
* Storage for the iterators represented by the current class.
*/
+template <typename Iterators>
+inline
+const Iterators &
+SynchronousIterators<Iterators>::operator* () const
+{
+ return iterators;
+}
+
+
+
+template <typename Iterators>
+inline
+Iterators &
+SynchronousIterators<Iterators>::operator* ()
+{
+ return iterators;
+}
+
+
+
/**
* Return whether the first element of the first argument is less than the
* first element of the second argument. Since the objects compared march
operator< (const SynchronousIterators<Iterators> &a,
const SynchronousIterators<Iterators> &b)
{
- return std_cxx11::get<0>(a.iterators) < std_cxx11::get<0>(b.iterators);
+ return std_cxx11::get<0>(*a) < std_cxx11::get<0>(*b);
}
operator- (const SynchronousIterators<Iterators> &a,
const SynchronousIterators<Iterators> &b)
{
- Assert (std::distance (std_cxx11::get<0>(b.iterators),
- std_cxx11::get<0>(a.iterators)) >= 0,
+ Assert (std::distance (std_cxx11::get<0>(*b),
+ std_cxx11::get<0>(*a)) >= 0,
ExcInternalError());
- return std::distance (std_cxx11::get<0>(b.iterators),
- std_cxx11::get<0>(a.iterators));
+ return std::distance (std_cxx11::get<0>(*b),
+ std_cxx11::get<0>(*a));
}
const std::size_t n)
{
SynchronousIterators<Iterators> x (a);
- dealii::advance (x.iterators, n);
+ dealii::advance (*x, n);
return x;
}
SynchronousIterators<Iterators>
operator ++ (SynchronousIterators<Iterators> &a)
{
- dealii::advance_by_one (a.iterators);
+ dealii::advance_by_one (*a);
return a;
}
operator != (const SynchronousIterators<Iterators> &a,
const SynchronousIterators<Iterators> &b)
{
- return (std_cxx11::get<0>(a.iterators) !=
- std_cxx11::get<0>(b.iterators));
+ return (std_cxx11::get<0>(*a) !=
+ std_cxx11::get<0>(*b));
}
DEAL_II_NAMESPACE_CLOSE