结构元素C 的枚举

Enumeration of struct elements c++

本文关键字:枚举 元素 结构      更新时间:2023-10-16

我只是试图用C 创建几个结构元素的枚举(实际上它看起来更像C,因此,如果您有任何建议使其看起来更像C ,我'LL接受)。这是代码:

struct Vect
{
    int x;
    int y;
};
enum Direction
{
    right = (Vect) {1, 0},
    left = (Vect) {-1, 0},
    down = (Vect) {0, 1},
    up = (Vect) {0, -1}
};

我从g 中获得的错误是:"``正确''的枚举值不是一个整数常数"(对于其他人来说)。甚至有可能这样做吗?否则我可以找到另一种方法,但是我发现该解决方案非常优雅。

如果您想要的只是一堆Vect类型的常数表达式,则可以定义它们如下:

namespace Direction
{
    constexpr Vect right = { 1,  0 };
    constexpr Vect left  = {-1,  0 };
    constexpr Vect down  = { 0,  1 };
    constexpr Vect up    = { 0, -1 };
}

Vect当您显示它是一种字面类型时,这就是可能的原因。

几乎是为什么要引入constexpr