
I haven't found any documentation on the header bits of the archive formats supported by boost::serialization. These are added as default when I construct binary and text formats. I am especially interested in skipping these headers completely in my application, that is serializing a char should only result in one byte outputted to stream. Does the headers basic_binary_[io]archive.hpp play any roles in this case? I have tried to use them instead by I got some strange error messages so these are commented out here. Thanks in advance, Nordlöw Compileable sample code follows: #include <fstream> // #include <boost/archive/basic_text_iarchive.hpp> // #include <boost/archive/basic_text_oarchive.hpp> #include <boost/archive/text_iarchive.hpp> #include <boost/archive/text_oarchive.hpp> #include <boost/archive/binary_iarchive.hpp> #include <boost/archive/binary_oarchive.hpp> class gps_position { public: gps_position() {}; gps_position(int d, size_t m, float s) : degrees(d), minutes(m), seconds(s) {} private: friend class boost::serialization::access; template<class Archive> void serialize(Archive & ar, const unsigned int version) { ar & degrees & minutes & seconds; } int degrees; size_t minutes; float seconds; }; template<class OA, class IA> static void test(const gps_position & pos, const char * filename) { std::ofstream ofs(filename); // create and open a character archive for output { OA oa(ofs); oa << pos; } gps_position newg; { std::ifstream ifs(filename); // create and open an archive for input IA ia(ifs); ia >> newg; } } int main() { const gps_position p(35, 59, 24.567f); // test<boost::archive::basic_text_oarchive, // boost::archive::basic_text_iarchive>(p, "boost_serialization_basic_text_archive"); test<boost::archive::text_oarchive, boost::archive::text_iarchive>(p, "boost_serialization_text_archive"); test<boost::archive::binary_oarchive, boost::archive::binary_iarchive>(p, "boost_serialization_binary_archive"); return 0; }

Look into the documention for "no_header" switch on the archive constructor. Robert Ramey Per Nordlöw wrote:
I haven't found any documentation on the header bits of the archive formats supported by boost::serialization. These are added as default when I construct binary and text formats. I am especially interested in skipping these headers completely in my application, that is serializing a char should only result in one byte outputted to stream.
Does the headers basic_binary_[io]archive.hpp play any roles in this case? I have tried to use them instead by I got some strange error messages so these are commented out here.
Thanks in advance, Nordlöw
Compileable sample code follows:
#include <fstream>
// #include <boost/archive/basic_text_iarchive.hpp> // #include <boost/archive/basic_text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp> #include <boost/archive/text_oarchive.hpp>
#include <boost/archive/binary_iarchive.hpp> #include <boost/archive/binary_oarchive.hpp>
class gps_position { public: gps_position() {}; gps_position(int d, size_t m, float s) : degrees(d), minutes(m), seconds(s) {} private: friend class boost::serialization::access; template<class Archive> void serialize(Archive & ar, const unsigned int version) { ar & degrees & minutes & seconds; } int degrees; size_t minutes; float seconds; };
template<class OA, class IA> static void test(const gps_position & pos, const char * filename) { std::ofstream ofs(filename); // create and open a character archive for output { OA oa(ofs); oa << pos; }
gps_position newg; { std::ifstream ifs(filename); // create and open an archive for input IA ia(ifs); ia >> newg; } }
int main() { const gps_position p(35, 59, 24.567f);
// test<boost::archive::basic_text_oarchive, // boost::archive::basic_text_iarchive>(p, "boost_serialization_basic_text_archive");
test<boost::archive::text_oarchive, boost::archive::text_iarchive>(p, "boost_serialization_text_archive");
test<boost::archive::binary_oarchive, boost::archive::binary_iarchive>(p, "boost_serialization_binary_archive");
return 0; } _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
participants (2)
-
Per Nordlöw
-
Robert Ramey