|
Boost-Commit : |
From: ramey_at_[hidden]
Date: 2007-11-29 00:00:12
Author: ramey
Date: 2007-11-29 00:00:11 EST (Thu, 29 Nov 2007)
New Revision: 41455
URL: http://svn.boost.org/trac/boost/changeset/41455
Log:
gcc, vc 7.1 and vc8.0 passing all tests !!!
Text files modified:
branches/serialization_next_release/boost/libs/serialization/doc/archive_reference.html | 31 +++++++++++++++----------------
1 files changed, 15 insertions(+), 16 deletions(-)
Modified: branches/serialization_next_release/boost/libs/serialization/doc/archive_reference.html
==============================================================================
--- branches/serialization_next_release/boost/libs/serialization/doc/archive_reference.html (original)
+++ branches/serialization_next_release/boost/libs/serialization/doc/archive_reference.html 2007-11-29 00:00:11 EST (Thu, 29 Nov 2007)
@@ -226,7 +226,9 @@
all data objects.
<li>Addressing any of the above may generate more issues to be addressed.
<li>The archives included with library are all templates which use a
- <code style="white-space: normal">stream</code> as a template parameter rather than simple classes.
+ <code style="white-space: normal">stream</code> or
+ <code style="white-space: normal">streambuf</code>
+ as a template parameter rather than simple classes.
Combined with the above, even more issues arise with non-conforming compilers.
</ul>
The attached <a target="class_diagram" href="class_diagram.html">class diagram</a>
@@ -241,17 +243,15 @@
<ul>
<li>Instances of a derived class are serialized through a base class pointer.
<li>Such instances are not "registered" neither implicitly nor explicitly. That
- is, the macro <code style="white-space: normal">BOOT_CLASS_EXPORT</code> is used to instantiate the serialization
- code for the included archives.
+ is, the macro <code style="white-space: normal">BOOT_CLASS_EXPORT</code> is used
+ to instantiate the serialization code for the included archives.
</ul>
-The problem here is that BOOT_CLASS_EXPORT only generates code for those archives
-included with the library - not those added subsequently. To generate code for
-newly created archive classes, the following should be used.
+
+To make this work, the following should be included after the archive
+class definition.
<pre><code>
-#define BOOST_ARCHIVE_CUSTOM_OARCHIVE_TYPES trivial_oarchive
-#define BOOST_ARCHIVE_CUSTOM_IARCHIVE_TYPES trivial_iarchive
+#define BOOST_SERIALIZATION_REGISTER_ARCHIVE(Archive)
</code></pre>
-before <code style="white-space: normal">BOOST_CLASS_EXPORT</code> is invoked for any serializable class.
Failure to do this will not inhibit the program from compiling, linking
and executing properly - except in one case. If an instance of a derived
class is serialized through a pointer to its base class, the program
@@ -259,8 +259,7 @@
<a href="exceptions.html#unregistered_class"><code style="white-space: normal">unregistered_class</code></a>
exception.
<p>
-Only one of the above statements is permitted, However, any number of new archive
-classes can be specified as list separated by commas.
+
<h4><a name="testing">Testing</h4>
Exhaustive testing of the library requires testing the different aspects of object
@@ -302,16 +301,16 @@
#define TEST_STREAM_FLAGS (std::ios_base::openmode)0
</code></pre>
-To test a new archive, for example, portable binary archives, make a
-header file <code style="white-space: normal">portable_binary_archive.hpp</code>
+To test a new archive, for example, portable binary archives, with the gcc compiler,
+make a header file <code style="white-space: normal">portable_binary_archive.hpp</code>
and invoke <code style="white-space: normal">bjam</code> with
<pre><code>
-sBOOST_ARCHIVE_LIST=portable_binary_archive.hpp
</code></pre>
-This process in encapsulated in the shell script
-<code style="white-space: normal">run_archive_test</code> whose command line is
+This process in encapsulated in the shell or cmd script
+<code style="white-space: normal">library_test</code> whose command line is
<pre><code>
-run_archive_test <test header file> <toolset> [<boost root>] [<target directory>]
+library_test --toolset=gcc -sBOOST_ARCHIVE_LIST=portable_binary_archive.hpp
</code></pre>
<h3><a name="polymorphic">Polymorphic Archives</a></h3>
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk