22 this->name = that.
name;
28 this->name = that.name;
39 owner->print(
"iterator copy ctor");
43 owner->print(
"iterator move ctor");
49 owner->print(
"iterator copy assign");
50 this->owner = that.owner;
56 owner->print(
"iterator move assign");
57 this->owner = that.owner;
63 owner->print(
"iterator %d == %d", this->pos, that.pos);
64 return this->pos == that.pos;
68 owner->print(
"iterator %d != %d", this->pos, that.pos);
69 return this->pos != that.pos;
73 owner->print(
"iterator prefix ++");
79 owner->print(
"iterator postfix ++");
86 owner->print(
"iterator deref: %d",
pos);
91 int result = this->pos - that.pos;
97 owner->print(
"iterator advance: %d += %d", this->pos, steps);
112 void print(
const char *msg, ...)
const {
115 printf(
"[%s] ",
name);
125#pragma omp split counts(1, omp_fill, 1)
126 for (
auto it = range.
begin(); it != range.
end(); ++it)
127 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)