Boost logo

Boost Users :

From: Robert Ramey (ramey_at_[hidden])
Date: 2005-10-22 19:41:22


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_at_[hidden]> wrote in message news:435ab0bf.7f93c92a.6d94.50a5_at_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_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