Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inconsistent interval operators #2

Open
snedeljkovic opened this issue Aug 31, 2021 · 0 comments
Open

Inconsistent interval operators #2

snedeljkovic opened this issue Aug 31, 2021 · 0 comments

Comments

@snedeljkovic
Copy link

I wonder why is the less-than operator implemented such as to ignore the value, while the value is used in the equality operator? Strictly speaking types that implement the concept of equality need not necessarily implement less-than and vice-versa. It seems that the goal was to implement both operator via less-than over the fields.

The reason I'm asking this is practical: When adding Interval objects to sets or maps the behavior is different to adding them to an IntervalTree.

bool operator==(const Interval &other) const
{
return !(low < other.low || other.low < low
|| high < other.high || other.high < high
|| value < other.value || other.value < value);
}
bool operator<(const Interval &other) const
{
return (low < other.low || high < other.high);
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant