i have done in the following way.. even am getting some errors, did i miss any of the headers, or added extra(added extra for sure). Any suggestions will be accepted #include <boost/serialization/utility.hpp> #include <boost/serialization/collection_traits.hpp> #include <boost/serialization/serialization.hpp> #include <boost/serialization/base_object.hpp> #include <fstream> #include <boost/archive/text_iarchive.hpp> #include <boost/archive/text_oarchive.hpp> #include <boost/serialization/assume_abstract.hpp> class fd; class base: class derived { ..... fd *ptr; ..... friend class boost::serialization::access; template<class Archive> void serialize(Archive & ar, const unsigned int file_version) { (void) file_version; ar & ptr; ar & boost::serialization::base_object<derived>(*this); } }; //end of class base Version::1.36.0 compliler: g++ 4.1.1.... i am getting a error : error: forward declaration of 'struct fd' /boost_1_36_0/include/boost-1_36/boost/serialization/access.hpp:109: error: inva lid use of undefined type 'struct /project/wipro_virtutech_nobackup/users/niranjan/project_new/boost_1_36_0/include/boost-1_36/boost/serialization/extended_type_info_typeid.hpp:117: note: neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined.