Handle operators 2#448
Conversation
|
@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. |
|
Seems reasonable to me. |
|
Thanks @rpavlik! |
|
Yes, thanks @rpavlik. I like the readability improvements this brings. |
Alternate to #447 - doesn't have the operator bool stuff, but you at least get ==, !=, and <. Let's see what CI thinks.