为什么编译器抱怨我的枚举类基类型是非整数?

问题描述 投票:0回答:1

我想创建一个新的枚举,并使用 c++ 的枚举类或结构将其值重新映射到另一个枚举。

typedef enum {
    p1,
    p2,
    p3,
    p4
} GPIO_Pins;

enum struct USB_Pins : GPIO_Pins {
    D0 = p1,
    D1 = p2,
    D2 = p3,
    D3 = p4
};

不幸的是,编译器抱怨,

错误:“USB_Pins”的基础类型“GPIO_Pins”必须是一个整数 类型

我的印象是枚举是不可或缺的,不是吗?如果我从 USB_Pins 声明中删除基本类型,错误就会消失,但有很多代码需要 GPIO_Pins 类型。这迫使我不公平地将 USB_Pins 转换为 GPIO_Pins。

c++ enums c++23
1个回答
0
投票

我的印象是枚举是不可或缺的,不是吗?

不,枚举本身就是一个不同的类型(就像类定义一个不同的类型一样)。

© www.soinside.com 2019 - 2024. All rights reserved.