export.hpp and BOOST_CLASS_EXPORT_GUID

Hi @all I have a question to BOOST_CLASS_EXPORT_GUID(...) We have a lot of (derived) classes and want to register them by using BOOST_CLASS_EXPORT_GUID(...). Right now we do it like this: *** "main.cpp" *** ... #include "./../RCFExportForSerializedBasePtr.h" ... int main() { ... } *** "RCFExportForSerializedBasePtr.h" *** #include <boost/serialization/export.hpp> BOOST_CLASS_EXPORT_GUID(GbObject2D,"GbObject2D") BOOST_CLASS_EXPORT_GUID(GbCircle2D,"GbCircle2D") BOOST_CLASS_EXPORT_GUID(GbRectangle2D,"GbRectangle2D") BOOST_CLASS_EXPORT_GUID(AMR2DInteractor,"AMR2DInteractor") BOOST_CLASS_EXPORT_GUID(D2Q9AMRInteractor,"D2Q9AMRInteractor") ... But what we want to have the macro BOOST_CLASS_EXPORT_GUID(...) at the end of the header file of the derived class. That makes a lot of things much more easy. We tried that half a year ago and it doesn't work (we got errors, but I cannot say which one right now). Is this possible in gernerell? If what do I have to consider? "... For this implementaton to function, the header file export.hpp has to come after all the archive header files ..." (source: http://www.cs.brown.edu/~jwicks/boost/libs/serialization/doc/special.html) Does that mean that I only have to inlcude all archive header, then export.hpp and then the BOOST_CLASS_EXPORT_GUID can follow? Like that: *** inlcudeMe.h *** #include <boost/archive/text_oarchive.hpp> #include <boost/archive/text_iarchive.hpp> #include <boost/archive/binary_oarchive.hpp> #include <boost/archive/binary_iarchive.hpp> #include <boost/serialization/export.hpp> *** GbCircle2D.h *** #include " inlcudeMe.h" ... (declaration of GbCircle2D) BOOST_CLASS_EXPORT_GUID(GbCircle2D,"GbCircle2D") *** GbRectangle2D.h *** #include " inlcudeMe.h" ... (declaration of GbRectangle2D) BOOST_CLASS_EXPORT_GUID(GbRectangle2D," GbRectangle2D ") *** main.cpp *** ... #include "./GbCircle2D.h" #include "./ GbRectangle2D.h" ... int main() { ... } Best regards, SirAnn ______________________________________ iRMB - Institute for Computational Modeling in Civil Engineering TU Braunschweig Pockelsstr. 3 (9th Floor) D-38106, Braunschweig, Germany phone +49 531/391-7595 fax +49 531/391-7599 email freud@irmb.tu-bs.de web www.irmb.tu-bs.de

Sören Freudiger wrote:
But what we want to have the macro BOOST_CLASS_EXPORT_GUID(...) at the end of the header file of the derived class. That makes a lot of things much more easy. We tried that half a year ago and it doesn't work (we got errors, but I cannot say which one right now).
Is this possible in gernerell? If what do I have to consider?
This was the way I intended that it be used.
"... For this implementaton to function, the header file export.hpp has to come after all the archive header files ..."
There was an issue with header ordering that D. Abrahams has fixed in the 1.34. I don't know if that was the problem. But if it was, then the newer version might help. Robert Ramey
participants (2)
-
Robert Ramey
-
Sören Freudiger