KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I've been trying to use some of the boost fusion stuff to write a regular c struct to file. An XML file seems a good way to capture the data and make it compatible with other tools or hand editable. It seems like I almost have it but something fundamental seems to be missing. I'm using something pretty similar to what's on the boost::fusion quick start page: http://www.boost.org/doc/libs/1_54_0/libs/fusion/doc/html/fusion/quick_start.html . As a side note I have thoroughly looked here and on boost's documentation but no one seems to be accessing the field name. struct print_xml { template <typename T> void operator()(T const& x) const { std::cout << '<' << x.first << '>' << x << "</" << x.first << '>' ; } }; I want to use it as follows: BOOST_FUSION_ADAPT_STRUCT( myStructType, (double, val1) (double, val2) (char, letter) (int, number) ) myStructType saveMe = { 3.4, 5.6, 'g', 9}; for_each(saveMe, print_xml()); Other times I defined the struct as follows, but still no luck: namespace fields{ struct val1; struct val2; struct letter; struct number; } typedef fusion::map< fusion::pair<fields::val1, double>, fusion::pair<fields::val2, double>, fusion::pair<fields::letter, char>, fusion::pair<fields::number, int> > myStructType; I know there is no member first, but it really seems like there should be in order to access the field name! The code I have works fine with x.second but then doesn't accomplish what I need which is to get the field name. How else might I accomplish this? Thanks!
Tags (comma-separated)
Save Edits
Cancel