c++ 如何从命名空间正向声明枚举?

dpiehjr4  于 2022-11-19  发布在  其他
关注(0)|答案(1)|浏览(177)

例如:

namespace MYGAMESTATE {
    enum class GameState {
        GAME
    };
}

我如何在另一个文件中向前声明这个枚举,因为它在一个命名空间中?
会不会是这个?

extern enum class MYGAMESTATE::GameState;
extern enum class GameState;
enum class GameState;
enum class MYGAMESTATE::GameState;
mzsu5hc0

mzsu5hc01#

(主要是根据评论整理答案)
如果您必须像示例中那样使用枚举,而不使用存储类型,则不能这样做。
但如果您可以随意添加存储类型,则可以:
枚举(使用uint8_t作为存储类型):

namespace MYGAMESTATE {
    enum class GameState : uint8_t {
        GAME
    };
}

转发声明:

namespace MYGAMESTATE { enum class GameState : uint8_t; }

相关问题