Error using boost_serialization
Can anyone tell me what is wrong with the following code:
#include <iomanip>
#include <iostream>
#include <fstream>
#include <string>
#include
Sebastien Gerega wrote:
int main(){
std::ofstream oFSBS("/home/Seb/Code/testData/results.dat"); boost::archive::text_oarchive oA(oFSBS); ResData temp("TEST", 1, 1); temp.setSAS(5555); oA << temp;
You need to use const ResData& work_around = temp; oA << temp; For 1.33, Robert decided that you can't save non-const objects like this. Many objected, but we failed to persuade him. - Volodya
Ok thanks that helped. Now I got another problem. I can't put the std::ostream& *operator*<<(std::ostream& os, const ResData& rD){ *return* os << rD.getResName() << rD.getSeqNum() << rD.getInsNum() << rD.getSAS(); } in ResData.h because that results in multiple definition errors. But when I put it in ResData.cpp I get the following error: /usr/include/boost/serialization/access.hpp:109: undefined reference to `void ResData::serializeboost::archive::text_oarchive(boost::archive::text_oarchive&, unsi how do I get around this problem? thanks again, Sebastien Gerega Vladimir Prus wrote:
Sebastien Gerega wrote:
int main(){
std::ofstream oFSBS("/home/Seb/Code/testData/results.dat"); boost::archive::text_oarchive oA(oFSBS); ResData temp("TEST", 1, 1); temp.setSAS(5555); oA << temp;
You need to use
const ResData& work_around = temp; oA << temp;
For 1.33, Robert decided that you can't save non-const objects like this. Many objected, but we failed to persuade him.
- Volodya
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
Sebastien Gerega wrote:
Ok thanks that helped. Now I got another problem. I can't put the
std::ostream& *operator*<<(std::ostream& os, const ResData& rD){ *return* os << rD.getResName() << rD.getSeqNum() << rD.getInsNum() << rD.getSAS(); }
in ResData.h because that results in multiple definition errors.
It should be inline.
But when I put it in ResData.cpp I get the following error: /usr/include/boost/serialization/access.hpp:109: undefined reference to `void
ResData::serializeboost::archive::text_oarchive(boost::archive::text_oarchive&,
unsi
The code you previously posted did not contain definition of ResData::serialize, only declaration. You need to define it, in the header file. - Volodya
participants (2)
-
Sebastien Gerega
-
Vladimir Prus