|
Boost Users : |
Subject: [Boost-users] Problem serializing unsigned int via save/load
From: Diane (dbutton_at_[hidden])
Date: 2008-09-16 14:42:37
Is there a trick or known bug with serializing an unsigned int via the split
free functions? I have a structure that contains an unsigned int, and if I
serialize with the free serialize function it works as it should. However, if I
split the serialization into save/load I get:
boost_1_36_0/boost/archive/detail/iserializer.hpp:541: error: conversion from
`boost::serialization::is_wrapper<unsigned int>' to non-scalar type
`mpl_::bool_< true>' requested
Here's my structure and the two pieces of serialization code:
typedef struct CCSTRUCT
{
unsigned int numRtp;
} CCSTRUCT;
Serialization #1 (works):
template<class Archive>
void serialize(Archive & ar, CCSTRUCT& it, const unsigned int version)
{
ar & it.numRtp;
}
Serialization #2 (doesn't work):
BOOST_SERIALIZATION_SPLIT_FREE(CCSTRUCT)
template<class Archive>
void save(Archive & ar,
const CCSTRUCT& d,
unsigned int /* version */)
{
ar << d.numRtp;
}
template<class Archive>
void load(Archive & ar,
const CCSTRUCT& d,
unsigned int /* version */)
{
ar >> d.numRtp;
}
I need to split the serialization because there are other elements in the
structure that can't be handled in serialize(), so I would really appreciate
some help if anyone has any ideas.
Thanks,
Diane
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