gpt4 book ai didi

c++ - c++ 中是否有枚举器的自动名称查找?

转载 作者:行者123 更新时间:2023-12-04 07:38:18 25 4
gpt4 key购买 nike

据我所知,目前在 C++ 中不支持这个。
例如,

class C{
struct{
enum {defaulted, opt1, opt2, ...} flag1;
enum {defaulted, optA, optB, ...} flag2;
} flags;
...
};
现在假设我们有 C obj , 使用标志可以做
obj.flags.flag1 = obj.flags.opt1;
这是不必要的冗长。
然而作为 obj.flags.flag1的类型已知,理论上编译器可以查找名称 opt1在该范围内并保存一些输入。
因为标志不在其他任何地方使用,所以最好不要给类型命名(实际上很难想出合适的名称)。 using enum C++20 中的语法没有解决这个问题,因为:它 1) 需要 enum要命名的类型; 2) using多个 enum s 可能会导致名称冲突,如下所示,因为两者都是 enum s 有一个 defaulted成员。
实现起来会有哪些困难?这是否已提交给 C++ 标准委员会和/或在某些编译器中实现?

最佳答案

很容易有一个名为 opt1 的对象。可以转换为适当的枚举类型。名称查找的行为最好保持一致,而不是根据其他操作数的类型进行特殊处理(部分原因是类型通常是在名称查找后确定的)。

关于c++ - c++ 中是否有枚举器的自动名称查找?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67632482/

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