|
Boost Users : |
From: Dominick Layfield (dom.layfield_at_[hidden])
Date: 2007-08-18 00:04:10
When I try to compile an application that uses the Boost serialization library,
I get some compilation errors that I don't understand.
I've taken the code, and trimmed it down to the simplest possible case that
produces the same error.
Here's the code:
// Test of Boost serialization library
#include <sstream>
#include <boost/archive/text_oarchive.hpp>
class test_t {
public:
int i;
template <class Archive> void serialize(Archive& ar, const unsigned int
version ) { ar & i; }
test_t(int _i) : i(_i) {};
};
int main(void) {
std::ostringstream oss;
boost::archive::text_oarchive oa(oss);
test_t test(1);
oa << test;
return 0;
}
When I compile this (gcc 4.1.2, Boost 1.33.1, under Fedora 7), I get the
following error:
g++ serialization_test.cpp -l boost_serialization
/usr/include/boost/archive/detail/oserializer.hpp: In function void
boost::archive::save(Archive&, T&) [with Archive =
boost::archive::text_oarchive, T = test_t]:
/usr/include/boost/archive/basic_text_oarchive.hpp:78: instantiated from void
boost::archive::basic_text_oarchive<Archive>::save_override(T&, int) [with T =
test_t, Archive = boost::archive::text_oarchive]
/usr/include/boost/archive/detail/interface_oarchive.hpp:78: instantiated from
Archive& boost::archive::detail::interface_oarchive<Archive>::operator<<(T&)
[with T = test_t, Archive = boost::archive::text_oarchive]
serialization_test.cpp:21: instantiated from here
/usr/include/boost/archive/detail/oserializer.hpp:567: error: invalid
application of sizeof to incomplete type boost::STATIC_ASSERTION_FAILURE<false>
Can someone explain to me WTF is going on? That error makes absolutely no sense
at all to me, and I'm at my wits end!
Thanks,
-- Dominick
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