Boost logo

Boost Users :

Subject: [Boost-users] Fusion: Structs containing an array
From: Gunther Laure (gunther.laure_at_[hidden])
Date: 2011-02-01 08:23:04


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])
)

I would wish to get a fusion::vector<unsigned int, unsigned int[4]>, but
the assignment of the struct only compiles if the fusion vector is defined
as fusion::vector<unsigned int, unsigned int>.

EntryTable t;
fusion::vector<unsigned int, unsigned int> f1 = t; // works
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?

Bye Gunther

using boost 1.42
g++ 4.4.5



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net