cpp:boost_fusion
- snippet.cpp
#include <boost/fusion/algorithm/iteration/for_each.hpp>
#include <boost/fusion/container/vector.hpp>
#include <iostream>
struct Up {
int execute()
{
return 3;
}
};
struct Down {
int execute()
{
return 4;
}
};
struct Home {
int execute()
{
return 5;
}
};
template<std::size_t ID, typename T>
struct E {
std::size_t id = ID;
T cb;
};
int main(int argc, char** argv)
{
boost::fusion::vector<E<1, Up>, E<2, Down>, E<3, Home>> vec{};
std::size_t r{42};
boost::fusion::for_each(vec, [argc,&r](auto i) {
if (i.id == argc)
{
r = i.cb.execute();
}
});
return r;
}
cpp/boost_fusion.txt · Last modified: by allspark