Boost logo

Boost Users :

From: Robert Ramey (ramey_at_[hidden])
Date: 2005-09-26 22:15:35


I just changed

template<class Archive, class T>
inline void save(Archive& ar, derived<T>& obj, const unsigned int version)
{

to
template<class Archive, class T>
inline void save(Archive& ar, const nderived<T>& obj, const unsigned int
version)
{

at line # 91,

and I removed the l // from line #85

compiled and ran with VC 7.1 Seemed to work find. the output was:

------ Build started: Project: test_zexp, Configuration: Debug
runtime-dynamic text_archive Win32 ------
Linking...
Creating library
c:\BoostMainCVS\libs\serialization\vc7ide\../../../bin/boost/libs/serialization/test/test_zexp_text_archive.test/vc-7_1/debug/threading-multi//test_zexp.lib
and object
c:\BoostMainCVS\libs\serialization\vc7ide\../../../bin/boost/libs/serialization/test/test_zexp_text_archive.test/vc-7_1/debug/threading-multi//test_zexp.exp
run test_zexp with Debug runtime-dynamic text_archive
base: Save
derived<T>::Serialize
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE boost_serialization>
<boost_serialization signature="serialization::archive" version="3">
<originalObject class_id="0" tracking_level="0" version="0">
<temp>100</temp>
</originalObject>

which looks correct to me.

Robert Ramey

"Pyush Agrawal" <pyush.agrawal_at_[hidden]> wrote in message
news:f7a7f9d1050926160647c296ab_at_mail.gmail.com...
I had tried putting 'const' in the save function header. The code
compilation fails with "boost::STATIC_ASSERTION_FAILURE<x>" at the
"save_override" function in "basic_xml_oarchive.hpp".

I tried "BOOST_SERIALIZATION_BASE_OBJECT_NVP(obj)" and
"boost::serialization::base_object< <base<T> >(obj)" and I am not able to
compile the source code. Base object serialization macros are not able to
deduce the template argument list.

Pyush

On 9/26/05, Pyush Agrawal <pyush.agrawal_at_[hidden]> wrote:
Hi,
  I am relatively a new to Boost serialization classes. I am trying to
serialize a derived template class.

template<class T> class base {};
tempate<class T> class derived : public base<T> {};

I am trying to serialize 'derived' and have tried many different things. I
am unable to serialize the inherited template classes.
For some reason the code calls
(1) 'derived::Serialize'
(2) 'base::Save'
and never executes 'derived:: Save' and doesnot serialize the 'derived'
object properly.

I am attaching the source code (SerializeTemplates.cpp) and the
output(output.txt) of the program.
I am using MSVC7.1, debug mode, Boost 1.33, Spirit 1.8
It will be great, if somebody could point out what I am doing wrong.
Thanks,
Pyush

_______________________________________________
Boost-users mailing list
Boost-users_at_[hidden]
http://lists.boost.org/mailman/listinfo.cgi/boost-users


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