#include #include #include #include #include void usage(const char * program_name){ std::cout << "usage:"; std::cout << program_name << " filename" << std::endl; } int main(int argc, char *argv[]){ if(argc != 2){ std::cout << "invalid number of arguments" << std::endl; usage(argv[0]); return 1; } std::filebuf fb; fb.open( argv[1], std::ios_base::binary | std::ios_base::in | std::ios_base::out ); if(!fb.is_open()){ std::cout << argv[1] << " failed to open" << std::endl; return 1; } boost::archive::binary_iarchive ia(fb); boost::archive::library_version_type lvt = ia.get_library_version(); if(boost::archive::library_version_type(6) != lvt){ std::cout << "library version not equal to six" << std::endl; return 1; } lvt = boost::archive::library_version_type(7); fb.pubseekpos(26, std::ios_base::out); fb.sputn(reinterpret_cast(& lvt), sizeof(lvt)); fb.close(); }