作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有人可以向我解释如何使用 BOOST_FOREACH 枚举 BOOST_ENUM 吗?下面的示例表明我让它与 std::for_each 一起工作,但不能与 BOOST_FOREACH 一起工作。
示例代码:
BOOST_ENUM_VALUES( MyEnum,
const char *,
(xMin)("xMin")
(xMax)("xMax")
(yMin)("yMin")
(yMax)("yMax")
);
void blah(const MyEnum & val) // working demo with std_foreach
{
std::cout << "index=" << val.index() << " val=" << val.value() << " str=" << val.str() << std::endl;
}
void foo()
{
//BOOST_FOREACH : does not compile...
BOOST_FOREACH(MyEnum myEnum, MyEnum() ) // I tried to construct a "dummy" enum in order to use its iterator with no luck...
{
std::cout << "index=" << myEnum.index() << " val=" << myEnum.value() << " str=" << myEnum.str() << std::endl;
}
//std::for_each : works...
std::for_each(MyEnum::begin(), MyEnum::end(), blah);
}
非常感谢!
编辑:如答案中所述,该代码确实适用于最新的 boost 代码库。
最佳答案
上面的示例代码在 gcc 4.5.1 和 vc2010 上编译和运行对我来说都很好(在添加相应的#include 之后)。我尝试使用保险库中的 enum_rev4.6。您看到了哪些编译错误?
关于c++ - 如何使用 BOOST_FOREACH 枚举 BOOST_ENUM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4061000/
我是一名优秀的程序员,十分优秀!