|
Boost Users : |
From: Sebastien Gerega (seb_at_[hidden])
Date: 2005-09-02 02:01:48
Can anyone tell me what is wrong with the following code:
#include <iomanip>
#include <iostream>
#include <fstream>
#include <string>
#include <boost/archive/tmpdir.hpp>
#include <boost/archive/text_iarchive.hpp>
#include <boost/archive/text_oarchive.hpp>
#include <boost/serialization/base_object.hpp>
#include <boost/serialization/utility.hpp>
#include <boost/serialization/list.hpp>
#include <boost/serialization/string.hpp>
*class* ResData{
*friend* *class* boost::serialization::access;
*friend* std::ostream&
*operator*<<(std::ostream &os, const ResData& rD);
*private*:
std::string resName;
int seqNum;
int insNum;
float sAS;
*public*:
ResData();
ResData(std::string, int, int);
std::string getResName() const
{ *return* resName;}
int getSeqNum() const
{ *return* seqNum;}
int getInsNum() const
{ *return* insNum;}
float getSAS() const
{ *return* sAS;}
void setSAS(float sASP)
{ sAS = sASP;}
*template*<*class* Archive>
void serialize(Archive&, const unsigned int);
};
std::ostream&
*operator*<<(std::ostream& os, const ResData& rD){
*return* os << rD.getResName() << rD.getSeqNum() << rD.getInsNum() << rD.getSAS();
}
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;
oFSBS.close();
}
I get the following error upon compilation:
/usr/include/boost/archive/detail/oserializer.hpp: In function void
boost::archive::save(Archive&, T&) [with Archive =
boost::archive::text_oarchive, T = ResData]:
/usr/include/boost/archive/basic_text_oarchive.hpp:78: instantiated from
void boost::archive::basic_text_oarchive<Archive>::save_override(T&,
int) [with T = ResData, Archive = boost::archive::text_oarchive]
/usr/include/boost/archive/detail/interface_oarchive.hpp:85:
instantiated from Archive&
boost::archive::detail::interface_oarchive<Archive>::operator<<(T&)
[with T = ResData, Archive = boost::archive::text_oarchive]
test.cpp:54: instantiated from here
/usr/include/boost/archive/detail/oserializer.hpp:566: error: invalid
application of sizeof to incomplete type
boost::STATIC_ASSERTION_FAILURE<false
I am running FC4 with gcc4.0.1
thanks,
Sebastien
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