C++ 可扩展枚举的计划

C++ 可扩展枚举的计划,c++,c++11,enums,C++,C++11,Enums,多亏了C++11,我们得到了作用域和强类型枚举。 但是有没有计划让这个也可以扩展 大概是这样的: enum class OneTwoThree : char {one=1, two=2, three=3}; enum class Four : char {four=4} extends OneTwoThree; 看来并非如此 < C++中没有任何东西是没有纸的。方便的是,您可以在线查看所有的论文,并在学习小组中进行更多非正式的讨论,以了解网站上的语言演变(“未来建议”小组可能是您对更改枚举感兴

多亏了C++11,我们得到了作用域和强类型枚举。
但是有没有计划让这个也可以扩展

大概是这样的:

enum class OneTwoThree : char {one=1, two=2, three=3};
enum class Four : char {four=4} extends OneTwoThree;
看来并非如此

< C++中没有任何东西是没有纸的。方便的是,您可以在线查看所有的论文,并在学习小组中进行更多非正式的讨论,以了解网站上的语言演变(“未来建议”小组可能是您对更改枚举感兴趣的小组)

对于论文,粗略搜索2011年之前的论文标题,可以发现以下主题:

  • -这涉及将属性说明符应用于枚举或命名空间声明
  • -这提出了一系列类型特征,用于在编译时检查枚举列表大小以及枚举项的名称和值
  • -这是另一个与N4113有效相同功能的提案
  • -这将讨论与创建更强的“重命名整数”类型相关的转换规则
这些论文都没有涉及向现有枚举添加值的机制。类似地,在Future Propositions组中粗略搜索“enum”会产生一堆主题,这些主题似乎都不是从枚举的初始定义之外的其他地方向枚举添加新值



已多次尝试在没有库或语言更改的情况下实现此类功能,据我所知,这本书可能对您很有用。

没有。如果我没有弄错的话,
enum类
声明只是说禁止枚举值/整数之间的隐式转换。,它实际上不会使枚举代表java或python等中的完整类型。更不用说,子类的语法已经用于指示基础数据类型和<代码>扩展< /COD>不是C++关键字,IILC C++标准委员会不喜欢添加新的关键字。如果你真的需要C++中的一个可分类的枚举类型,那么最好使用一个带有变量的模板,它将给你所有的编译时间。enums@JAB完全类型在C++中有特定的含义,每个<代码>枚举< /Cord>类型是一个完整的类型。code>void是一个不完整类型的例子。@m我知道的那些术语感觉不太合适。完整/完整/适当的课程还是什么?@JAB:老实说,我不知道你的方向。
enum
根本不是类,
enum类
不会改变这一点。关键字的选择有些不幸,但是C++避免引入新的关键词。