假设我们有
enum class Month {jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec};
Run Code Online (Sandbox Code Playgroud)
每个值都是一个0到11的整数。然后,我希望Month类型的变量仅保存这些枚举值。因此,这是创建变量的唯一可行方法:
Month m = Month::may;
Run Code Online (Sandbox Code Playgroud)
但是以下是该语言允许的其他一些方式:
Month m1 = Month(12345);
Month m2 = static_cast<Month>(12345);
Run Code Online (Sandbox Code Playgroud)
这有点令人失望。我如何只允许第一种方式?或者人们如何应对C ++中的穷举枚举?