|
Boost Users : |
From: Graham Reitz (graham.cpp_at_[hidden])
Date: 2007-10-07 20:30:17
I am having trouble wrapping my head around object tracking for serialization.
I see how to change the default behavior:
BOOST_CLASS_TRACKING(my_class, boost::serialization::track_never)
...but based on the error below how do I determine what kind of object
tracking is needed?
oserializer.hpp:566: error: invalid application of 'sizeof' to
incomplete type 'boost::STATIC_ASSERTION_FAILURE<false>'
inline void save(Archive & ar, T &t){
// if your program traps here, it indicates taht your doing one of
the following:
// a) serializing an object of a type marked "track_never" through
a pointer.
// b) saving an non-const object of a type not markd "track_never)
// Either of these conditions may be an indicator of an error usage of the
// serialization library and should be double checked. See documentation on
// object tracking.
BOOST_STATIC_ASSERT(check_tracking<T>::value);
The following is the class to be serialized:
class client_i
{
private:
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive & ar, const unsigned int version)
{ ar & m_client; }
clients m_client;
public:
client_i() {};
client_i(clients c) : m_client(c) {};
~client_i() {};
};
clients is a mysql++ specialized sql structure that is created via one
of the mysql++ macros, i.e. sql_create_N().
Any help understanding this would be greatly appreciated.
Thanks,
Graham
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