如何获取枚举项的类型?
的类型MyEnum_FirstItem
是MyEnum
。枚举数没有不同的类型。
(但是,请继续阅读……)
你想在这里做什么?您是否正在尝试创建一个其第二个参数只能具有值 MyEnum_FirstItem 的元组?– Sneftel 3 分钟前
@Sneftel 是的,完全正确 – Nurbol Alpysbayev 2 分钟前
c++ 中是否有任何确切的数字类型?
其实,是。
std::integral_constant<int, 3>
是表示值 3 的类型int
。它用于模板元编程。
也许你可以用它做点什么。因为,虽然MyEnum_FirstItem
不是它自己的类型,但您可以将其包装起来以产生这样的东西,如下所示:
std::integral_constant<MyEnum, MyEnum::MyEnum_FirstItem>
所以也许:
std::tuple<int, std::integral_constant<MyEnum, MyEnum::MyEnum_FirstItem>> MyTuple;
(参考)
我猜想这个枚举的目的是作为一个“标签”来区分各种其他相同的元组类型,用于文档目的(并防止代码库中的“交叉污染”)。
如果是这样,我实际上只是struct
为这项工作创建了一堆空的 s,就像我们为其他标记实现所做的那样。
struct TagA {};
struct TagB {};
std::tuple<int, TagA> MyTuple;
它更易于使用和阅读,如果您愿意,您仍然可以将它们放入命名空间。