diff --git a/doc/special.html b/doc/special.html index a3144df41..b9b854ee6 100644 --- a/doc/special.html +++ b/doc/special.html @@ -444,6 +444,17 @@
BOOST_CLASS_EXPORT_IMPLEMENT
in the class definition file.
+
+This makes the rule easy to follow but does not remove it. The definition
+file has to include the archive class headers itself, before
+BOOST_CLASS_EXPORT_IMPLEMENT
+is invoked, just as it would for
+BOOST_CLASS_EXPORT.
+A definition file which includes none of them instantiates no serialization
+code at all, and serializing a pointer to such a class then throws
+unregistered_class
+when the program is run.
+
This system has certain implications for placing code in static or shared
libraries. Placing BOOST_CLASS_EXPORT
diff --git a/doc/traits.html b/doc/traits.html
index 7f4e65f9a..cad624d45 100644
--- a/doc/traits.html
+++ b/doc/traits.html
@@ -247,8 +247,11 @@
BOOST_CLASS_EXPORT_IMPLEMENT(T)
in the file which defines (implements) the class T.
-This ensures that code for the derived class T will
-be explicitly instantiated.
+That instantiates the code for the archive classes whose headers the file
+includes, so the file has to include them before the macro is invoked.
+See
+Exporting Class Serialization
+for the details, and for what happens when it includes none of them.