
Just remove the close(). This will permit the xml_archive destructor to be called while the stream is still open. The xml destructor adds some final tags to make a valid xml file. Robert Ramey "Piyush Kapadia" <piyush.kapadia@gmail.com> wrote in message news:435ab0bf.7f93c92a.6d94.50a5@mx.gmail.com... In following function code, ofs.close() results in failure to write last end tag of XML archive, apparently because stream is closed before destructor is executed, so when do we execute ofs.close() ? ofs.flush does not help either or shell we skip executing any flush or close and just return from function ? template<class T> void Serialize(const char * filename) { std::ofstream ofs(filename); assert(ofs.good()); boost::archive::xml_oarchive oa(ofs); oa << BOOST_SERIALIZATION_NVP(T); ofs.close(); } ------------------------------------------------------------------------------ _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users