On Thursday, 14 March 2019 at 18:25:17 UTC, H. S. Teoh wrote:
On Thu, Mar 14, 2019 at 06:07:46PM +0000, Alec Stewart via
Digitalmars-d-learn wrote: [...]
bool opEquals(ref const Interval i) const {
// probably would be a bit more than just this, but
for this issue
// let's just stick with this.
return d_start.opEquals(other.d_start) &&
d_end.opEquals(other.d_end);
}
There's no need to call opEquals explicitly like that. All you
need to do is to use <, ==, and > as you normally would:
bool opEquals(ref const Interval i) const {
return d_start == other.d_start) && d_end == d_end;
}
T
Thanks. I somehow managed to overthink this...
For < and >, would one do this?
size_t opCmp(ref const Interval other) const {
return d_start < other.d_start;
}
size_t opCmp(ref const Interval other) const {
return d_end < other.d_end;
}
size_t opCmp(ref const Interval other) const {
return d_start > other.d_start;
}
size_t opCmp(ref const Interval other) const {
return d_end > other.d_end;
}
Or would it better to do
size_t opCmp(ref const Interval other) const {
if (d_start < other.d_start) {
return d_start < other.d_start;
} else if (d_start > other.d_start) {
return d_start > other.d_start;
} else if (d_end < other.d_end) {
return d_end < other.d_end;
} else if (d_end > other.d_end) {
return d_end > other.d_end;
} else {
return false;
}
}