icon

@toku51n そこはユースケースがどれだけあるか次第な気がします。実装系を自作していて、実装したいというのであれば止めないですが、どのみち暗黙的にbool値に変換されることを脳内で考えながらコードを読まなきゃいけないので、導入したところで認知的負荷はそこまで落ちないのではと個人的には思います

icon

@toku51n それは暗黙的型変換のせいですよね。演算子の働きとは別のところから来てるので、等価であることには変わりは無いと思います。

icon

@toku51n うーん、尚更 != じゃダメな理由が分からない…… 結局bool型しか返さないのであれば、bool型の挙動だけみればよいのでは……?

icon

@toku51n それならユースケースはあるかもしれない。ぱっと思いつかないけど

icon

@toku51n もしかして (bool) a = true, (bool) b = true -> false (bool) a = true, (bool) b = false -> a (bool) a = false, (bool) b = true -> b (bool) a = false, (bool) b = false -> false みたいのを想定してます?

icon

@toku51n 仮にその式のaとbが1回だけ即値に開かれる演算として定義されるとして、任意の型について (bool) a = true, (bool) b = true -> false (bool) a = true, (bool) b = false -> true (bool) a = false, (bool) b = true -> b (bool) a = false, (bool) b = false -> false みたいになりますよね

icon

@toku51n 具体的にはどういう挙動が違う感じなんですかね?ショートサーキットも出来ないし、そもそも val = a || b とかみたいにやってtrueになる値だけ取りたいとかそういう用途とかみても、XORについては定義できなさそうだなと思うので、ちょっと具体的なユースケースが思いつかないです……

icon

@toku51n &&とか||に関してはbool型にしか定義されていないが故にboolに暗黙的型変換がなされる仕様になっているから違う演算子のように見えるだけで、bool型についてだけ見れば同一じゃないですかね……

icon

@toku51n 暗黙的型変換ができない言語ならばあるいは。とはいえ、ほぼ同じ意味をもつ演算子を複数定義するメリットがあるかというとそれはそれで……

icon

その用途だったら "!=" でよくない?

icon

自社でルーター作れるのにどうしてNECはヤマハのOEMなんかしているんだろう感

icon

ここで大地震が起こって東京が壊滅した世界線と、起こらなかった世界線が分岐します。