gpt4 book ai didi

enums - 你能引用一个命名的枚举,就好像它在 D 中是匿名的一样吗?

转载 作者:行者123 更新时间:2023-12-01 00:06:22 28 4
gpt4 key购买 nike

我正在做一个到 C 库的 D 桥,这已经使用 typedef 的枚举提供了 C 代码,它像一个常量一样引用它,但可以将它命名为函数参数等。例子:

enum someLongNameThatTheCLibraryUses
{
A,
B,
}

目前,我必须这样引用它:
someLongNameThatTheCLibraryUses.A;

但我宁愿:
A;

我可以这样做:
alias someLongNameThatTheCLibraryUses a;
a.A;

但是我不想在库模块中这样做,所以我必须在使用它的地方这样做,这会很烦人。

有没有办法做到这一点?

最佳答案

如果您希望匿名枚举的类型安全,您可以使用 typedef 创建一个新的不同类型。 ,并将其用作匿名枚举的基本类型。例子:

typedef int A;
enum : A
{
a1,
a2,
a3
}

typedef int X;
enum : X
{
x1,
x2,
x3
}

void main()
{
A a;
X x;
x = a; // Error: cannot implicitly convert expression (a) of type A to X
}

关于enums - 你能引用一个命名的枚举,就好像它在 D 中是匿名的一样吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1301534/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com