gpt4 book ai didi

c++ - 如何断言一个值是否在枚举范围内

转载 作者:行者123 更新时间:2023-11-30 03:39:01 26 4
gpt4 key购买 nike

我正在从字节流中读取一个值,并想断言该值在枚举范围内。我想知道是否有比下面的方法更通用的方法。

int nval = ReadValue();
Assert(nval);

bool Assert(nval)
{
if(nval == zero || nval == one || nval==two || (nval>=reserved_low && nval <= reserved_high))
return true;
return false
}
enum Foo
{
zero = 0,
one = 1,
two = 2,
reserved_low = 3,
reserved_high = 255,
}

最佳答案

不在 C++03 中,不。

您的方式非常理想(当然可读),尽管您可以认识到,鉴于您所有的枚举都在 0 到 255 的范围内,return !(nval & ~0xff);会完成这项工作。

您可以使用 switch 获得更多性能并比较 nval>=reserved_low && nval <= reserved_highdefault案例。

关于c++ - 如何断言一个值是否在枚举范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39078178/

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