[fusion] maps and arrays
I've had some code written with boost 1.53 a while ago that uses fusion maps to define at compile-time packet structures. There is then compile time generated code that handles marshaling, unmarshaling, and packet size calculation on these structures. One of the big reasons for going this route was the ability to have arrays contained in the packets. When upgrading from boost 1.53 to 1.55 on my Gentoo box, this all broke. I posted a bug report at https://svn.boost.org/trac/boost/ticket/10133 but it seems fusion bug reports don't get much activity here. I'm contacting the list to ask if the use of arrays in containers was just a fluke or if it should be working and something happened in 1.55 (or possibly 1.54 which I never tried.) If this is not something that should be supported then I will abandon this code and go with something else. It's been really nice to work on some client/server stuff with it because the work that went in to handle the code generation saves a lot of time going forward. Thanks, Steven
On 28/06/2014 12:19 a.m., Seeger, Steven D. (GSFC-444.0)[Embedded Flight Systems, Inc] wrote:
I've had some code written with boost 1.53 a while ago that uses fusion maps to define at compile-time packet structures. There is then compile time generated code that handles marshaling, unmarshaling, and packet size calculation on these structures. One of the big reasons for going this route was the ability to have arrays contained in the packets. When upgrading from boost 1.53 to 1.55 on my Gentoo box, this all broke.
I'm contacting the list to ask if the use of arrays in containers was just a fluke or if it should be working and something happened in 1.55 (or possibly 1.54 which I never tried.)
Not an official answer in any way, but considering it's not explicitly
documented as supported and your test case also fails when replacing
`fusion::map` with `std::tuple` I would consider it just a fluke in the
past. On the other hand, the following code compiles correctly (albeit
with possibly a warning):
typedef std::tuple
participants (2)
-
Agustín K-ballo Bergé
-
Seeger, Steven D. (GSFC-444.0)[Embedded Flight Systems, Inc]