|
Boost : |
From: Oleg Abrosimov (beholder_at_[hidden])
Date: 2005-12-18 23:46:42
Hello again
I've discovered one more problem.
Commented code bellow doesn't compile, because of private
inheritance. I don't think that it is a bug, but just
limitation of the current implementation. But it limits use of
C++, so, if I want to use boost::serialization library I don't
allowed to use private inheritance. I don't think that it is
very good :)
Anyway, if it can not be fixed easily, this limitation should
be explicitly stated in docs, or in library's code, that
compiler error points to.
Best,
Oleg Abrosimov
#include <boost/archive/text_iarchive.hpp>
#include <boost/archive/text_oarchive.hpp>
#include <boost/serialization/base_object.hpp>
#include <boost/serialization/utility.hpp>
#include <boost/serialization/list.hpp>
#include <list>
//class my_list1 :
// private std::list<int>
//{
// friend class boost::serialization::access;
// template<class Archive>
// void serialize(Archive &ar, const unsigned int version)
// {
// save/load base class information
// ar & boost::serialization::base_object< std::list<int>
>(*this);
// }
//};
//
//void save(my_list1 const& lst, const char* const filename)
//{
// std::ofstream ofs(filename);
// boost::archive::text_oarchive oa(ofs);
// oa << lst;
//}
class my_list2 :
public std::list<int>
{
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive &ar, const unsigned int version)
{
// save/load base class information
ar & boost::serialization::base_object< std::list<int>
>(*this);
}
};
void save(my_list2 const& lst, const char* const filename)
{
std::ofstream ofs(filename);
boost::archive::text_oarchive oa(ofs);
oa << lst;
}
class my_list3
{
std::list<int> m_lst;
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive &ar, const unsigned int version)
{
ar & m_lst;
}
};
void save(my_list3 const& lst, const char* const filename)
{
std::ofstream ofs(filename);
boost::archive::text_oarchive oa(ofs);
oa << lst;
}
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk