Boost serializer: incomplete type error reported

Hello, I have an error that is puzzling me. I have defined serialization of several custom classes, and everything worked perfectly until we've changed to a new Linux OS and had to reinstall Boost. Now the program doesn't compile and the error given is: error: incomplete type 'boost::serialization::extended_type_info_null<SetOfRules>' used in nested name specifier I don't really understand why it says there is an incomplete type when there used to be no errors. The same error happens with all the classes where I've defined serialization. The offending code for the above error message is: void save(const SetOfRules &sor, const string &fileName) { std::ofstream fout(fileName.c_str()); boost::archive::text_oarchive oa(fout); oa << sor; // <== Here is the error fout.close(); } // save Currently I'm using gcc version 4.0.4 20060507 (prerelease) (Debian 4.0.3-3) Can anybody help? Diego -- Do you want to know what is going on in Language Technology in Australia and New Zealand? Join ALTA -- http://www.alta.asn.au/ This message is intended for the addressee named and may contain confidential information. If you are not the intended recipient, please delete it and notify the sender. Views expressed in this message are those of the individual sender, and are not necessarily the views of Macquarie University. --------------------------------------------------------------------- Diego MOLLA ALIOD diego@ics.mq.edu.au Department of Computing http://www.ics.mq.edu.au/~diego Macquarie University

On Mon, 19 Jun 2006 19:12:30 +1000, Diego Molla
Hello,
I have an error that is puzzling me. I have defined serialization of several custom classes, and everything worked perfectly until we've changed to a new Linux OS and had to reinstall Boost. Now the program doesn't compile and the error given is:
error: incomplete type 'boost::serialization::extended_type_info_null<SetOfRules>' used in nested name specifier
I don't really understand why it says there is an incomplete type when there used to be no errors. The same error happens with all the classes where I've defined serialization.
I'm not too much into the latest gcc developments (certainly others will give a more accurate reply) but it looks like a two-phase lookup issue: at the time your function is parsed SetOfRules is actually incomplete, but the old gcc version you had didn't diagnose it and delayed analisys to instantiation time. This is just my feeling. You might try moving SetOfRules' #include before. --Gennaro.

what version of boost are you using? Robert Ramey Diego Molla wrote:
Hello,
I have an error that is puzzling me. I have defined serialization of several custom classes, and everything worked perfectly until we've changed to a new Linux OS and had to reinstall Boost. Now the program doesn't compile and the error given is:
error: incomplete type 'boost::serialization::extended_type_info_null<SetOfRules>' used in nested name specifier
I don't really understand why it says there is an incomplete type when there used to be no errors. The same error happens with all the classes where I've defined serialization.
The offending code for the above error message is:
void save(const SetOfRules &sor, const string &fileName) { std::ofstream fout(fileName.c_str()); boost::archive::text_oarchive oa(fout); oa << sor; // <== Here is the error fout.close(); } // save
Currently I'm using gcc version 4.0.4 20060507 (prerelease) (Debian 4.0.3-3)
Can anybody help?
Diego
participants (3)
-
Diego Molla
-
Gennaro Prota
-
Robert Ramey