
From: "Jaap Suter" <boost@jaapsuter.com>
what is the easiest way to convert an mpl::sequence to an std::sequence?
I'm using such conversions a lot when unit-testing meta-code. I just wrote two versions of algorithms, a compile-time and the runtime one, and then compare their outputs.
I recall hearing something about mpl::for_each having defined an operator () for runtime purposes, but the details don't seem to be documented anywhere.
Yeah, I guess Aleksey and Dave have been busy with the forthcoming MPL book, but as I understand from list postings, the MPL docs will be updated in Boost 1.32, and mpl::for_each is one of the more useful components. Since it's not documented, I learned how it works from Aleksey. The following works with your code: template<class T> struct to_sequence { public: to_sequence(T &s) : sequence(s) {} template<class Element> void operator()(Element e) { sequence.push_back(e.value); } private: T &sequence; }; ... // int_vector r_list = to_runtime<c_list>(); int_vector r_list; boost::mpl::for_each<c_list>(to_sequence<int_vector>(r_list)); Regards, Terje