以任何方式更安全/“更好”地做:
enum ENUM { // can be enum class too
...
};
int incoming_value_from_other_process;
auto e = static_cast<ENUM>(incoming_value_from_other_process);
比
auto e = ENUM(incoming_value_from_other_process); // more compact and readable, faster to type
编辑:这是用于进程内和/或网络通信的,其中枚举仅在消息中序列化然后直接转换。
最佳答案
恕我直言,直接初始化就像:
enum Value {
kValue = 5,
};
Value e = kValue;
static_cast
和您的初始化与直接初始化相比有一个缺点。通过“kValue”进行初始化可保护您免受不存在的值的影响,提高可读性等。我认为,两种情况都是平等的。但是第二种情况更具可读性。
关于c++ - static_casting一个int而不是直接对其进行初始化有什么好处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60601102/