如何解决是否可以将枚举类成员标记为已弃用?
我已经养成了在 C++ 中使用新的枚举类(或强枚举)的习惯。现在,我需要弃用一个成员。
但是,标准的 enum 弃用语法(如以下问题中所述)无法编译。 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
成员的适当方法是什么?
解决方法
感谢@Chipster 的指点!事实证明,我使用的开发工具有自己的工具链和编译器版本,但该版本较旧。
我的标准工具链是最新的,但没有被调用。
我能够通过打印 module "eks_example_basic" {
source = "terraform-aws-modules/eks/aws//examples/basic"
version = "14.0.0"
region = "us-east-1"
}
的值来识别此购买。它是一个 ISO 样式日期的整数值(在我的例子中是 __cplusplus
)来表示 cpp 标准版本。这也允许在启用和禁用功能时比较 LT/GT 版本。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。