我习惯使用enum常量 - 它们可以快速编写,可以放在.h文件中,并且工作正常.
enum {BOX_LEFT=10, BOX_TOP=50, BOX_WIDTH=100, BOX_HEIGHT=50};
enum {REASONS_I_LIKE_ENUM_AS_CONSTANTS = 3};
这不再是个好主意吗?
我认为有更好的理由选择枚举类(传统的枚举隐式转换为int;常规枚举将其枚举器导出到周围的范围),但这些是在这种情况下更喜欢旧枚举的原因.
我在一个关于静态constexpr int和旧式枚举的线程中看到旧式枚举更好,因为有了一个静态的constexpr成员,你必须在类外面声明它.但是这在C++ 17中显然不再适用,并且可能只适用于类成员.
什么是c ++ 17的首选方式?
这是主观的.
然而,这总是滥用枚举.你没有列举任何东西; 你只是窃取了这个enum功能,以获得一些与任意整数值无关的东西,这些整数值并不是为了拥有自己的逻辑"类型".
这就是为什么enum class是不恰当的位置或者(因为,正如你所指出的,enum class 强制的性质enum是应该是有,但你实际上并不需要).
由于不再有任何问题static constexpr int,我会使用它(或者constexpr inline int,或者本周的任何内容).
| 归档时间: | 
 | 
| 查看次数: | 545 次 | 
| 最近记录: |