gpt4 book ai didi

c++ - 如何解决编译器枚举重新声明冲突

转载 作者:可可西里 更新时间:2023-11-01 16:26:16 32 4
gpt4 key购买 nike

考虑以下 C++ 枚举:

enum Identity
{
UNKNOWN = 1,
CHECKED = 2,
UNCHECKED = 3
};

enum Status
{
UNKNOWN = 0,
PENDING = 1,
APPROVED = 2,
UNAPPROVED = 3
};

编译器与 UNKNOWN 项发生冲突并抛出此错误:

error: redeclaration of 'UNKNOWN'

我能够解决此错误,将其中一个 UNKNOWN 更改为 UNKNOWN_a,但我不想更改名称。

如何更改 enum 项名称来解决此冲突?

最佳答案

您可以使用 scoped enumerations为了这。这需要 C++11 或更高版本的支持。

enum class Identity
{
UNKNOWN = 1,
CHECKED = 2,
UNCHECKED =3
};

enum class Status
{
UNKNOWN = 0,
PENDING = 1,
APPROVED = 2,
UNAPPROVED =3
};

int main ()
{
Identity::UNKNOWN;
Status::UNKNOW;
}

Live Example

关于c++ - 如何解决编译器枚举重新声明冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34319637/

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