C++ 中的 enum 可以强制要求使用命名前缀吗?

2022-11-18 17:14:50 +08:00
 iqoo

比如:

enum State {
  NONE,
  // ...
}

会暴露出一个 NONE 的名字出来,感觉很不爽。可不可以必须使用 State::NONE ,直接用 NONE 的话就报错?

1172 次点击
所在节点    程序员
5 条回复
fengjianxinghun
2022-11-18 17:16:32 +08:00
c++11 以上
enum class State
tool2d
2022-11-18 17:20:12 +08:00
所以我一般都是写 STATE_NONE (手动柴犬头)

可以用别的办法达到 Op 这个效果,但就不太像 C/C++原始味道了。
aqtata
2022-11-18 17:20:58 +08:00
`enum class`or`enum struct`
Machard
2022-11-18 17:33:43 +08:00
不如直接用 namespace
hardwork
2022-11-19 08:38:47 +08:00
c++11 之前的话套个 namespace
namespace State {
enum State {
NONE,
// ...
};

c++11 enum class ,但是和 int 之类互转要做 cast 转换

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/896264

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX