gpt4 book ai didi

c++ - 如何在 Boost 枚举中使用 switch 语句

转载 作者:行者123 更新时间:2023-11-28 03:15:27 34 4
gpt4 key购买 nike

我正在使用 BOOST_ENUM 宏并尝试根据我创建的枚举类型的变量编写 switch 语句。我收到错误消息 "expression must have integral or enum type"

有什么方法可以同时使用 Boost 枚举和 switch 语句吗?

我看过 This link ,但它说要使用 boost::native_value,我得到的消息是 Boost 命名空间没有 native_value 成员。我不知道我是否应该为它包含一个额外的头文件。

有什么想法吗?

示例代码:

BOOST_ENUM(Direction, 
(Forward)
(Backward)
)
Direction response = Direction::Forward;
switch (response)
{
case Direction::Forward :
return;
break;

最佳答案

您无法打开 Direction 对象,请尝试使用 switch (response.index())

当然你还需要使用 Direction::Forward,而不是 Action::Forward,但这甚至可能不会导致编译错误,具体取决于 BOOST_ENUM 是这样写的。

您还可以考虑使用 C++11 枚举类型:

enum class Direction { FORWARD, BACKWARD };

关于c++ - 如何在 Boost 枚举中使用 switch 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17042516/

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