Walter Bright:
> The non-trivial cases are not detectable (halting problem), so it is a
> pointless feature to add.
On the other hand I have shown few ideas to avoid this problem, that require no
magic abilities to a compiler, essentially making the opBinary("==") operator
actively ignore the holes.
If generic code to ignore such holes is too much slow it can be a little faster
creating a specialized version for each struct. If this causes too much code
bloat, then the default opBinary("==") can be removed from structs and put only
when the programmer asks for it with something like a @equatable property.
If a programmer wants max speed ignoring the holes, such person can define a
opBinary("==") that uses memcmp or something similar.
Bye,
bearophile