Quelqu'un peut-il m'expliquer comment énumérer un BOOST_ENUM en utilisant BOOST_FOREACH? L'exemple ci-dessous montre que je l'ai eu pour fonctionner avec std :: for_each, mais pas avec BOOST_FOREACH.Comment énumérer un BOOST_ENUM avec BOOST_FOREACH?
Exemple de code:
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);
}
Un grand merci à l'avance! Edit: comme mentionné dans la réponse, le code fonctionne avec la plus récente base de code de boost.
Est-ce la bibliothèque d'énumération sécurisée de type Vault? Ou a-t-il été accepté en boost? –
Vous avez raison, c'est celui du coffre-fort. –