#include #include #include #include #include #include #include struct test { //boost::uint32_t a; std::vector b; }; BOOST_FUSION_ADAPT_STRUCT ( test, //(boost::uint32_t, a) (std::vector, b) ) template struct test_generator: boost::spirit::karma::grammar { test_generator(): test_generator::base_type(start) { using boost::spirit::big_dword; using boost::spirit::eps; start = ( //big_dword // a, Ok. //+big_dword // b, "error: no type named // ‘const_iterator’ in // ‘struct test’". //big_dword << +big_dword // a then b, Ok. +big_dword << eps // b then eps, Ok. ) ; } boost::spirit::karma::rule start; }; int main() { std::ofstream out("test1.bin", std::ios::binary | std::ios::trunc); if(!out) { std::cerr << "Failed to open output file\n"; return 1; } typedef std::ostreambuf_iterator output_iterator_type; typedef test_generator test_generator; test_generator tg; test t; output_iterator_type oi(out); bool result = boost::spirit::karma::generate(oi, tg, t); out.close(); if(!result) { std::cerr << "Failed to generate\n"; return 1; } return 0; }