@toku51n そこはユースケースがどれだけあるか次第な気がします。実装系を自作していて、実装したいというのであれば止めないですが、どのみち暗黙的にbool値に変換されることを脳内で考えながらコードを読まなきゃいけないので、導入したところで認知的負荷はそこまで落ちないのではと個人的には思います
@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 みたいのを想定してます?
@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 みたいになりますよね
@toku51n 具体的にはどういう挙動が違う感じなんですかね?ショートサーキットも出来ないし、そもそも val = a || b とかみたいにやってtrueになる値だけ取りたいとかそういう用途とかみても、XORについては定義できなさそうだなと思うので、ちょっと具体的なユースケースが思いつかないです……
@toku51n &&とか||に関してはbool型にしか定義されていないが故にboolに暗黙的型変換がなされる仕様になっているから違う演算子のように見えるだけで、bool型についてだけ見れば同一じゃないですかね……