V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
iqoo
V2EX  ›  程序员

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

  •  
  •   iqoo · Nov 18, 2022 · 1974 views
    This topic created in 1268 days ago, the information mentioned may be changed or developed.

    比如:

    enum State {
      NONE,
      // ...
    }
    

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

    5 replies    2022-11-19 08:38:47 +08:00
    fengjianxinghun
        1
    fengjianxinghun  
       Nov 18, 2022   ❤️ 2
    c++11 以上
    enum class State
    tool2d
        2
    tool2d  
       Nov 18, 2022
    所以我一般都是写 STATE_NONE (手动柴犬头)

    可以用别的办法达到 Op 这个效果,但就不太像 C/C++原始味道了。
    aqtata
        3
    aqtata  
       Nov 18, 2022   ❤️ 1
    `enum class`or`enum struct`
    Machard
        4
    Machard  
       Nov 18, 2022
    不如直接用 namespace
    hardwork
        5
    hardwork  
       Nov 19, 2022 via Android
    c++11 之前的话套个 namespace
    namespace State {
    enum State {
    NONE,
    // ...
    };

    c++11 enum class ,但是和 int 之类互转要做 cast 转换
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3208 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 10:56 · PVG 18:56 · LAX 03:56 · JFK 06:56
    ♥ Do have faith in what you're doing.