On Sunday, 28 September 2014 at 14:27:56 UTC, Marco Leise wrote:
Am Sun, 28 Sep 2014 10:44:47 +0000
schrieb "Marc Schütz" <[email protected]>:

On Saturday, 27 September 2014 at 11:38:51 UTC, Marco Leise wrote:
>   A byte for byte comparison of both operands is performed.
>   For reference types this is the reference itself.

Maybe allow this only for types that somehow implicitly convert to each other, i.e. via alias this?

That sounds like a messy rule set on top of the original when
alias this does not represent all of the type. You have a
size_t and a struct with a pointer that aliases itself to some
size_t that can be retrieved through that pointer.
The alias this will make it implicitly convert to size_t and
the byte for byte comparison will happily compare two equally
sized varibles (size_t and pointer).
So how narrow would the rule have to be defined before it
reads:

  If you compare with a struct that consists only of one member
  that the struct aliases itself with, a variable of the type
  of that member will be compared byte for byte with the
  struct.

Yeah, it wasn't a good idea. Somehow it felt strange to throw all type safety out of the window, but on the other hand, bit-level comparison is the purpose of `is`, which isn't typesafe to begin with.

Reply via email to