我有一个小的enum类,我想在几个地方转发声明.有没有办法将基类型与前向声明分离?我担心稍后会有人改变这种类型.
例如,我有枚举
enum class e_mode : bool
{
SYNC,
ASYNC
};
Run Code Online (Sandbox Code Playgroud)
前瞻性声明将是:
enum class e_mode : bool;
Run Code Online (Sandbox Code Playgroud)
如果有人添加了另一个值,他需要将bool更改为char,然后绕过更改前向声明.我想避免......
所述enum的基础类型可通过来前所定义typedef:
typedef bool e_mode_base_t;
Run Code Online (Sandbox Code Playgroud)
然后,您可以将此类型用于enum前向声明:
enum class e_mode: e_mode_base_t;
Run Code Online (Sandbox Code Playgroud)
而且对于它enum的定义:
enum class e_mode : e_mode_base_t
{
SYNC,
ASYNC
};
Run Code Online (Sandbox Code Playgroud)
这样,您只需要修改e_mode_base_t希望更改enum基础类型的定义.
你还可创建借助一个类型别名using来代替typedef:
using e_mode_base_t = bool;
Run Code Online (Sandbox Code Playgroud)
这可能更具可读性.
| 归档时间: |
|
| 查看次数: |
264 次 |
| 最近记录: |