$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
From: Alec Gorjestani (alecg_at_[hidden])
Date: 2007-05-11 18:04:38
Hi,
I am new to boost, but was able to get my own classes serialized. 
However, when I include <boost/serialization/vector.hpp> and try to 
serialize a vector<int> I get the compile messages below. I must be 
missing something.
class myclass2 : public Serializable<myclass2> // inherit Serializable 
to become a serializable object
{
private:
// Override the serialize method, listing all variables to (un)serialize
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive & ar, const unsigned int version) {
ar & mc;
ar & vint;
}
public:
myclass2() {};
~myclass2() {};
void Print() {
mc[0].Print();
mc[1].Print();
}
std::vector<int> vint;
myclass mc[2];
};
if g++ -DHAVE_CONFIG_H -I. -I. -I../.. -Wall -I../../src 
-I/ivlab/include -I/ivlab/include -I/usr/include/libxml2 -g -O2 -MT 
test_serializable.o -MD -MP -MF ".deps/test_serializable.Tpo" -c -o 
test_serializable.o test_serializable.cpp; \
then mv -f ".deps/test_serializable.Tpo" ".deps/test_serializable.Po"; 
else rm -f ".deps/test_serializable.Tpo"; exit 1; fi
distcc[6473] ERROR: compile 
/home/alecg/.ccache/test_seria.tmp.hal.6469.ii on localhost failed
/usr/include/boost/archive/detail/oserializer.hpp: In constructor 
boost::archive::detail::oserializer<Archive, T>::oserializer() [with 
Archive = boost::archive::text_oarchive, T = myclass]:
/usr/include/boost/archive/detail/oserializer.hpp:135: instantiated from 
static boost::archive::detail::oserializer<Archive, T>& 
boost::archive::detail::oserializer<Archive, T>::instantiate() [with 
Archive = boost::archive::text_oarchive, T = myclass]
/usr/include/boost/archive/detail/oserializer.hpp:264: instantiated from 
static void boost::archive::detail::save_non_pointer_type<Archive, 
T>::save_standard::invoke(Archive&, const T&) [with Archive = 
boost::archive::text_oarchive, T = myclass]
/usr/include/boost/archive/detail/oserializer.hpp:322: instantiated from 
static void boost::archive::detail::save_non_pointer_type<Archive, 
T>::invoke(Archive&, const T&) [with Archive = 
boost::archive::text_oarchive, T = myclass]
/usr/include/boost/archive/detail/oserializer.hpp:536: instantiated from 
void boost::archive::save(Archive&, const T&) [with Archive = 
boost::archive::text_oarchive, T = myclass]
/usr/include/boost/archive/basic_text_oarchive.hpp:78: instantiated from 
void boost::archive::basic_text_oarchive<Archive>::save_override(T&, 
int) [with T = const myclass, 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 = const myclass, Archive = boost::archive::text_oarchive]
../Serializable.h:71: instantiated from void 
Serializable<T>::toStringStream(std::stringstream&) [with T = myclass]
test_serializable.cpp:111: instantiated from here
/usr/include/boost/archive/detail/oserializer.hpp:107: error: incomplete 
type boost::serialization::extended_type_info_null<myclass> used in 
nested name specifier
/usr/include/boost/archive/detail/oserializer.hpp: In constructor 
boost::archive::detail::oserializer<Archive, T>::oserializer() [with 
Archive = boost::archive::text_oarchive, T = myclass2]:
/usr/include/boost/archive/detail/oserializer.hpp:135: instantiated from 
static boost::archive::detail::oserializer<Archive, T>& 
boost::archive::detail::oserializer<Archive, T>::instantiate() [with 
Archive = boost::archive::text_oarchive, T = myclass2]
/usr/include/boost/archive/detail/oserializer.hpp:264: instantiated from 
static void boost::archive::detail::save_non_pointer_type<Archive, 
T>::save_standard::invoke(Archive&, const T&) [with Archive = 
boost::archive::text_oarchive, T = myclass2]
/usr/include/boost/archive/detail/oserializer.hpp:322: instantiated from 
static void boost::archive::detail::save_non_pointer_type<Archive, 
T>::invoke(Archive&, const T&) [with Archive = 
boost::archive::text_oarchive, T = myclass2]
/usr/include/boost/archive/detail/oserializer.hpp:536: instantiated from 
void boost::archive::save(Archive&, const T&) [with Archive = 
boost::archive::text_oarchive, T = myclass2]
/usr/include/boost/archive/basic_text_oarchive.hpp:78: instantiated from 
void boost::archive::basic_text_oarchive<Archive>::save_override(T&, 
int) [with T = const myclass2, 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 = const myclass2, Archive = boost::archive::text_oarchive]
../Serializable.h:71: instantiated from void 
Serializable<T>::toStringStream(std::stringstream&) [with T = myclass2]
test_serializable.cpp:136: instantiated from here
/usr/include/boost/archive/detail/oserializer.hpp:107: error: incomplete 
type boost::serialization::extended_type_info_null<myclass2> used in 
nested name specifier
/usr/include/boost/archive/detail/iserializer.hpp: In constructor 
boost::archive::detail::iserializer<Archive, T>::iserializer() [with 
Archive = boost::archive::text_iarchive, T = myclass]:
/usr/include/boost/archive/detail/iserializer.hpp:146: instantiated from 
static boost::archive::detail::iserializer<Archive, T>& 
boost::archive::detail::iserializer<Archive, T>::instantiate() [with 
Archive = boost::archive::text_iarchive, T = myclass]
/usr/include/boost/archive/detail/iserializer.hpp:375: instantiated from 
static void boost::archive::detail::load_non_pointer_type<Archive, 
T>::load_standard::invoke(Archive&, T&) [with Archive = 
boost::archive::text_iarchive, T = myclass]
/usr/include/boost/archive/detail/iserializer.hpp:425: instantiated from 
static void boost::archive::detail::load_non_pointer_type<Archive, 
T>::invoke(Archive&, T&) [with Archive = boost::archive::text_iarchive, 
T = myclass]
/usr/include/boost/archive/detail/iserializer.hpp:572: instantiated from 
void boost::archive::load(Archive&, T&) [with Archive = 
boost::archive::text_iarchive, T = myclass]
/usr/include/boost/archive/basic_text_iarchive.hpp:64: instantiated from 
void boost::archive::basic_text_iarchive<Archive>::load_override(T&, 
int) [with T = myclass, Archive = boost::archive::text_iarchive]
/usr/include/boost/archive/text_iarchive.hpp:64: instantiated from void 
boost::archive::text_iarchive_impl<Archive>::load_override(T&, int) 
[with T = myclass, Archive = boost::archive::text_iarchive]
/usr/include/boost/archive/detail/interface_iarchive.hpp:76: 
instantiated from Archive& 
boost::archive::detail::interface_iarchive<Archive>::operator>>(T&) 
[with T = myclass, Archive = boost::archive::text_iarchive]
../Serializable.h:79: instantiated from void 
Serializable<T>::fromStringStream(std::stringstream&) [with T = myclass]
test_serializable.cpp:115: instantiated from here
/usr/include/boost/archive/detail/iserializer.hpp:114: error: incomplete 
type boost::serialization::extended_type_info_null<myclass> used in 
nested name specifier
/usr/include/boost/archive/detail/iserializer.hpp: In constructor 
boost::archive::detail::iserializer<Archive, T>::iserializer() [with 
Archive = boost::archive::text_iarchive, T = myclass2]:
/usr/include/boost/archive/detail/iserializer.hpp:146: instantiated from 
static boost::archive::detail::iserializer<Archive, T>& 
boost::archive::detail::iserializer<Archive, T>::instantiate() [with 
Archive = boost::archive::text_iarchive, T = myclass2]
/usr/include/boost/archive/detail/iserializer.hpp:375: instantiated from 
static void boost::archive::detail::load_non_pointer_type<Archive, 
T>::load_standard::invoke(Archive&, T&) [with Archive = 
boost::archive::text_iarchive, T = myclass2]
/usr/include/boost/archive/detail/iserializer.hpp:425: instantiated from 
static void boost::archive::detail::load_non_pointer_type<Archive, 
T>::invoke(Archive&, T&) [with Archive = boost::archive::text_iarchive, 
T = myclass2]
/usr/include/boost/archive/detail/iserializer.hpp:572: instantiated from 
void boost::archive::load(Archive&, T&) [with Archive = 
boost::archive::text_iarchive, T = myclass2]
/usr/include/boost/archive/basic_text_iarchive.hpp:64: instantiated from 
void boost::archive::basic_text_iarchive<Archive>::load_override(T&, 
int) [with T = myclass2, Archive = boost::archive::text_iarchive]
/usr/include/boost/archive/text_iarchive.hpp:64: instantiated from void 
boost::archive::text_iarchive_impl<Archive>::load_override(T&, int) 
[with T = myclass2, Archive = boost::archive::text_iarchive]
/usr/include/boost/archive/detail/interface_iarchive.hpp:76: 
instantiated from Archive& 
boost::archive::detail::interface_iarchive<Archive>::operator>>(T&) 
[with T = myclass2, Archive = boost::archive::text_iarchive]
../Serializable.h:79: instantiated from void 
Serializable<T>::fromStringStream(std::stringstream&) [with T = myclass2]
test_serializable.cpp:140: instantiated from here
/usr/include/boost/archive/detail/iserializer.hpp:114: error: incomplete 
type boost::serialization::extended_type_info_null<myclass2> used in 
nested name specifier
/usr/include/boost/archive/detail/iserializer.hpp: In member function 
bool boost::archive::detail::iserializer<Archive, T>::is_polymorphic() 
const [with Archive = boost::archive::text_iarchive, T = myclass2]:
test_serializable.cpp:147: instantiated from here
/usr/include/boost/archive/detail/iserializer.hpp:142: error: invalid 
use of undefined type struct 
boost::serialization::extended_type_info_null<myclass2>
/usr/include/boost/serialization/type_info_implementation.hpp:26: error: 
declaration of struct 
boost::serialization::extended_type_info_null<myclass2>
/usr/include/boost/archive/detail/iserializer.hpp:143: error: invalid 
use of undefined type struct 
boost::serialization::extended_type_info_null<myclass2>
/usr/include/boost/serialization/type_info_implementation.hpp:26: error: 
declaration of struct 
boost::serialization::extended_type_info_null<myclass2>
/usr/include/boost/archive/detail/iserializer.hpp: In member function 
bool boost::archive::detail::iserializer<Archive, T>::is_polymorphic() 
const [with Archive = boost::archive::text_iarchive, T = myclass]:
test_serializable.cpp:147: instantiated from here
/usr/include/boost/archive/detail/iserializer.hpp:142: error: invalid 
use of undefined type struct 
boost::serialization::extended_type_info_null<myclass>
/usr/include/boost/serialization/type_info_implementation.hpp:26: error: 
declaration of struct 
boost::serialization::extended_type_info_null<myclass>
/usr/include/boost/archive/detail/iserializer.hpp:143: error: invalid 
use of undefined type struct 
boost::serialization::extended_type_info_null<myclass>
/usr/include/boost/serialization/type_info_implementation.hpp:26: error: 
declaration of struct 
boost::serialization::extended_type_info_null<myclass>
/usr/include/boost/archive/detail/oserializer.hpp: In member function 
bool boost::archive::detail::oserializer<Archive, T>::is_polymorphic() 
const [with Archive = boost::archive::text_oarchive, T = myclass2]:
test_serializable.cpp:147: instantiated from here
/usr/include/boost/archive/detail/oserializer.hpp:131: error: invalid 
use of undefined type struct 
boost::serialization::extended_type_info_null<myclass2>
/usr/include/boost/serialization/type_info_implementation.hpp:26: error: 
declaration of struct 
boost::serialization::extended_type_info_null<myclass2>
/usr/include/boost/archive/detail/oserializer.hpp:132: error: invalid 
use of undefined type struct 
boost::serialization::extended_type_info_null<myclass2>
/usr/include/boost/serialization/type_info_implementation.hpp:26: error: 
declaration of struct 
boost::serialization::extended_type_info_null<myclass2>
/usr/include/boost/archive/detail/oserializer.hpp: In member function 
bool boost::archive::detail::oserializer<Archive, T>::is_polymorphic() 
const [with Archive = boost::archive::text_oarchive, T = myclass]:
test_serializable.cpp:147: instantiated from here
/usr/include/boost/archive/detail/oserializer.hpp:131: error: invalid 
use of undefined type struct 
boost::serialization::extended_type_info_null<myclass>
/usr/include/boost/serialization/type_info_implementation.hpp:26: error: 
declaration of struct 
boost::serialization::extended_type_info_null<myclass>
/usr/include/boost/archive/detail/oserializer.hpp:132: error: invalid 
use of undefined type struct 
boost::serialization::extended_type_info_null<myclass>
/usr/include/boost/serialization/type_info_implementation.hpp:26: error: 
declaration of struct 
boost::serialization::extended_type_info_null<myclass>
/usr/include/boost/archive/detail/oserializer.hpp: In constructor 
boost::archive::detail::oserializer<Archive, T>::oserializer() [with 
Archive = boost::archive::text_oarchive, T = std::vector<int, 
std::allocator<int> >]:
/usr/include/boost/archive/detail/oserializer.hpp:135: instantiated from 
static boost::archive::detail::oserializer<Archive, T>& 
boost::archive::detail::oserializer<Archive, T>::instantiate() [with 
Archive = boost::archive::text_oarchive, T = std::vector<int, 
std::allocator<int> >]
/usr/include/boost/archive/detail/oserializer.hpp:264: instantiated from 
static void boost::archive::detail::save_non_pointer_type<Archive, 
T>::save_standard::invoke(Archive&, const T&) [with Archive = 
boost::archive::text_oarchive, T = std::vector<int, std::allocator<int> >]
/usr/include/boost/archive/detail/oserializer.hpp:273: instantiated from 
static void boost::archive::detail::save_non_pointer_type<Archive, 
T>::save_conditional::invoke(Archive&, const T&) [with Archive = 
boost::archive::text_oarchive, T = std::vector<int, std::allocator<int> >]
/usr/include/boost/archive/detail/oserializer.hpp:322: instantiated from 
static void boost::archive::detail::save_non_pointer_type<Archive, 
T>::invoke(Archive&, const T&) [with Archive = 
boost::archive::text_oarchive, T = std::vector<int, std::allocator<int> >]
/usr/include/boost/archive/detail/oserializer.hpp:536: instantiated from 
void boost::archive::save(Archive&, const T&) [with Archive = 
boost::archive::text_oarchive, T = std::vector<int, std::allocator<int> >]
/usr/include/boost/archive/basic_text_oarchive.hpp:78: instantiated from 
void boost::archive::basic_text_oarchive<Archive>::save_override(T&, 
int) [with T = const std::vector<int, std::allocator<int> >, 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 = const std::vector<int, std::allocator<int> >, Archive = 
boost::archive::text_oarchive]
/usr/include/boost/archive/detail/interface_oarchive.hpp:86: 
instantiated from Archive& 
boost::archive::detail::interface_oarchive<Archive>::operator&(T&) [with 
T = std::vector<int, std::allocator<int> >, Archive = 
boost::archive::text_oarchive]
test_serializable.cpp:73: instantiated from void 
myclass2::serialize(Archive&, unsigned int) [with Archive = 
boost::archive::text_oarchive]
/usr/include/boost/serialization/access.hpp:109: instantiated from 
static void boost::serialization::access::serialize(Archive&, T&, 
unsigned int) [with Archive = boost::archive::text_oarchive, T = myclass2]
/usr/include/boost/serialization/serialization.hpp:81: instantiated from 
void boost::serialization::serialize(Archive&, T&, unsigned int) [with 
Archive = boost::archive::text_oarchive, T = myclass2]
/usr/include/boost/serialization/serialization.hpp:140: instantiated 
from void boost::serialization::serialize_adl(Archive&, T&, unsigned 
int) [with Archive = boost::archive::text_oarchive, T = myclass2]
/usr/include/boost/archive/detail/oserializer.hpp:148: instantiated from 
void boost::archive::detail::oserializer<Archive, 
T>::save_object_data(boost::archive::detail::basic_oarchive&, const 
void*) const [with Archive = boost::archive::text_oarchive, T = myclass2]
test_serializable.cpp:147: instantiated from here
/usr/include/boost/archive/detail/oserializer.hpp:107: error: incomplete 
type boost::serialization::extended_type_info_null<std::vector<int, 
std::allocator<int> > > used in nested name specifier
/usr/include/boost/archive/detail/iserializer.hpp: In constructor 
boost::archive::detail::iserializer<Archive, T>::iserializer() [with 
Archive = boost::archive::text_iarchive, T = std::vector<int, 
std::allocator<int> >]:
/usr/include/boost/archive/detail/iserializer.hpp:146: instantiated from 
static boost::archive::detail::iserializer<Archive, T>& 
boost::archive::detail::iserializer<Archive, T>::instantiate() [with 
Archive = boost::archive::text_iarchive, T = std::vector<int, 
std::allocator<int> >]
/usr/include/boost/archive/detail/iserializer.hpp:375: instantiated from 
static void boost::archive::detail::load_non_pointer_type<Archive, 
T>::load_standard::invoke(Archive&, T&) [with Archive = 
boost::archive::text_iarchive, T = std::vector<int, std::allocator<int> >]
/usr/include/boost/archive/detail/iserializer.hpp:382: instantiated from 
static void boost::archive::detail::load_non_pointer_type<Archive, 
T>::load_conditional::invoke(Archive&, T&) [with Archive = 
boost::archive::text_iarchive, T = std::vector<int, std::allocator<int> >]
/usr/include/boost/archive/detail/iserializer.hpp:425: instantiated from 
static void boost::archive::detail::load_non_pointer_type<Archive, 
T>::invoke(Archive&, T&) [with Archive = boost::archive::text_iarchive, 
T = std::vector<int, std::allocator<int> >]
/usr/include/boost/archive/detail/iserializer.hpp:572: instantiated from 
void boost::archive::load(Archive&, T&) [with Archive = 
boost::archive::text_iarchive, T = std::vector<int, std::allocator<int> >]
/usr/include/boost/archive/basic_text_iarchive.hpp:64: instantiated from 
void boost::archive::basic_text_iarchive<Archive>::load_override(T&, 
int) [with T = std::vector<int, std::allocator<int> >, Archive = 
boost::archive::text_iarchive]
/usr/include/boost/archive/text_iarchive.hpp:64: instantiated from void 
boost::archive::text_iarchive_impl<Archive>::load_override(T&, int) 
[with T = std::vector<int, std::allocator<int> >, Archive = 
boost::archive::text_iarchive]
/usr/include/boost/archive/detail/interface_iarchive.hpp:76: 
instantiated from Archive& 
boost::archive::detail::interface_iarchive<Archive>::operator>>(T&) 
[with T = std::vector<int, std::allocator<int> >, Archive = 
boost::archive::text_iarchive]
/usr/include/boost/archive/detail/interface_iarchive.hpp:83: 
instantiated from Archive& 
boost::archive::detail::interface_iarchive<Archive>::operator&(T&) [with 
T = std::vector<int, std::allocator<int> >, Archive = 
boost::archive::text_iarchive]
test_serializable.cpp:73: instantiated from void 
myclass2::serialize(Archive&, unsigned int) [with Archive = 
boost::archive::text_iarchive]
/usr/include/boost/serialization/access.hpp:109: instantiated from 
static void boost::serialization::access::serialize(Archive&, T&, 
unsigned int) [with Archive = boost::archive::text_iarchive, T = myclass2]
/usr/include/boost/serialization/serialization.hpp:81: instantiated from 
void boost::serialization::serialize(Archive&, T&, unsigned int) [with 
Archive = boost::archive::text_iarchive, T = myclass2]
/usr/include/boost/serialization/serialization.hpp:140: instantiated 
from void boost::serialization::serialize_adl(Archive&, T&, unsigned 
int) [with Archive = boost::archive::text_iarchive, T = myclass2]
/usr/include/boost/archive/detail/iserializer.hpp:160: instantiated from 
void boost::archive::detail::iserializer<Archive, 
T>::load_object_data(boost::archive::detail::basic_iarchive&, void*, 
unsigned int) const [with Archive = boost::archive::text_iarchive, T = 
myclass2]
test_serializable.cpp:147: instantiated from here
/usr/include/boost/archive/detail/iserializer.hpp:114: error: incomplete 
type boost::serialization::extended_type_info_null<std::vector<int, 
std::allocator<int> > > used in nested name specifier
/usr/include/boost/archive/detail/iserializer.hpp: In member function 
bool boost::archive::detail::iserializer<Archive, T>::is_polymorphic() 
const [with Archive = boost::archive::text_iarchive, T = 
std::vector<int, std::allocator<int> >]:
test_serializable.cpp:147: instantiated from here
/usr/include/boost/archive/detail/iserializer.hpp:142: error: invalid 
use of undefined type struct 
boost::serialization::extended_type_info_null<std::vector<int, 
std::allocator<int> > >
/usr/include/boost/serialization/type_info_implementation.hpp:26: error: 
declaration of struct 
boost::serialization::extended_type_info_null<std::vector<int, 
std::allocator<int> > >
/usr/include/boost/archive/detail/iserializer.hpp:143: error: invalid 
use of undefined type struct 
boost::serialization::extended_type_info_null<std::vector<int, 
std::allocator<int> > >
/usr/include/boost/serialization/type_info_implementation.hpp:26: error: 
declaration of struct 
boost::serialization::extended_type_info_null<std::vector<int, 
std::allocator<int> > >
/usr/include/boost/archive/detail/oserializer.hpp: In member function 
bool boost::archive::detail::oserializer<Archive, T>::is_polymorphic() 
const [with Archive = boost::archive::text_oarchive, T = 
std::vector<int, std::allocator<int> >]:
test_serializable.cpp:147: instantiated from here
/usr/include/boost/archive/detail/oserializer.hpp:131: error: invalid 
use of undefined type struct 
boost::serialization::extended_type_info_null<std::vector<int, 
std::allocator<int> > >
/usr/include/boost/serialization/type_info_implementation.hpp:26: error: 
declaration of struct 
boost::serialization::extended_type_info_null<std::vector<int, 
std::allocator<int> > >
/usr/include/boost/archive/detail/oserializer.hpp:132: error: invalid 
use of undefined type struct 
boost::serialization::extended_type_info_null<std::vector<int, 
std::allocator<int> > >
/usr/include/boost/serialization/type_info_implementation.hpp:26: error: 
declaration of struct 
boost::serialization::extended_type_info_null<std::vector<int, 
std::allocator<int> > >
make[4]: *** [test_serializable.o] Error 1
make[4]: Leaving directory `/home/alecg/Software/ivlab3/objects/src/tests'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/alecg/Software/ivlab3/objects/src/tests'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/alecg/Software/ivlab3/objects/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/alecg/Software/ivlab3/objects'
make: *** [all] Error 2
alec