Skip to content

Handle operators 2#448

Merged
whitequark merged 3 commits intosolvespace:masterfrom
rpavlik:handle-operators-2
Jul 10, 2019
Merged

Handle operators 2#448
whitequark merged 3 commits intosolvespace:masterfrom
rpavlik:handle-operators-2

Conversation

@rpavlik
Copy link
Copy Markdown
Contributor

@rpavlik rpavlik commented Jul 9, 2019

Alternate to #447 - doesn't have the operator bool stuff, but you at least get ==, !=, and <. Let's see what CI thinks.

@whitequark
Copy link
Copy Markdown
Contributor

whitequark commented Jul 9, 2019

@jwesthues Any strong opinions on this change? It adds a bit of type safety in that it's an error to compare unrelated handles, and it makes maps with handles as keys a bit nicer. And although I'm very much not fond of the way C++ manages to provide basic functionality, this implementation is not invasive and shouldn't cause us any problems like doing this with CRTP.

Overall, a lot of people cite SolveSpace's idiosyncratic C++ as a reason the codebase is hard to contribute to; and although some of those complaints are not that well founded, some others are. I personally think there's no especially good reason to not define equality on aggregate classes where it makes sense for all members.

@whitequark whitequark mentioned this pull request Jul 9, 2019
@jwesthues
Copy link
Copy Markdown
Member

Seems reasonable to me.

@whitequark whitequark merged commit b2af9ce into solvespace:master Jul 10, 2019
@whitequark
Copy link
Copy Markdown
Contributor

Thanks @rpavlik!

@phkahler
Copy link
Copy Markdown
Member

Yes, thanks @rpavlik. I like the readability improvements this brings.

@rpavlik rpavlik deleted the handle-operators-2 branch July 11, 2019 19:18
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

Successfully merging this pull request may close these issues.

4 participants