【发布时间】:2023-04-10 16:10:01
【问题描述】:
我已经养成在 C++ 中使用新枚举类(或强枚举)的习惯。现在,我需要弃用一个成员。
但是,如以下问题中所述,标准枚举弃用语法无法编译。 c++ mark enum value as deprecated?
这是我的期望:
enum class MyEnum {
ORIGINAL [[deprecated("Use `PRIMARY` instead.")]] = 1,
PRIMARY = 1,
SECONDARY = 2,
THIRD = 3
};
结果:
...: error: expected '}' before '[' token
ORIGINAL [[deprecated]] = 1,
^
乍一看,我发现此语法适用于enum MyEnum ...,而不是enum class MyEnum ...。
我似乎在 CPP Reference 上也找不到任何关于它的信息: https://en.cppreference.com/w/cpp/language/attributes/deprecated
我是否遗漏了什么,或者弃用 enum class 成员的适当方法是什么?
【问题讨论】:
-
您使用的是正确版本的 C++ 吗?这似乎只是自 C++14 以来的标准。如果您使用的是 C++11,它将无法正常工作。
-
谢谢,这就是答案。开发工具有它自己的工具链,它引入了旧版本的编译器。它没有使用我期望的编译器。
标签: c++ deprecated enum-class