23 this->name = that.
name;
29 this->name = that.name;
40 owner->print(
"iterator copy ctor");
44 owner->print(
"iterator move ctor");
50 owner->print(
"iterator copy assign");
51 this->owner = that.owner;
57 owner->print(
"iterator move assign");
58 this->owner = that.owner;
64 owner->print(
"iterator %d == %d", this->pos, that.pos);
65 return this->pos == that.pos;
69 owner->print(
"iterator %d != %d", this->pos, that.pos);
70 return this->pos != that.pos;
74 owner->print(
"iterator prefix ++");
80 owner->print(
"iterator postfix ++");
87 owner->print(
"iterator deref: %d",
pos);
92 int result = this->pos - that.pos;
98 owner->print(
"iterator advance: %d += %d", this->pos, steps);
113 void print(
const char *msg, ...)
const {
116 printf(
"[%s] ",
name);
126#pragma omp split counts(1, omp_fill, 1)
127 for (
auto it = range.
begin(); it != range.
end(); ++it)
128 printf(
"v=%d\n", *it);
const Iterator & operator=(const Iterator &that)
bool operator==(const Iterator &that) const
Iterator operator+(int steps) const
Iterator(const Iterator &that)
Iterator(const Reporter *owner, int pos)
bool operator!=(const Iterator &that) const
size_t operator-(const Iterator &that) const
Iterator(Iterator &&that)
const Iterator & operator=(Iterator &&that)
void print(const char *msg,...) const
Reporter(Reporter &&that)
const Reporter & operator=(const Reporter &that)
const Reporter & operator=(Reporter &&that)
Reporter(const char *name)
Reporter(const Reporter &that)