diff --git a/doc/acknowledgments.html b/doc/acknowledgments.html index f200ab8f3..82e1abba1 100644 --- a/doc/acknowledgments.html +++ b/doc/acknowledgments.html @@ -20,7 +20,7 @@

C++ Boost

-

Serialization

+

Serialization

Acknowledgments

diff --git a/doc/archive_reference.html b/doc/archive_reference.html index ea8af27e4..d0ab60b29 100644 --- a/doc/archive_reference.html +++ b/doc/archive_reference.html @@ -19,7 +19,7 @@

C++ Boost

-

Serialization

+

Serialization

Archive Class Reference

@@ -74,7 +74,7 @@

Minimum Requirements

This archive will compile and execute with any types which implement the Serializable concept. For an example see - + demo_trivial_archive.cpp. Of course this program won't produce any output as it is. But it provides the starting point for a simple class which can be used to log formatted @@ -90,16 +90,16 @@

More Useful Archive Classes

Our archives have been factored into a tree of classes in order to minimize repetition of code. This is shown in the accompanying -class diagram. +class diagram. Any class which fulfills the following requirements will fit into this hierarchy and implement all the features we require. Deriving from -the base class +the base class common_oarchive.hpp provides all features we desire which are missing from trivial_oarchive above.


-
+
 #include <cstddef> // std::size_t
 #include <boost/archive/detail/common_oarchive.hpp>
 
@@ -213,15 +213,15 @@ 

Types used by the serialization library

for these types.

These are defined in -basic_archive.hpp. +basic_archive.hpp. All of these types have been assigned an -implementation level of +implementation level of primitive and are convertible to types such as int, unsigned int, etc. so that they have default implementations. This is illustrated by -basic_text_iarchive.hpp. +basic_text_iarchive.hpp. which relies upon the default. However, in some cases, overrides will have to be explicitly provided for these types. For an example see -basic_xml_iarchive.hpp. +basic_xml_iarchive.hpp.

In real practice, we probably won't be quite done. One or more of the following issues may need to be addressed: @@ -238,7 +238,7 @@

Types used by the serialization library

as a template parameter rather than simple classes. Combined with the above, even more issues arise with non-conforming compilers. -The attached class diagram +The attached class diagram shows the relationships between classes used to implement the serialization library.

A close examination of the archives included with the library illustrate @@ -349,31 +349,31 @@

Implementation

functions - no templates - that is equivalent to the standard templated one. This is shown in the accompanying -class diagram +class diagram

The accompanying demo program in files -demo_polymorphic.cpp, -demo_polymorphic_A.hpp, and -demo_polymorphic_A +demo_polymorphic.cpp, +demo_polymorphic_A.hpp, and +demo_polymorphic_A show how polymorphic archives are to be used. Note the following:

As can be seen in the -class diagram +class diagram and the header files, this implementation is just a composition of the polymorphic interface and the standard template driven implementation. This composition is accomplished by the templates -polymorphic_iarchive_route.hpp +polymorphic_iarchive_route.hpp and -polymorphic_oarchive_route.hpp +polymorphic_oarchive_route.hpp which redirect calls to the polymorphic archives to the specific archive. As these contain no code specific to the particular implementation archive, they can be used to create a polymorphic archive implementation from any functioning templated archive implementation. @@ -381,14 +381,14 @@

Implementation

As a convenience, small header files have been included which contain a typedef for a polymorphic implementation for each corresponding templated one. For example, the headers -polymorphic_text_iarchive.hpp +polymorphic_text_iarchive.hpp and -polymorphic_text_oarchive.hpp. +polymorphic_text_oarchive.hpp. contain the typedef for the polymorphic implementation of the standard text archive classes -text_iarchive.hpp +text_iarchive.hpp and -text_oarchive.hpp +text_oarchive.hpp respectively. All included polymorphic archives use the same naming scheme.

Usage

diff --git a/doc/archives.html b/doc/archives.html index d36801537..ca7cd6f59 100644 --- a/doc/archives.html +++ b/doc/archives.html @@ -13,7 +13,7 @@

C++ Boost

-

Serialization

+

Serialization

Archive Concepts

@@ -99,7 +99,7 @@

Valid Expressions

Special Considerations - Derived Pointers. The second syntax is included to permit this function to be called on non-conforming compilers when sa is a template argument. - For more information, see Template Invocation syntax + For more information, see Template Invocation syntax

