gpt4 book ai didi

c++ - 具有前向声明的枚举类基础类型

转载 作者:搜寻专家 更新时间:2023-10-31 00:08:33 27 4
gpt4 key购买 nike

我有一个小的枚举类,我想在几个地方转发声明。有没有办法将基类型与前向声明分离?恐怕稍后有人会更改类型。

例如我有枚举

enum class e_mode : bool
{
SYNC,
ASYNC
};

前向声明将是:

enum class e_mode : bool;

如果有人添加另一个值,他将需要将 bool 更改为 char,然后四处更改前向声明。我想避免这种情况......

最佳答案

enum 的底层类型可以通过 typedef 预先定义:

typedef bool e_mode_base_t;

然后,您可以将此类型用于enum 的前向声明:

enum class e_mode: e_mode_base_t;

还有 enum 的定义:

enum class e_mode : e_mode_base_t
{
SYNC,
ASYNC
};

这样,当你想改变enum的底层类型时,你只需要修改e_mode_base_t的定义。

你也可以通过 using 而不是 typedef 来创建类型别名:

using e_mode_base_t = bool;

这可能更具可读性。

关于c++ - 具有前向声明的枚举类基础类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48423582/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com