
2011/2/1 Gunther Laure <gunther.laure@gmail.com>
Hi!
I am trying to use boost fusion to build [de]serializer for simple types (int ...) and structs. I had success until I tried structures holding arrays.
Example: struct EntryTable { unsigned int count; unsigned int data[4]; };
BOOST_FUSION_ADAPT_STRUCT( EntryTable, (unsigned int, count) (unsigned int, data[4]) )
[...]
fusion::vector<unsigned int, unsigned int[4]> f2 = t; // doesnt work (not even compile)
[...]
What am I doing wrong? Is there a simple way to simple wrap an array using fusion?
It's infeasible to use C-array here since there's no assignment for such. Use Boost.Array instead. Sample code --------------------- typedef boost::array<unsigned int, 4> array_t; struct EntryTable { unsigned int count; boost::array<unsigned int, 4> data; }; BOOST_FUSION_ADAPT_STRUCT( EntryTable, (unsigned int, count) (array_t, data) ) ... EntryTable t; fusion::vector<unsigned int, array_t> f2 = t; // now it should work HTH