sa.get_library_version() @@ -177,7 +177,7 @@

Valid Expressions

Special Considerations - Derived Pointers. The second syntax is included to permit this function to be called on non-conforming compilers when la is a template argument. - For more information, see Template Invocation syntax + For more information, see Template Invocation syntax

la.get_library_version() @@ -265,24 +265,24 @@

Archive Models

included in the code module containing the serialization code.

 // a portable text archive
-boost::archive::text_oarchive // saving
-boost::archive::text_iarchive // loading
+boost::archive::text_oarchive // saving
+boost::archive::text_iarchive // loading
 
 // a portable text archive using a wide character stream
 boost::archive::text_woarchive // saving
 boost::archive::text_wiarchive // loading
 
 // a portable XML archive
-boost::archive::xml_oarchive // saving
-boost::archive::xml_iarchive // loading
+boost::archive::xml_oarchive // saving
+boost::archive::xml_iarchive // loading
 
 // a portable XML archive which uses wide characters - use for utf-8 output
-boost::archive::xml_woarchive // saving
-boost::archive::xml_wiarchive // loading
+boost::archive::xml_woarchive // saving
+boost::archive::xml_wiarchive // loading
 
 // a non-portable native binary archive
-boost::archive::binary_oarchive // saving
-boost::archive::binary_iarchive // loading
+boost::archive::binary_oarchive // saving
+boost::archive::binary_iarchive // loading
 
 
 
-
-
+
 Serialization
-
-
-
-
 
-
-

Contents

- - -

-

-
Release Notes
-
Overview
-
-
Tutorial
-
- -
Reference
-
-
Archive Concepts -
-
Serializable Concept -
-
Special Considerations -
-
Archive Class Reference -
-
-
Implementation Notes -
-
Case Studies -
-
Other Classes -
- -
Tips and Tricks -
Rationale
-
- -
To Do
-
- -
History - -
Bibliography
-
Acknowledgments
-
-
+ +The contents are now the documentation home page. Automatic redirection +failed, please go to index.html. diff --git a/doc/dataflow.html b/doc/dataflow.html index bd4c13d86..4ae3b3010 100644 --- a/doc/dataflow.html +++ b/doc/dataflow.html @@ -19,7 +19,7 @@

C++ Boost

-

Serialization

+

Serialization

Dataflow Iterators

@@ -67,7 +67,7 @@

Motivation

Indeed, this seems to be exactly the kind of problem that iterator adaptors are intended to address. The Iterator Adaptor library already includes modules which can be configured to implement some of the operations above. For example, -included is +included is transform_iterator, which can be used to implement 6 bit integer => base64 code.

Dataflow Iterators

@@ -118,7 +118,7 @@

Dereferencing

way to write a remove_whitespace iterator is to increment past the initial whitespaces when the iterator is constructed. This will fail if the iterator passed to the constructor "points" to the end of a string. The - + filter_iterator is implemented in this way so it can't be used in our context. So, for implementation of this iterator, space removal is deferred until the iterator actually is dereferenced. @@ -138,41 +138,41 @@

Iterators Included in the Library

Dataflow iterators for the serialization library are all defined in the namespace boost::archive::iterators included here are:
-
+
base64_from_binary
transforms a sequence of integers to base64 text
-
+
binary_from_base64
transforms a sequence of base64 characters to a sequence of integers
-
+
insert_linebreaks
given a sequence, creates a sequence with newline characters inserted
-
+
mb_from_wchar
transforms a sequence of wide characters to a sequence of multi-byte characters
-
+
remove_whitespace
given a sequence of characters, returns a sequence with the white characters removed. This is a derivation from the boost::filter_iterator
-
+
transform_width
transforms a sequence of x bit elements into a sequence of y bit elements. This is a key component in iterators which translate to and from base64 text.
-
+
wchar_from_mb
transform a sequence of multi-byte characters in the current locale to wide characters.
-
+
xml_escape
escapes xml meta-characters from xml text
-
+
xml_unescape
unescapes xml escape sequences to create a sequence of normal text
@@ -183,9 +183,9 @@

Iterators Included in the Library

iterators, they are found in the namespace boost::archive::interators to avoid conflicts with the standard library versions.
-
+
istream_iterator
-
+
ostream_iterator
diff --git a/doc/derivation.html b/doc/derivation.html index 6c7279264..e8e769063 100644 --- a/doc/derivation.html +++ b/doc/derivation.html @@ -19,7 +19,7 @@

