>>797
基本的には、型チェックと、値の集合を明示的に規定できることだろうけど。

・・というか、調べてみたら・・・
列挙体に、[Flags](FlagsAttribute)の付いてるのと付いてないのがある。
付いているのには、
「この列挙体には、メンバ値をビットごとに演算するための FlagsAttribute 属性が含まれています」
などと書かれている。
その割に、[Flags]がついてないenumもビット演算はできる。??
そういう属性が最初から規定されてるのなら、区別があったほうが
よかったのではないかな。まあ、orするものじゃないとプログラマは区別できて、
いいことはいいんだけどね。

>>799
しかし、そのへん言い出したらキリないだろうよ。
D言語かな?Assertの進化したようなのつけても、やはりバグは防げない。
柔軟性とか、簡易さとか、レガシーとか、何か事情があるのよ、多分。
オレは知らないけど。