それはシャアしかし列挙型基になる型は
enum class Status:char{one=126,two=127,three=128};
Status s = Status::three;
「基になる型に対して大きすぎる列挙値「私は次のコマンドを実行した場合のコードコンパイラがないことを私にエラーを与えるだろう私にすべてのエラーを与え、静かに文字の上部範囲は
char x = 128;
を越えているので、コンパイラは、通常のデータ型の場合をチェックインし、列挙型基になる型の場合に範囲をチェックしません、なぜ特定の理由があることを無視します。
を行うことができます。このように、あなたが行うことはできません。これが許されなければ、 'getchar()'や 'istream :: get()'のようなAPIの返された 'int'を' char'に変換するのは面倒かもしれません。 – neuront
あなたの実装では 'char'のように見えます。その値はおそらく-128から127の範囲です。128は 'char'をオーバーフローしますが、不正な形式ではありません。署名付きオーバーフローは未定義の動作であることに注意してください。私はそれが不定値で定数を持っていることは醜いと思う。 – KABoissonneault
どのコンパイラを使用していますか? gcc-6.1は 'error:enumerator value 128は基底型 'char''の範囲外です。 – Tim