C++ Boost

-

Serialization

+

Serialization

Derivation from an Existing Archive

@@ -32,7 +32,7 @@

Log Archive

It may happen that one wants to create a new archive class by derivation from one of the included ones. Included is a sample program that shows how to derive a new archive from one of the ones included with the library. The first example is - + demo_log.cpp.

This derivation from the xml archive writes output in xml without the extra @@ -55,7 +55,7 @@

Log Archive

  • It is derived from xml_oarchive_impl NOT xml_oarchive
    As described in the comments in -xml_oarchive.hpp. +xml_oarchive.hpp. xml_oarchive really a shorthand name for xml_oarchive_impl<xml_oarchive>. So we should derive from xml_oarchive_impl<log_archive> rather @@ -101,7 +101,7 @@

    Log Archive

    friend class boost::serialization::save_access;
  • -
  • Reread Archive Internals. +
  • Reread Archive Internals. This describes the class hierarchy so that you know what to override.
  • Base class functions will usually need to be explicitly invoked. We commonly specialize the function name save_override diff --git a/doc/exception_safety.html b/doc/exception_safety.html index 46a53c019..d0ece8ea6 100644 --- a/doc/exception_safety.html +++ b/doc/exception_safety.html @@ -19,7 +19,7 @@

    C++ Boost

    -

    Serialization

    +

    Serialization

    Exception Safety

    @@ -57,7 +57,7 @@

    Exception Safety

    no pointers are left invalid. The object's destructor should be able to delete any other existing objects in the normal manner without problem. - test_delete_pointer.cpp + test_delete_pointer.cpp illustrates this case.

  • class contains one or more referenced pointers

    @@ -88,7 +88,7 @@

    Exception Safety

    to delete referenced pointers so any dangling references will cause no harm. - demo_exception.cpp + demo_exception.cpp is a program that illustrates this case.

    diff --git a/doc/exceptions.html b/doc/exceptions.html index 2465e3e1b..9c55ac0c5 100644 --- a/doc/exceptions.html +++ b/doc/exceptions.html @@ -19,7 +19,7 @@

    C++ Boost

    -

    Serialization

    +

    Serialization

    Archive Exceptions

    @@ -45,9 +45,9 @@

    Archive Exceptions

    Archive operators can throw a boost::archive_exception object which can be caught by an application program. These exceptions are defined -in the files +in the files archive_exception.hpp -and +and basic_xml_archive.hpp.
    
     namespace boost {
    diff --git a/doc/extended_type_info.html b/doc/extended_type_info.html
    index e2fca7fee..ee3787897 100644
    --- a/doc/extended_type_info.html
    +++ b/doc/extended_type_info.html
    @@ -19,7 +19,7 @@
           

    C++ Boost

    -

    Serialization

    +

    Serialization

    extended_type_info

    @@ -68,13 +68,13 @@

    The problem with std::type_info

    Features

    - + extended_type_info is an implementation of std::type_info functionality with the following features:

    Generally, there will be one and only one -extended_type_info +extended_type_info instance created for each type. However, this is enforced only at the executable module level. That is, if a program includes some shared libraries or DLLS, there may be more than one instance of this class corresponding to a particular type. @@ -183,7 +183,7 @@

    Runtime Interface

    const char *get_key() const;
  • -Retrieves the key for extended_type_info +Retrieves the key for extended_type_info instance. If no key has been associated with the instance, then a NULL is returned.
    @@ -194,7 +194,7 @@

    Runtime Interface

    These functions are used to compare - + extended_type_info @@ -208,7 +208,7 @@

    Runtime Interface

    Construct a new instance of the type to which this - + extended_type_info @@ -240,7 +240,7 @@

    Runtime Interface

    Given a character string key or GUID, return the address of a -corresponding extended_type_info +corresponding extended_type_info object. @@ -249,7 +249,7 @@

    Requirements for an Implementation

    In order to be used by the serialization library, an implementation of extended_type_info, (referred to as ETI here), must be derived from - + extended_type_info @@ -320,14 +320,14 @@

    Requirements for an Implementation

    Models

    The serialization library includes two distinct -extended_type_info +extended_type_info implementations.

    -

    +

    extended_type_info_typeid

    is implemented in terms of the standard typeid(). It presumes that RTTI support is enabled by the compiler.

    -

    +

    extended_type_info_no_rtti

    is implemented in a way that doesn't rely on the existence RTTI. Instead, it requires that all polymorphic types be explicitly exported. @@ -344,8 +344,8 @@

    Models

    as described above.

    Example

    -The test program test_no_rtti -implements this function in terms of the +The test program test_no_rtti +implements this function in terms of the extended_type_info API above to return the export key associated with the class. This requires that non-abstract types be exported. It also demonstrates the inter-operability between two different implementations of @@ -408,7 +408,7 @@

    Requirements for Each Type

    A complete example of this can be found -here +here

    © Copyright Robert Ramey 2005-2009. Distributed under the Boost Software License, Version 1.0. (See diff --git a/doc/faq.html b/doc/faq.html index 2a575aa74..24375dcc3 100644 --- a/doc/faq.html +++ b/doc/faq.html @@ -22,7 +22,7 @@

    - Serialization

    + Serialization

    Tips and Tricks

    diff --git a/doc/headers.html b/doc/headers.html index 51426c1f1..5c248b4d2 100644 --- a/doc/headers.html +++ b/doc/headers.html @@ -19,7 +19,7 @@

    C++ Boost

    -

    Serialization

    +

    Serialization

    Code Structure

    @@ -67,57 +67,57 @@

    Archive Implementations

    -
    +
    boost/archive/archive_exception.hpp
    Exceptions which might be invoked by the library.
    -
    +
    boost/archive/binary_iarchive.hpp
    native binary input archive used for loading.
    -
    +
    boost/archive/binary_oarchive.hpp
    native binary output archive used for saving.
    -
    +
    boost/archive/text_iarchive.hpp
    text input archive used for loading.
    -
    +
    boost/archive/text_oarchive.hpp
    text output archive used for saving.
    -
    +
    boost/archive/text_wiarchive.hpp
    wide character text input archive used for loading.
    -
    +
    boost/archive/text_woarchive.hpp
    wide character text input archive used for saving.
    -
    +
    boost/archive/xml_iarchive.hpp
    xml input archive used for loading.
    -
    +
    boost/archive/xml_oarchive.hpp
    xml output archive used for saving.
    -
    +
    boost/archive/xml_wiarchive.hpp
    wide character xml input archive used for loading.
    -
    +
    boost/archive/xml_woarchive.hpp
    wide character xml output archive used for saving.
    @@ -133,35 +133,35 @@

    Serialization Declarations

    -
    +
    boost/serialization/base_object.hpp
    For serialization of base classes.
    -
    +
    boost/serialization/nvp.hpp
    To associate a name tag with a serializable object. This is necessary to properly render an xml archive which includes the object name.
    -
    +
    boost/serialization/split_free.hpp
    To divide implementation of non-intrusive serialization into separate save and load functions.
    -
    +
    boost/serialization/split_member.hpp
    To divide implementation of intrusive serialization into separate save and load functions.
    -
    +
    boost/serialization/export.hpp
    For serialization of pointers to derived classes via key export.
    -
    +
    boost/serialization/assume_abstract.hpp
    This is just a thin wrapper which permits one to explicitly specify that a @@ -177,22 +177,22 @@

    Serialization Declarations

    -
    +
    boost/serialization/version.hpp
    To override the default version index (0) assigned to a class.
    -
    +
    boost/serialization/level.hpp
    To override the default implementation level trait for a type.
    -
    +
    boost/serialization/tracking.hpp
    To override the default tracking trait for a type.
    -
    +
    boost/serialization/type_info_implementation.hpp
    By default, the library uses RTTI, to identify types at runtime. In some cases, E.G. @@ -247,7 +247,7 @@

    Archive Development

    -
    +
    boost/archive/basic_archive.hpp
    @@ -261,10 +261,10 @@

    Archive Development

    text files, or with special code as they are in xml archives.
    -
    +
    boost/archive/basic_text_oprimitive.hpp -
    +
    boost/archive/basic_text_iprimitive.hpp
    @@ -275,10 +275,10 @@

    Archive Development

    of text archives such as user friendly text or windows ini files.
    -
    +
    boost/archive/basic_binary_oprimitive.hpp -
    +
    boost/archive/basic_binary_iprimitive.hpp
    @@ -287,10 +287,10 @@

    Archive Development

    or wide character binary streams.

    -
    +
    boost/archive/basic_binary_oarchive.hpp -
    +
    boost/archive/basic_binary_iarchive.hpp
    @@ -300,17 +300,17 @@

    Archive Development

    other types of binary archives in the future. It also preserves analogy and symmetry with the rest of the library which aids in understanding.
    -
    +
    boost/archive/basic_text_oarchive.hpp -
    +
    boost/archive/basic_text_iarchive.hpp
    -
    +
    boost/archive/basic_xml_oarchive.hpp -
    +
    boost/archive/basic_xml_iarchive.hpp
    @@ -322,10 +322,10 @@

    Archive Development

    trap during compile time. On the other hand, basic_text_oarchive.hpp contains code to strip out and ignore any names attached to objects.

    -

    +
    boost/archive/detail/common_iarchive.hpp -
    +
    boost/archive/detail/common_oarchive.hpp
    @@ -338,21 +338,21 @@

    Archive Development

    Archive Internals

    -The interface (see
    Archive Concepts) +The interface (see Archive Concepts) and implementation are factored out into separate classes to minimize code duplication. These files are found in the directory -boost/archive/detail. +boost/archive/detail. These are included as necessary by the archive class implementations listed above. This has the unfortunate side effect of making the implementation less transparent. Users should never find it necessary to change these files.

    The following discussion is based on the -class diagram. +class diagram.

    -

    +
    boost/archive/detail/interface_iarchive.hpp -
    +
    boost/archive/detail/interface_iarchive.hpp
    Here are the declarations and definitions for the @@ -382,16 +382,16 @@

    Archive Internals

    Note the usage of -Partial Function Template Ordering +Partial Function Template Ordering to permit the correct save implementation to be selected.

    Archive Library Code Modules

    Parts of the library are implemented as library code. All of this code is to be found in -
    libs/serialization/src. +libs/serialization/src. in the form of *.cpp. The directory -boost/archive/impl +boost/archive/impl contains *.ipp files which implement templates. These templates are instantiated only by archive implementation so are generally not included in user code modules.

    @@ -434,7 +434,7 @@

    Dataflow Iterators

    The code for these iterators is really independent of this library. But since it hasn't been and probably won't be reviewed outside of this context. I've left it in a directory local to the serialization library: -boost/archive/iterators. +boost/archive/iterators. These iterators are described in Dataflow Iterators.
    diff --git a/doc/history.html b/doc/history.html index 55999bb55..9227f3693 100644 --- a/doc/history.html +++ b/doc/history.html @@ -19,7 +19,7 @@

    C++ Boost

    -

    Serialization

    +

    Serialization

    History

    diff --git a/doc/implementation.html b/doc/implementation.html index 8238cfc0d..fa979d418 100644 --- a/doc/implementation.html +++ b/doc/implementation.html @@ -19,7 +19,7 @@

    C++ Boost

    -

    Serialization

    +

    Serialization

    Implementation Notes

    @@ -232,7 +232,7 @@

    Dinkumware Library

    archive should be opened with the no_codecvt flag. Note this problem will occur on all compilers shipped with this library.
  • Other issues have been worked around in the file. - dinkumware.hpp + dinkumware.hpp

    STLPort 4.5.3

    diff --git a/doc/index.html b/doc/index.html index 38dc3429e..b64f94ad7 100644 --- a/doc/index.html +++ b/doc/index.html @@ -1,19 +1,354 @@ - - + + + Serialization + + + + - - - - <a href="overview.html"</a> - + + + + + + +
    +

    C++ Boost

    +
    +

    Serialization

    +

    Contents

    +
    +
    + + +

    +

    +
    Release Notes
    +
    Overview
    +
    +
    Tutorial
    +
    + +
    Reference
    +
    +
    Archive Concepts +
    +
    Serializable Concept +
    +
    Special Considerations +
    +
    Archive Class Reference +
    +
    +
    Implementation Notes +
    +
    Case Studies +
    +
    Other Classes +
    + +
    Tips and Tricks +
    Rationale
    +
    + +
    To Do
    +
    + +
    History + +
    Bibliography
    +
    Acknowledgments
    +
    +
    + diff --git a/doc/new_case_studies.html b/doc/new_case_studies.html index 6dcdf3b7a..5348d8856 100644 --- a/doc/new_case_studies.html +++ b/doc/new_case_studies.html @@ -19,7 +19,7 @@

    C++ Boost

    -

    Serialization

    +

    Serialization

    Proposed Case Studies

    diff --git a/doc/overview.html b/doc/overview.html index e4d640336..d89f8a107 100644 --- a/doc/overview.html +++ b/doc/overview.html @@ -19,7 +19,7 @@

    C++ Boost

    -

    Serialization

    +

    Serialization

    Overview

    diff --git a/doc/pimpl.html b/doc/pimpl.html index 6ba014267..288c18ec7 100644 --- a/doc/pimpl.html +++ b/doc/pimpl.html @@ -19,7 +19,7 @@

    C++ Boost

    -

    Serialization

    +

    Serialization

    PIMPL

    @@ -28,9 +28,9 @@

    PIMPL

    PIMPL is a C++ programming idiom described by Herb Sutter [10] which stands for "Private Implementation". It is also referred to as the "Handle Body Idiom". Included in this library is a program called -demo_pimpl.cpp +demo_pimpl.cpp which illustrates how this is used. The file -demo_pimpl_A.hpp +demo_pimpl_A.hpp contains the declaration of the A class that hides its implementation by including a pointer to struct B that is only defined as a pointer.
    
    @@ -50,7 +50,7 @@ 

    PIMPL

    a declaration of class B is sufficient. The implemenation of the serialization of A includes the definition of class B defined in the separately compiled module: -demo_pimpl_A.cpp +demo_pimpl_A.cpp by:
    
     #include "demo_pimpl_A.hpp"
    diff --git a/doc/private_base.html b/doc/private_base.html
    index c5da401ad..163e6c880 100644
    --- a/doc/private_base.html
    +++ b/doc/private_base.html
    @@ -19,7 +19,7 @@
           

    C++ Boost

    -

    Serialization

    +

    Serialization

    Private Base Classes

    diff --git a/doc/rationale.html b/doc/rationale.html index df0d0902f..b00a6af0b 100644 --- a/doc/rationale.html +++ b/doc/rationale.html @@ -20,7 +20,7 @@

    C++ Boost

    -

    Serialization

    +

    Serialization

    Rationale

    diff --git a/doc/reference.html b/doc/reference.html index caf8242a2..b10eb47d7 100644 --- a/doc/reference.html +++ b/doc/reference.html @@ -19,7 +19,7 @@

    C++ Boost

    -

    Serialization

    +

    Serialization

    Serializable Concept

    diff --git a/doc/release.html b/doc/release.html index 44738a497..6b4e13c50 100644 --- a/doc/release.html +++ b/doc/release.html @@ -21,7 +21,7 @@

    - Serialization

    + Serialization

    Release Notes

    @@ -242,7 +242,7 @@

    Differences from Boost 1.32

    earlier boost releases. In most cases the fix is trivial. In other cases, code should be scrutinized to be sure that it doesn't use the serialization system in a way which may introduce subtle bugs in to the program. A fuller - explanation of this issue can be found + explanation of this issue can be found here.
  • A new implementation of serialization for shared_ptr<T>. diff --git a/doc/serialization.html b/doc/serialization.html index 96912fadd..01ceadf8f 100644 --- a/doc/serialization.html +++ b/doc/serialization.html @@ -19,7 +19,7 @@

    C++ Boost

    -

    Serialization

    +

    Serialization

    Serializable Concept

    @@ -73,7 +73,7 @@

    Serializable Concept

  • it is a primitive type.
    By primitive type we mean a C++ built-in type and ONLY a C++ built-in type. Arithmetic (including characters), bool, enum are primitive types. - Below in serialization traits, + Below in serialization traits, we define a "primitive" implementation level in a different way for a different purpose. This can be a source of confusion.
  • It is a class type and one of the following has been declared according @@ -197,7 +197,7 @@

    Namespaces for Free Function Overrides

    two phase lookup. In fact, the serialization library used a perhaps overly clever method to support this rule even for such compilers. Those with an interest in studying this further will find more information in -serialization.hpp +serialization.hpp

    Serialization of Class Members

    Regardless of which of the above methods is used, the body of the serialize function must @@ -213,7 +213,7 @@

    Serialization of Class Members

    Base Classes

    The header file - + base_object.hpp includes the template: @@ -275,7 +275,7 @@

    Templates

    For an example that shows how this idea might be implemented for your own class templates, see - + demo_auto_ptr.cpp. This shows how non-intrusive serialization for the template auto_ptr from the standard library @@ -283,7 +283,7 @@

    Templates

    A somewhat trickier addition of serialization to a standard template can be found in the example - + shared_ptr.hpp