gpt4 book ai didi

c++ - 是否可以将类型映射到整数?

转载 作者:搜寻专家 更新时间:2023-10-31 02:12:01 24 4
gpt4 key购买 nike

考虑以下结构:

struct value{
std::vector<UCHAR> raw_data;
int type;
};

对于这个例子,假设 type 的值可以是 { 0, 1, 2 }。

如果 type == 0 则 vector 中的数据表示一个 4 字节有符号整数

如果 type == 1 则 vector 中的数据表示一个 2 字节有符号整数

如果 type == 2 那么 vector 中的数据是一个任意长度的原始字节数组

结构的格式不受我控制,type 有超过 30 种可能的值。

是否可以在运行时确定类型?也许像这样的伪代码:

void PrintValue(value & v)
{
TypeLookup<v.type> val(v); // Assuming the type is supported by cout
std::cout << val << std::endl;
}

我目前正在做的是一个大的 switch 语句,每当我使用值然后调用适当的转换方法时,例如:

int32_t GetValAs32Integer();
int16_t GetValAsShort();
std::vector<UCHAR> GetValAsRaw();

有没有更优雅的方法来做到这一点?

最佳答案

Is there a more eligant way to do this?

没有。切换 type 就这么优雅。鉴于您只需处理 3 个值,它应该足够优雅。

关于c++ - 是否可以将类型映射到整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42726369/

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