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

Reply via email to