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