|
Boost Users : |
Subject: [Boost-users] Change from binary_oarchive to text_oarchive gives 'sizeof' compilation errors
From: James Vanns (james.vanns_at_[hidden])
Date: 2008-09-25 05:12:50
Hi, in trying to debug a problem we are experiencing here with binary archives I tried switching to text archives to see if we get the same behaviour. However, now I can't even compile my code! A straight swap for binary_oarchive to text_oarchive gives me these errors:
error: invalid application of âsizeofâ to incomplete type âboost::STATIC_ASSERTION_FAILURE<false>â
The arrangement of my header files is like so:
// base_msg.h
#include <boost/archive/tmpdir.hpp>
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
using boost::archive::text_oarchive;
using boost::archive::text_iarchive;
class Base
{
private:
text_oarchive out;
text_iarchive in;
};
template<class T> class MsgSerializer : public T, public Base
{
...
};
// msg.h
#include "base_msg.h"
// Boost containers, algorithms etc.
#include <boost/serialization/map.hpp>
#include <boost/serialization/string.hpp>
#include <boost/serialization/vector.hpp>
#include <boost/serialization/base_object.hpp>
#include <boost/serialization/split_member.hpp>
struct MyMsg_
{
template<class Archive>
void
serialize(Archive &p_archiver, const unsigned int /* version */)
{
}
};
typedef MsgSerializer<MyMsg_> MyMsg;
etc.
I have literally just changed binary_ for text_ and it now spits out said error whenever it encounters MyMsg_. This used to compile fine. Even if I re-arrange the headers I still get the same error? What must I change to get text_archives to compile!?
I've also tried adding access.hpp (which I didn't have to do before) and serialization.hpp all to no avail.
Regards,
Jim
-- James Vanns Systems Programmer Framestore CFC Ltd.
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