Boost logo

Boost-Commit :

From: oryol_at_[hidden]
Date: 2008-08-14 22:58:08


Author: jeremypack
Date: 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
New Revision: 48148
URL: http://svn.boost.org/trac/boost/changeset/48148

Log:
Doc/test updates for adaptable factories.

Added:
   sandbox/libs/extension/examples/tutorial_5/adaptable.cpp (contents, props changed)
Text files modified:
   sandbox/libs/extension/doc/extension.qbk | 30 ----
   sandbox/libs/extension/doc/html/BOOST_EXTENSION_EXPORT_DECL.html | 8
   sandbox/libs/extension/doc/html/BOOST_EXTENSION_MAX_FUNCTOR_PARAMS.html | 8
   sandbox/libs/extension/doc/html/N.html | 6
   sandbox/libs/extension/doc/html/boost/extensions/adaptable_factory.html | 50 ++++---
   sandbox/libs/extension/doc/html/boost/extensions/basic_factory_map.html | 22 +-
   sandbox/libs/extension/doc/html/boost/extensions/basic_type_map.html | 22 ++-
   sandbox/libs/extension/doc/html/boost/extensions/factory.html | 36 ++--
   sandbox/libs/extension/doc/html/boost/extensions/factory_map.html | 2
   sandbox/libs/extension/doc/html/boost/extensions/shared_library.html | 38 ++--
   sandbox/libs/extension/doc/html/boost/extensions/type_map.html | 2
   sandbox/libs/extension/doc/html/boost/reflections/basic_data_info.html | 32 ++--
   sandbox/libs/extension/doc/html/boost/reflections/basic_parameter_map.html | 44 +++---
   sandbox/libs/extension/doc/html/boost/reflections/basic_reflection.html | 30 ++--
   sandbox/libs/extension/doc/html/boost/reflections/basic_reflection/reflector.html | 32 ++--
   sandbox/libs/extension/doc/html/boost/reflections/conversion_not_found_exception.html | 12
   sandbox/libs/extension/doc/html/boost/reflections/data.html | 28 ++--
   sandbox/libs/extension/doc/html/boost/reflections/generic_constructor.html | 24 +-
   sandbox/libs/extension/doc/html/boost/reflections/generic_parameter.html | 92 ++++++++++---
   sandbox/libs/extension/doc/html/boost/reflections/generic_parameter/basic_converter.html | 24 +-
   sandbox/libs/extension/doc/html/boost/reflections/instance.html | 20 +-
   sandbox/libs/extension/doc/html/boost/reflections/parameter.html | 36 ++--
   sandbox/libs/extension/doc/html/boost/reflections/parameter/default_converter.html | 18 +-
   sandbox/libs/extension/doc/html/boost/reflections/parameter/specialized_converter.html | 24 +-
   sandbox/libs/extension/doc/html/boost/reflections/parameter_map.html | 8
   sandbox/libs/extension/doc/html/boost/reflections/parameter_unavailable_exception.html | 16 +-
   sandbox/libs/extension/doc/html/boost_extension/appendices/appendix_a.html | 2
   sandbox/libs/extension/doc/html/boost_extension/extension_reflection.html | 8
   sandbox/libs/extension/doc/html/boost_extension/introduction.html | 4
   sandbox/libs/extension/doc/html/boost_extension/reference.html | 14 +
   sandbox/libs/extension/doc/html/boost_extension/tutorials.html | 2
   sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial02.html | 2
   sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial03.html | 8
   sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial04.html | 260 +++++++++++----------------------------
   sandbox/libs/extension/doc/html/boost_extension/type_safety.html | 20 ++
   sandbox/libs/extension/doc/html/index.html | 48 ------
   sandbox/libs/extension/doc/introduction.qbk | 4
   sandbox/libs/extension/doc/tutorial4.qbk | 55 ++++++++
   sandbox/libs/extension/doc/tutorial5.qbk | 12 +
   sandbox/libs/extension/doc/tutorials.qbk | 1
   sandbox/libs/extension/doc/type_safety.qbk | 15 +
   sandbox/libs/extension/examples/Jamfile.v2 | 1
   sandbox/libs/extension/test/Jamfile.v2 | 1
   sandbox/libs/extension/test/adaptable_factory_test.cpp | 57 +++++++
   sandbox/libs/extension/test/type_map_test.cpp | 8 +
   sandbox/libs/reflection/test/parameter_map_test.cpp | 14 ++
   46 files changed, 618 insertions(+), 582 deletions(-)

Modified: sandbox/libs/extension/doc/extension.qbk
==============================================================================
--- sandbox/libs/extension/doc/extension.qbk (original)
+++ sandbox/libs/extension/doc/extension.qbk 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -29,6 +29,7 @@
 [def _adaptable_factory_ [^[classref boost::extensions::adaptable_factory adaptable_factory]]]
 [def _reflection_ [^[classref boost::reflections::reflection reflection]]]
 [def _parameter_map_ [^[classref boost::reflections::parameter_map parameter_map]]]
+[def _basic_parameter_map_ [^[classref boost::reflections::basic_parameter_map basic_parameter_map]]]
 [def _parameter_ [^[classref boost::reflections::parameter parameter]]]
 
 [section:recent_changes Recent Changes]
@@ -37,7 +38,7 @@
 to Boost for review:
 
 
-* Deprecation of _factory_map_ in favor of _type_map_ (tutorials to come).
+* Deprecation of _factory_map_ in favor of _type_map_.
 * All reflection documentation will be contained within the Extension docs.
 During review, or perhaps shortly before, it will be determined whether or not
 these should be two separate libraries, and if so, where the split should occur -
@@ -47,33 +48,6 @@
 * The addition of the source code for a runtime compilation example. This involves compiling
 a shared library at runtime, and calling code from it. Examples will come soon.
 
-
-The latest updates in this documentation are:
-
-Class references:
-
-* _shared_library_
-* _type_map_
-* _reflection_
-* _parameter_
-* _parameter_map_
-* _adaptable_factory_
-* _factory_
-
-Tutorials:
-
-* [link boost_extension.tutorials.tutorial01 Tutorial 1 - `shared_library` class]
-* [link boost_extension.tutorials.tutorial02 Tutorial 2 - `factory` class]
-* [link boost_extension.tutorials.tutorial03 Tutorial 3 - Multiple and Implementation Inheritance]
-
-Other Sections:
-
-* [link boost_extension.motivation Motivation]
-* [link boost_extension.shared_libraries Shared Libraries]
-* [link boost_extension.extension_reflection Extension/Reflection Interoperability]
-
-The other sections in the documentation should be updated over the next few weeks, in
-preparation for review.
 [endsect]
 [include introduction.qbk]
 [include motivation.qbk]

Modified: sandbox/libs/extension/doc/html/BOOST_EXTENSION_EXPORT_DECL.html
==============================================================================
--- sandbox/libs/extension/doc/html/BOOST_EXTENSION_EXPORT_DECL.html (original)
+++ sandbox/libs/extension/doc/html/BOOST_EXTENSION_EXPORT_DECL.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.67.2">
 <link rel="start" href="index.html" title="Chapter 1. Boost.Extension">
 <link rel="up" href="boost_extension/reference.html#header.boost.extension.extension.hpp" title="Header &lt;boost/extension/extension.hpp&gt;">
-<link rel="prev" href="boost/extensions/load_single_library_id284561.html" title="Function load_single_library">
+<link rel="prev" href="boost/extensions/load_single_library_id285972.html" title="Function load_single_library">
 <link rel="next" href="boost/extensions/factory.html" title="Class template factory">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,7 +20,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="boost/extensions/load_single_library_id284561.html"><img src="../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="boost_extension/reference.html#header.boost.extension.extension.hpp"><img src="../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="boost/extensions/factory.html"><img src="../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="boost/extensions/load_single_library_id285972.html"><img src="../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="boost_extension/reference.html#header.boost.extension.extension.hpp"><img src="../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="boost/extensions/factory.html"><img src="../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="refentry" lang="en">
 <a name="BOOST_EXTENSION_EXPORT_DECL"></a><div class="titlepage"></div>
@@ -31,7 +31,7 @@
 <h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
 <div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">BOOST_EXTENSION_EXPORT_DECL</pre></div>
 <div class="refsect1" lang="en">
-<a name="id448500"></a><h2>Description</h2>
+<a name="id449709"></a><h2>Description</h2>
 <p>Macro to place in a function definition to cause it to be exported, if necessary on the given platform and with the current compiler settings. This is always required for MSVC and other compilers, but only required depending on compiler settings for GCC and other compilers. </p>
 </div>
 </div>
@@ -45,7 +45,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="boost/extensions/load_single_library_id284561.html"><img src="../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="boost_extension/reference.html#header.boost.extension.extension.hpp"><img src="../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="boost/extensions/factory.html"><img src="../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="boost/extensions/load_single_library_id285972.html"><img src="../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="boost_extension/reference.html#header.boost.extension.extension.hpp"><img src="../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="boost/extensions/factory.html"><img src="../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/libs/extension/doc/html/BOOST_EXTENSION_MAX_FUNCTOR_PARAMS.html
==============================================================================
--- sandbox/libs/extension/doc/html/BOOST_EXTENSION_MAX_FUNCTOR_PARAMS.html (original)
+++ sandbox/libs/extension/doc/html/BOOST_EXTENSION_MAX_FUNCTOR_PARAMS.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -7,7 +7,7 @@
 <link rel="start" href="index.html" title="Chapter 1. Boost.Extension">
 <link rel="up" href="boost_extension/reference.html#header.boost.extension.common.hpp" title="Header &lt;boost/extension/common.hpp&gt;">
 <link rel="prev" href="BOOST_REFLECTION_MAX_FUNCTOR_PARAMS.html" title="Macro BOOST_REFLECTION_MAX_FUNCTOR_PARAMS">
-<link rel="next" href="basic_constructor_info_TypeInfo__id285687.html" title="Struct template basic_constructor_info&lt;TypeInfo&gt;">
+<link rel="next" href="basic_constructor_info_TypeInfo__id287127.html" title="Struct template basic_constructor_info&lt;TypeInfo&gt;">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -20,7 +20,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="BOOST_REFLECTION_MAX_FUNCTOR_PARAMS.html"><img src="../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="boost_extension/reference.html#header.boost.extension.common.hpp"><img src="../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="basic_constructor_info_TypeInfo__id285687.html"><img src="../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="BOOST_REFLECTION_MAX_FUNCTOR_PARAMS.html"><img src="../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="boost_extension/reference.html#header.boost.extension.common.hpp"><img src="../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="basic_constructor_info_TypeInfo__id287127.html"><img src="../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="refentry" lang="en">
 <a name="BOOST_EXTENSION_MAX_FUNCTOR_PARAMS"></a><div class="titlepage"></div>
@@ -31,7 +31,7 @@
 <h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
 <div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">BOOST_EXTENSION_MAX_FUNCTOR_PARAMS</pre></div>
 <div class="refsect1" lang="en">
-<a name="id452586"></a><h2>Description</h2>
+<a name="id453977"></a><h2>Description</h2>
 <p>This determines the maximum number of parameters that a constructor or exported shared library function can have. 10 is the same default as Boost.Function. </p>
 </div>
 </div>
@@ -45,7 +45,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="BOOST_REFLECTION_MAX_FUNCTOR_PARAMS.html"><img src="../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="boost_extension/reference.html#header.boost.extension.common.hpp"><img src="../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="basic_constructor_info_TypeInfo__id285687.html"><img src="../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="BOOST_REFLECTION_MAX_FUNCTOR_PARAMS.html"><img src="../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="boost_extension/reference.html#header.boost.extension.common.hpp"><img src="../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="basic_constructor_info_TypeInfo__id287127.html"><img src="../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/libs/extension/doc/html/N.html
==============================================================================
--- sandbox/libs/extension/doc/html/N.html (original)
+++ sandbox/libs/extension/doc/html/N.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.67.2">
 <link rel="start" href="index.html" title="Chapter 1. Boost.Extension">
 <link rel="up" href="boost_extension/reference.html#header.boost.extension.adapter.hpp" title="Header &lt;boost/extension/adapter.hpp&gt;">
-<link rel="prev" href="impl/create_function_T,_DBOOST_PP_COMMA_IF(N)_BOOST_PP_ENUM_PARAMS(N,_Param)__id285607.html" title="Struct template create_function&lt;T, DBOOST_PP_COMMA_IF(N) BOOST_PP_ENUM_PARAMS(N, Param)&gt;">
+<link rel="prev" href="impl/create_function_T,_DBOOST_PP_COMMA_IF(N)_BOOST_PP_ENUM_PARAMS(N,_Param)__id286739.html" title="Struct template create_function&lt;T, DBOOST_PP_COMMA_IF(N) BOOST_PP_ENUM_PARAMS(N, Param)&gt;">
 <link rel="next" href="BOOST_REFLECTION_MAX_FUNCTOR_PARAMS.html" title="Macro BOOST_REFLECTION_MAX_FUNCTOR_PARAMS">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,7 +20,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="impl/create_function_T,_DBOOST_PP_COMMA_IF(N)_BOOST_PP_ENUM_PARAMS(N,_Param)__id285607.html"><img src="../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="boost_extension/reference.html#header.boost.extension.adapter.hpp"><img src="../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="BOOST_REFLECTION_MAX_FUNCTOR_PARAMS.html"><img src="../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="impl/create_function_T,_DBOOST_PP_COMMA_IF(N)_BOOST_PP_ENUM_PARAMS(N,_Param)__id286739.html"><img src="../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="boost_extension/reference.html#header.boost.extension.adapter.hpp"><img src="../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="BOOST_REFLECTION_MAX_FUNCTOR_PARAMS.html"><img src="../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="refentry" lang="en">
 <a name="N"></a><div class="titlepage"></div>
@@ -41,7 +41,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="impl/create_function_T,_DBOOST_PP_COMMA_IF(N)_BOOST_PP_ENUM_PARAMS(N,_Param)__id285607.html"><img src="../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="boost_extension/reference.html#header.boost.extension.adapter.hpp"><img src="../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="BOOST_REFLECTION_MAX_FUNCTOR_PARAMS.html"><img src="../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="impl/create_function_T,_DBOOST_PP_COMMA_IF(N)_BOOST_PP_ENUM_PARAMS(N,_Param)__id286739.html"><img src="../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="boost_extension/reference.html#header.boost.extension.adapter.hpp"><img src="../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="BOOST_REFLECTION_MAX_FUNCTOR_PARAMS.html"><img src="../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/libs/extension/doc/html/boost/extensions/adaptable_factory.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost/extensions/adaptable_factory.html (original)
+++ sandbox/libs/extension/doc/html/boost/extensions/adaptable_factory.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -7,7 +7,7 @@
 <link rel="start" href="../../index.html" title="Chapter 1. Boost.Extension">
 <link rel="up" href="../../boost_extension/reference.html#header.boost.extension.adaptable_factory.hpp" title="Header &lt;boost/extension/adaptable_factory.hpp&gt;">
 <link rel="prev" href="../../boost_extension/reference.html" title="Reference">
-<link rel="next" href="load_single_library_id284561.html" title="Function load_single_library">
+<link rel="next" href="load_single_library_id285972.html" title="Function load_single_library">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -20,7 +20,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../../boost_extension/reference.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_extension/reference.html#header.boost.extension.adaptable_factory.hpp"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="load_single_library_id284561.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="../../boost_extension/reference.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_extension/reference.html#header.boost.extension.adaptable_factory.hpp"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="load_single_library_id285972.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="refentry" lang="en">
 <a name="boost.extensions.adaptable_factory"></a><div class="titlepage"></div>
@@ -34,37 +34,39 @@
 <span class="bold"><strong>class</strong></span> adaptable_factory {
 <span class="bold"><strong>public</strong></span>:
   <span class="emphasis"><em>// construct/copy/destruct</em></span>
- adaptable_factory();
- adaptable_factory(adaptable_factory&lt; Interface &gt; <span class="bold"><strong>const</strong></span> &amp;);
- adaptable_factory&amp; operator=(adaptable_factory&lt; Interface &gt; <span class="bold"><strong>const</strong></span> &amp;);
-
- <span class="emphasis"><em>// public member functions</em></span>
- <span class="type">Interface *</span> create(boost::reflections::parameter_map &amp;) <span class="bold"><strong>const</strong></span>;
+ adaptable_factory();
+ adaptable_factory(adaptable_factory&lt; Interface &gt; <span class="bold"><strong>const</strong></span> &amp;);
+ adaptable_factory&amp; operator=(adaptable_factory&lt; Interface &gt; <span class="bold"><strong>const</strong></span> &amp;);
+
+ <span class="emphasis"><em>// public member functions</em></span>
+ <span class="type">Interface *</span> create(boost::reflections::parameter_map &amp;) <span class="bold"><strong>const</strong></span>;
+ <span class="type">function&lt; Interface *()&gt;</span>
+ get_function(boost::reflections::parameter_map &amp;) <span class="bold"><strong>const</strong></span>;
   <span class="type">std::map&lt; TypeInfo, Info &gt;</span>
- get_missing_parameter_list(<span class="bold"><strong>const</strong></span> boost::reflections::parameter_map &amp;) <span class="bold"><strong>const</strong></span>;
- <span class="type"><span class="bold"><strong>bool</strong></span></span> is_valid() <span class="bold"><strong>const</strong></span>;
- <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Derived, <span class="bold"><strong>typename</strong></span> Params...&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> set(Info) ;
+ get_missing_params(<span class="bold"><strong>const</strong></span> boost::reflections::parameter_map &amp;) <span class="bold"><strong>const</strong></span>;
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> is_valid() <span class="bold"><strong>const</strong></span>;
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Derived, <span class="bold"><strong>typename</strong></span> Params...&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> set(Info) ;
 };</pre></div>
 <div class="refsect1" lang="en">
-<a name="id447742"></a><h2>Description</h2>
+<a name="id448916"></a><h2>Description</h2>
 <p>This class is a function object that returns new instances of type Interface, using factories that take parameters described in the variable length list Params... </p>
 <div class="refsect2" lang="en">
-<a name="id447753"></a><h3>
+<a name="id448926"></a><h3>
 <a name="boost.extensions.adaptable_factoryconstruct-copy-destruct"></a><code class="computeroutput">adaptable_factory</code>
         public
        construct/copy/destruct</h3>
 <div class="orderedlist"><ol type="1">
-<li><pre class="literallayout"><a name="id284524-bb"></a>adaptable_factory();</pre></li>
-<li><pre class="literallayout"><a name="id284529-bb"></a>adaptable_factory(adaptable_factory&lt; Interface &gt; <span class="bold"><strong>const</strong></span> &amp; first);</pre></li>
-<li><pre class="literallayout">adaptable_factory&amp; <a name="id284539-bb"></a><span class="bold"><strong>operator</strong></span>=(adaptable_factory&lt; Interface &gt; <span class="bold"><strong>const</strong></span> &amp; first);</pre></li>
+<li><pre class="literallayout"><a name="id285934-bb"></a>adaptable_factory();</pre></li>
+<li><pre class="literallayout"><a name="id285939-bb"></a>adaptable_factory(adaptable_factory&lt; Interface &gt; <span class="bold"><strong>const</strong></span> &amp; first);</pre></li>
+<li><pre class="literallayout">adaptable_factory&amp; <a name="id285949-bb"></a><span class="bold"><strong>operator</strong></span>=(adaptable_factory&lt; Interface &gt; <span class="bold"><strong>const</strong></span> &amp; first);</pre></li>
 </ol></div>
 </div>
 <div class="refsect2" lang="en">
-<a name="id447865"></a><h3>
-<a name="id284386-bb"></a><code class="computeroutput">adaptable_factory</code> public member functions</h3>
+<a name="id449039"></a><h3>
+<a name="id285781-bb"></a><code class="computeroutput">adaptable_factory</code> public member functions</h3>
 <div class="orderedlist"><ol type="1">
 <li>
-<pre class="literallayout"><span class="type">Interface *</span> <a name="id284389-bb"></a>create(boost::reflections::parameter_map &amp; map) <span class="bold"><strong>const</strong></span>;</pre>
+<pre class="literallayout"><span class="type">Interface *</span> <a name="id285784-bb"></a>create(boost::reflections::parameter_map &amp; map) <span class="bold"><strong>const</strong></span>;</pre>
 <p>Returns an instance of Interface (but does NOT retain ownership of the instance).
 
 
@@ -103,9 +105,11 @@
 </tbody>
 </table></div>
 </li>
+<li><pre class="literallayout"><span class="type">function&lt; Interface *()&gt;</span>
+<a name="id285818-bb"></a>get_function(boost::reflections::parameter_map &amp; map) <span class="bold"><strong>const</strong></span>;</pre></li>
 <li>
 <pre class="literallayout"><span class="type">std::map&lt; TypeInfo, Info &gt;</span>
-<a name="id284423-bb"></a>get_missing_parameter_list(<span class="bold"><strong>const</strong></span> boost::reflections::parameter_map &amp; map) <span class="bold"><strong>const</strong></span>;</pre>
+<a name="id285833-bb"></a>get_missing_params(<span class="bold"><strong>const</strong></span> boost::reflections::parameter_map &amp; map) <span class="bold"><strong>const</strong></span>;</pre>
 <p>Returns a map of the TypeInfo/Info pairs describing any parameters still needed before this function can be called.
 
 
@@ -145,7 +149,7 @@
 </table></div>
 </li>
 <li>
-<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id284459-bb"></a>is_valid() <span class="bold"><strong>const</strong></span>;</pre>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id285870-bb"></a>is_valid() <span class="bold"><strong>const</strong></span>;</pre>
 <p>Until set is called, a adaptable_factory cannot be used. This function can be used to determine if set has been called.
 
 
@@ -173,7 +177,7 @@
 </li>
 <li>
 <pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Derived, <span class="bold"><strong>typename</strong></span> Params...&gt;
- <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id284485-bb"></a>set(Info parameter_names...) ;</pre>
+ <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id285896-bb"></a>set(Info parameter_names...) ;</pre>
 <p>This sets the factory function to the constructor for type D. It takes as arguments Info about each parameter in the constructor.
 
 
@@ -208,7 +212,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../../boost_extension/reference.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_extension/reference.html#header.boost.extension.adaptable_factory.hpp"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="load_single_library_id284561.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="../../boost_extension/reference.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_extension/reference.html#header.boost.extension.adaptable_factory.hpp"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="load_single_library_id285972.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/libs/extension/doc/html/boost/extensions/basic_factory_map.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost/extensions/basic_factory_map.html (original)
+++ sandbox/libs/extension/doc/html/boost/extensions/basic_factory_map.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -33,32 +33,32 @@
 <span class="bold"><strong>class</strong></span> basic_factory_map {
 <span class="bold"><strong>public</strong></span>:
   <span class="emphasis"><em>// construct/copy/destruct</em></span>
- ~basic_factory_map();
+ ~basic_factory_map();
 
- <span class="emphasis"><em>// public member functions</em></span>
+ <span class="emphasis"><em>// public member functions</em></span>
   <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Interface, <span class="bold"><strong>typename</strong></span> Info, <span class="bold"><strong>typename</strong></span> Params...&gt;
- <span class="type">std::map&lt; Info, factory&lt; Interface, Params...&gt; &gt; &amp;</span> get() ;
+ <span class="type">std::map&lt; Info, factory&lt; Interface, Params...&gt; &gt; &amp;</span> get() ;
   <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Interface, <span class="bold"><strong>typename</strong></span> Info, <span class="bold"><strong>typename</strong></span> Params...&gt;
- operator std::map< Info, factory< Interface, Params...> > &() ;
+ operator std::map< Info, factory< Interface, Params...> > &() ;
 };</pre></div>
 <div class="refsect1" lang="en">
-<a name="id449340"></a><h2>Description</h2>
+<a name="id450547"></a><h2>Description</h2>
 <p>
 </p>
 <div class="refsect2" lang="en">
-<a name="id449347"></a><h3>
+<a name="id450554"></a><h3>
 <a name="boost.extensions.basic_factory_mapconstruct-copy-destruct"></a><code class="computeroutput">basic_factory_map</code>
         public
        construct/copy/destruct</h3>
-<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id284875-bb"></a>~basic_factory_map();</pre></li></ol></div>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id286286-bb"></a>~basic_factory_map();</pre></li></ol></div>
 </div>
 <div class="refsect2" lang="en">
-<a name="id449387"></a><h3>
-<a name="id284805-bb"></a><code class="computeroutput">basic_factory_map</code> public member functions</h3>
+<a name="id450595"></a><h3>
+<a name="id286215-bb"></a><code class="computeroutput">basic_factory_map</code> public member functions</h3>
 <div class="orderedlist"><ol type="1">
 <li>
 <pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Interface, <span class="bold"><strong>typename</strong></span> Info, <span class="bold"><strong>typename</strong></span> Params...&gt;
- <span class="type">std::map&lt; Info, factory&lt; Interface, Params...&gt; &gt; &amp;</span> <a name="id284808-bb"></a>get() ;</pre>
+ <span class="type">std::map&lt; Info, factory&lt; Interface, Params...&gt; &gt; &amp;</span> <a name="id286218-bb"></a>get() ;</pre>
 <p>
 
 This returns a map of the given type of factories. It can return an empty map if no such factories are found. </p>
@@ -73,7 +73,7 @@
 </li>
 <li>
 <pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Interface, <span class="bold"><strong>typename</strong></span> Info, <span class="bold"><strong>typename</strong></span> Params...&gt;
- <a name="id284845-bb"></a><span class="bold"><strong>operator</strong></span> std::map&lt; Info, factory&lt; Interface, Params...&gt; &gt; &amp;() ;</pre>
+ <a name="id286255-bb"></a><span class="bold"><strong>operator</strong></span> std::map&lt; Info, factory&lt; Interface, Params...&gt; &gt; &amp;() ;</pre>
 <p>A conversion operator for convenience in calling functions that take a map of factories. This is identical to the get() function. </p>
 </li>
 </ol></div>

Modified: sandbox/libs/extension/doc/html/boost/extensions/basic_type_map.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost/extensions/basic_type_map.html (original)
+++ sandbox/libs/extension/doc/html/boost/extensions/basic_type_map.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -33,11 +33,13 @@
 <span class="bold"><strong>class</strong></span> basic_type_map {
 <span class="bold"><strong>public</strong></span>:
 
- <span class="emphasis"><em>// public member functions</em></span>
- <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Type&gt; <span class="type">Type &amp;</span> get() ;
+ <span class="emphasis"><em>// public member functions</em></span>
+ <span class="type"></span> BOOST_STATIC_ASSERT(has_nothrow_assign&lt; TypeInfo &gt;::value) ;
+ <span class="type"></span> BOOST_STATIC_ASSERT(has_nothrow_copy_constructor&lt; TypeInfo &gt;::value) ;
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Type&gt; <span class="type">Type &amp;</span> get() ;
 };</pre></div>
 <div class="refsect1" lang="en">
-<a name="id450606"></a><h2>Description</h2>
+<a name="id451840"></a><h2>Description</h2>
 <p>
 The `type_map` class is used for holding an arbitrary collection of types - no more than one of each type. In general, standard usage is as follows:</p>
 <pre class="programlisting"> type_map types;
@@ -56,17 +58,21 @@
 </pre>
 <p> </p>
 <div class="refsect2" lang="en">
-<a name="id450622"></a><h3>
-<a name="id285192-bb"></a><code class="computeroutput">basic_type_map</code> public member functions</h3>
-<div class="orderedlist"><ol type="1"><li>
-<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Type&gt; <span class="type">Type &amp;</span> <a name="id285194-bb"></a>get() ;</pre>
+<a name="id451856"></a><h3>
+<a name="id286606-bb"></a><code class="computeroutput">basic_type_map</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><span class="type"></span> <a name="id286609-bb"></a>BOOST_STATIC_ASSERT(has_nothrow_assign&lt; TypeInfo &gt;::value) ;</pre></li>
+<li><pre class="literallayout"><span class="type"></span> <a name="id286620-bb"></a>BOOST_STATIC_ASSERT(has_nothrow_copy_constructor&lt; TypeInfo &gt;::value) ;</pre></li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Type&gt; <span class="type">Type &amp;</span> <a name="id286632-bb"></a>get() ;</pre>
 <p>This is the only method users should ever need to use. By calling it with a template argument `Type`, a reference to the single object of that type will be returned, after being created if necessary. It is possible to omit the template parameter if it is clear from context: </p>
 <pre class="programlisting"> type_map types;
  int&amp; my_int(types.get());
 </pre>
 <p>
 </p>
-</li></ol></div>
+</li>
+</ol></div>
 </div>
 </div>
 </div>

Modified: sandbox/libs/extension/doc/html/boost/extensions/factory.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost/extensions/factory.html (original)
+++ sandbox/libs/extension/doc/html/boost/extensions/factory.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -33,39 +33,39 @@
 <span class="bold"><strong>class</strong></span> factory {
 <span class="bold"><strong>public</strong></span>:
   <span class="emphasis"><em>// construct/copy/destruct</em></span>
- factory();
- factory(factory&lt; T &gt; <span class="bold"><strong>const</strong></span> &amp;);
- factory&amp; operator=(factory&lt; T &gt; <span class="bold"><strong>const</strong></span> &amp;);
-
- <span class="emphasis"><em>// public member functions</em></span>
- <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> D&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> set() ;
- <span class="type"><span class="bold"><strong>bool</strong></span></span> is_valid() <span class="bold"><strong>const</strong></span>;
- <span class="type">T *</span> create(Params...) <span class="bold"><strong>const</strong></span>;
+ factory();
+ factory(factory&lt; T &gt; <span class="bold"><strong>const</strong></span> &amp;);
+ factory&amp; operator=(factory&lt; T &gt; <span class="bold"><strong>const</strong></span> &amp;);
+
+ <span class="emphasis"><em>// public member functions</em></span>
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> D&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> set() ;
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> is_valid() <span class="bold"><strong>const</strong></span>;
+ <span class="type">T *</span> create(Params...) <span class="bold"><strong>const</strong></span>;
 };</pre></div>
 <div class="refsect1" lang="en">
-<a name="id448788"></a><h2>Description</h2>
+<a name="id449996"></a><h2>Description</h2>
 <p>This class is a function object that returns new instances of type T, using factories that take parameters described in the variable length list Params... </p>
 <div class="refsect2" lang="en">
-<a name="id448798"></a><h3>
+<a name="id450005"></a><h3>
 <a name="boost.extensions.factoryconstruct-copy-destruct"></a><code class="computeroutput">factory</code>
         public
        construct/copy/destruct</h3>
 <div class="orderedlist"><ol type="1">
-<li><pre class="literallayout"><a name="id284756-bb"></a>factory();</pre></li>
-<li><pre class="literallayout"><a name="id284760-bb"></a>factory(factory&lt; T &gt; <span class="bold"><strong>const</strong></span> &amp; first);</pre></li>
-<li><pre class="literallayout">factory&amp; <a name="id284770-bb"></a><span class="bold"><strong>operator</strong></span>=(factory&lt; T &gt; <span class="bold"><strong>const</strong></span> &amp; first);</pre></li>
+<li><pre class="literallayout"><a name="id286166-bb"></a>factory();</pre></li>
+<li><pre class="literallayout"><a name="id286170-bb"></a>factory(factory&lt; T &gt; <span class="bold"><strong>const</strong></span> &amp; first);</pre></li>
+<li><pre class="literallayout">factory&amp; <a name="id286181-bb"></a><span class="bold"><strong>operator</strong></span>=(factory&lt; T &gt; <span class="bold"><strong>const</strong></span> &amp; first);</pre></li>
 </ol></div>
 </div>
 <div class="refsect2" lang="en">
-<a name="id448905"></a><h3>
-<a name="id284680-bb"></a><code class="computeroutput">factory</code> public member functions</h3>
+<a name="id450112"></a><h3>
+<a name="id286090-bb"></a><code class="computeroutput">factory</code> public member functions</h3>
 <div class="orderedlist"><ol type="1">
 <li>
-<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> D&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id284682-bb"></a>set() ;</pre>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> D&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id286093-bb"></a>set() ;</pre>
 <p>This sets the factory function to the constructor for type D. Example: factory&lt;Base, int, int&gt; f; f.set&lt;Derived&gt;(); </p>
 </li>
 <li>
-<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id284704-bb"></a>is_valid() <span class="bold"><strong>const</strong></span>;</pre>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id286114-bb"></a>is_valid() <span class="bold"><strong>const</strong></span>;</pre>
 <p>Until set is called, a factory cannot be used. This function can be used to determine if set has been called.
 
 
@@ -92,7 +92,7 @@
 </table></div>
 </li>
 <li>
-<pre class="literallayout"><span class="type">T *</span> <a name="id284730-bb"></a>create(Params...) <span class="bold"><strong>const</strong></span>;</pre>
+<pre class="literallayout"><span class="type">T *</span> <a name="id286140-bb"></a>create(Params...) <span class="bold"><strong>const</strong></span>;</pre>
 <p>Returns an instance of T (but does NOT retain ownership of the instance).
 
 

Modified: sandbox/libs/extension/doc/html/boost/extensions/factory_map.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost/extensions/factory_map.html (original)
+++ sandbox/libs/extension/doc/html/boost/extensions/factory_map.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -32,7 +32,7 @@
 <div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">
 <span class="bold"><strong>typedef</strong></span> basic_factory_map&lt; default_type_info &gt; factory_map;</pre></div>
 <div class="refsect1" lang="en">
-<a name="id449565"></a><h2>Description</h2>
+<a name="id450772"></a><h2>Description</h2>
 <p>A typedef for convenience - provides the most common type of basic_factory_map. </p>
 </div>
 </div>

Modified: sandbox/libs/extension/doc/html/boost/extensions/shared_library.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost/extensions/shared_library.html (original)
+++ sandbox/libs/extension/doc/html/boost/extensions/shared_library.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -33,29 +33,29 @@
 <span class="bold"><strong>class</strong></span> shared_library {
 <span class="bold"><strong>public</strong></span>:
   <span class="emphasis"><em>// construct/copy/destruct</em></span>
- shared_library(<span class="bold"><strong>const</strong></span> std::string &amp;, <span class="bold"><strong>bool</strong></span> = false);
- ~shared_library();
+ shared_library(<span class="bold"><strong>const</strong></span> std::string &amp;, <span class="bold"><strong>bool</strong></span> = false);
+ ~shared_library();
 
- <span class="emphasis"><em>// public member functions</em></span>
- <span class="type"><span class="bold"><strong>bool</strong></span></span> is_open() <span class="bold"><strong>const</strong></span>;
- <span class="type"><span class="bold"><strong>bool</strong></span></span> open() ;
- <span class="type"><span class="bold"><strong>bool</strong></span></span> close() ;
- <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> TypeInfo&gt; <span class="type"><span class="bold"><strong>bool</strong></span></span> call(basic_type_map&lt; TypeInfo &gt; &amp;) ;
+ <span class="emphasis"><em>// public member functions</em></span>
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> is_open() <span class="bold"><strong>const</strong></span>;
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> open() ;
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> close() ;
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> TypeInfo&gt; <span class="type"><span class="bold"><strong>bool</strong></span></span> call(basic_type_map&lt; TypeInfo &gt; &amp;) ;
   <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> RetValue, <span class="bold"><strong>typename</strong></span> Params...&gt;
- <span class="type">FunctionPtr&lt; ReturnValue(Params...)&gt;</span> get(<span class="bold"><strong>const</strong></span> std::string &amp;) <span class="bold"><strong>const</strong></span>;
+ <span class="type">FunctionPtr&lt; ReturnValue(Params...)&gt;</span> get(<span class="bold"><strong>const</strong></span> std::string &amp;) <span class="bold"><strong>const</strong></span>;
 };</pre></div>
 <div class="refsect1" lang="en">
-<a name="id449941"></a><h2>Description</h2>
+<a name="id451149"></a><h2>Description</h2>
 <p>
 </p>
 <div class="refsect2" lang="en">
-<a name="id449949"></a><h3>
+<a name="id451156"></a><h3>
 <a name="boost.extensions.shared_libraryconstruct-copy-destruct"></a><code class="computeroutput">shared_library</code>
         public
        construct/copy/destruct</h3>
 <div class="orderedlist"><ol type="1">
 <li>
-<pre class="literallayout"><a name="id285121-bb"></a>shared_library(<span class="bold"><strong>const</strong></span> std::string &amp; location, <span class="bold"><strong>bool</strong></span> auto_close = false);</pre>
+<pre class="literallayout"><a name="id286535-bb"></a>shared_library(<span class="bold"><strong>const</strong></span> std::string &amp; location, <span class="bold"><strong>bool</strong></span> auto_close = false);</pre>
 <p>shared_library constructor
 </p>
 <div class="variablelist"><table border="0">
@@ -82,17 +82,17 @@
 </table></div>
 </li>
 <li>
-<pre class="literallayout"><a name="id285147-bb"></a>~shared_library();</pre>
+<pre class="literallayout"><a name="id286561-bb"></a>~shared_library();</pre>
 <p>shared_library destructor If auto_close_ was set to true in the constructor, this closes the library if it is currently open. </p>
 </li>
 </ol></div>
 </div>
 <div class="refsect2" lang="en">
-<a name="id450065"></a><h3>
-<a name="id284949-bb"></a><code class="computeroutput">shared_library</code> public member functions</h3>
+<a name="id451272"></a><h3>
+<a name="id286363-bb"></a><code class="computeroutput">shared_library</code> public member functions</h3>
 <div class="orderedlist"><ol type="1">
 <li>
-<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id284952-bb"></a>is_open() <span class="bold"><strong>const</strong></span>;</pre>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id286366-bb"></a>is_open() <span class="bold"><strong>const</strong></span>;</pre>
 <p>
 
 
@@ -119,7 +119,7 @@
 </table></div>
 </li>
 <li>
-<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id284973-bb"></a>open() ;</pre>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id286387-bb"></a>open() ;</pre>
 <p>
 
 
@@ -146,7 +146,7 @@
 </table></div>
 </li>
 <li>
-<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id284997-bb"></a>close() ;</pre>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id286411-bb"></a>close() ;</pre>
 <p>
 
 
@@ -173,7 +173,7 @@
 </table></div>
 </li>
 <li>
-<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> TypeInfo&gt; <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id285024-bb"></a>call(basic_type_map&lt; TypeInfo &gt; &amp; types) ;</pre>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> TypeInfo&gt; <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id286438-bb"></a>call(basic_type_map&lt; TypeInfo &gt; &amp; types) ;</pre>
 <p>There is a special function called boost_extension_exported_type_map_function which is commonly used by shared libraries. The call function attempts to find and call that function, given a type_map.</p>
 <p>
 
@@ -215,7 +215,7 @@
 </li>
 <li>
 <pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> RetValue, <span class="bold"><strong>typename</strong></span> Params...&gt;
- <span class="type">FunctionPtr&lt; ReturnValue(Params...)&gt;</span> <a name="id285070-bb"></a>get(<span class="bold"><strong>const</strong></span> std::string &amp; name) <span class="bold"><strong>const</strong></span>;</pre>
+ <span class="type">FunctionPtr&lt; ReturnValue(Params...)&gt;</span> <a name="id286484-bb"></a>get(<span class="bold"><strong>const</strong></span> std::string &amp; name) <span class="bold"><strong>const</strong></span>;</pre>
 <p>A templated function taking as template arguments the type of the return value and parameters of a function to look up in the shared library.</p>
 <p>This function must have been declared with the same parameters and return type and marked as extern "C".</p>
 <p>Depending on platform and compiler settings, it may also be necessary to prefix the function with BOOST_EXTENSION_DECL, to make it externally visible.</p>

Modified: sandbox/libs/extension/doc/html/boost/extensions/type_map.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost/extensions/type_map.html (original)
+++ sandbox/libs/extension/doc/html/boost/extensions/type_map.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -32,7 +32,7 @@
 <div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">
 <span class="bold"><strong>typedef</strong></span> basic_type_map&lt; default_type_info &gt; type_map;</pre></div>
 <div class="refsect1" lang="en">
-<a name="id450726"></a><h2>Description</h2>
+<a name="id451999"></a><h2>Description</h2>
 <p>A typedef for convenience - provides the most common type of basic_factory_map. </p>
 </div>
 </div>

Modified: sandbox/libs/extension/doc/html/boost/reflections/basic_data_info.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost/reflections/basic_data_info.html (original)
+++ sandbox/libs/extension/doc/html/boost/reflections/basic_data_info.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -7,7 +7,7 @@
 <link rel="start" href="../../index.html" title="Chapter 1. Boost.Extension">
 <link rel="up" href="../../boost_extension/reference.html#header.boost.reflection.data_info.hpp" title="Header &lt;boost/reflection/data_info.hpp&gt;">
 <link rel="prev" href="data.html" title="Class template data">
-<link rel="next" href="../../basic_function_info_Info,_TypeInfo__id285907.html" title="Struct template basic_function_info&lt;Info, TypeInfo&gt;">
+<link rel="next" href="../../basic_function_info_Info__TypeInfo__id287347.html" title="Struct template basic_function_info&lt;Info, TypeInfo&gt;">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -20,7 +20,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="data.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_extension/reference.html#header.boost.reflection.data_info.hpp"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../../basic_function_info_Info,_TypeInfo__id285907.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="data.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_extension/reference.html#header.boost.reflection.data_info.hpp"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../../basic_function_info_Info__TypeInfo__id287347.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="refentry" lang="en">
 <a name="boost.reflections.basic_data_info"></a><div class="titlepage"></div>
@@ -32,32 +32,32 @@
 <div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Info, <span class="bold"><strong>typename</strong></span> TypeInfo&gt;
 <span class="bold"><strong>struct</strong></span> basic_data_info {
   <span class="emphasis"><em>// construct/copy/destruct</em></span>
- basic_data_info(TypeInfo, Info);
- basic_data_info(<span class="bold"><strong>const</strong></span> basic_data_info &amp;);
- basic_data_info&amp; operator=(basic_data_info &amp;);
+ basic_data_info(TypeInfo, Info);
+ basic_data_info(<span class="bold"><strong>const</strong></span> basic_data_info &amp;);
+ basic_data_info&amp; operator=(basic_data_info &amp;);
 
- <span class="emphasis"><em>// public member functions</em></span>
- <span class="type"></span> BOOST_CONCEPT_ASSERT((LessThanComparable&lt; TypeInfo &gt;)) ;
+ <span class="emphasis"><em>// public member functions</em></span>
+ <span class="type"></span> BOOST_CONCEPT_ASSERT((LessThanComparable&lt; TypeInfo &gt;)) ;
   <span class="type">TypeInfo</span> type_info_;
   <span class="type">Info</span> info_;
 };</pre></div>
 <div class="refsect1" lang="en">
-<a name="id453477"></a><h2>Description</h2>
+<a name="id455139"></a><h2>Description</h2>
 <div class="refsect2" lang="en">
-<a name="id453482"></a><h3>
+<a name="id455144"></a><h3>
 <a name="boost.reflections.basic_data_infoconstruct-copy-destruct"></a><code class="computeroutput">basic_data_info</code>
         public
        construct/copy/destruct</h3>
 <div class="orderedlist"><ol type="1">
-<li><pre class="literallayout"><a name="id285877-bb"></a>basic_data_info(TypeInfo t, Info i);</pre></li>
-<li><pre class="literallayout"><a name="id285888-bb"></a>basic_data_info(<span class="bold"><strong>const</strong></span> basic_data_info &amp; s);</pre></li>
-<li><pre class="literallayout">basic_data_info&amp; <a name="id285894-bb"></a><span class="bold"><strong>operator</strong></span>=(basic_data_info &amp; s);</pre></li>
+<li><pre class="literallayout"><a name="id287317-bb"></a>basic_data_info(TypeInfo t, Info i);</pre></li>
+<li><pre class="literallayout"><a name="id287328-bb"></a>basic_data_info(<span class="bold"><strong>const</strong></span> basic_data_info &amp; s);</pre></li>
+<li><pre class="literallayout">basic_data_info&amp; <a name="id287334-bb"></a><span class="bold"><strong>operator</strong></span>=(basic_data_info &amp; s);</pre></li>
 </ol></div>
 </div>
 <div class="refsect2" lang="en">
-<a name="id453569"></a><h3>
-<a name="id285862-bb"></a><code class="computeroutput">basic_data_info</code> public member functions</h3>
-<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"></span> <a name="id285865-bb"></a>BOOST_CONCEPT_ASSERT((LessThanComparable&lt; TypeInfo &gt;)) ;</pre></li></ol></div>
+<a name="id455231"></a><h3>
+<a name="id287302-bb"></a><code class="computeroutput">basic_data_info</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"></span> <a name="id287305-bb"></a>BOOST_CONCEPT_ASSERT((LessThanComparable&lt; TypeInfo &gt;)) ;</pre></li></ol></div>
 </div>
 </div>
 </div>
@@ -71,7 +71,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="data.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_extension/reference.html#header.boost.reflection.data_info.hpp"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../../basic_function_info_Info,_TypeInfo__id285907.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="data.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_extension/reference.html#header.boost.reflection.data_info.hpp"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../../basic_function_info_Info__TypeInfo__id287347.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/libs/extension/doc/html/boost/reflections/basic_parameter_map.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost/reflections/basic_parameter_map.html (original)
+++ sandbox/libs/extension/doc/html/boost/reflections/basic_parameter_map.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -34,46 +34,47 @@
 <span class="bold"><strong>class</strong></span> basic_parameter_map {
 <span class="bold"><strong>public</strong></span>:
   <span class="emphasis"><em>// types</em></span>
- <span class="bold"><strong>typedef</strong></span> std::multimap&lt; Info, generic_parameter&lt; TypeInfo &gt; * &gt; <a name="boost.reflections.basic_parameter_map.map_type"></a>map_type;
- <span class="bold"><strong>typedef</strong></span> std::multimap&lt; Info, generic_parameter&lt; TypeInfo &gt; * &gt; <a name="boost.reflections.basic_parameter_map.map_type"></a>map_type;
+ <span class="bold"><strong>typedef</strong></span> std::multimap&lt; Info, generic_parameter&lt; TypeInfo &gt; * &gt; <a name="boost.reflections.basic_parameter_map.map_type"></a>map_type;
+ <span class="bold"><strong>typedef</strong></span> std::multimap&lt; Info, generic_parameter&lt; TypeInfo &gt; * &gt; <a name="boost.reflections.basic_parameter_map.map_type"></a>map_type;
 
   <span class="emphasis"><em>// construct/copy/destruct</em></span>
- ~basic_parameter_map();
- ~basic_parameter_map();
+ ~basic_parameter_map();
+ ~basic_parameter_map();
 
- <span class="emphasis"><em>// public member functions</em></span>
+ <span class="emphasis"><em>// public member functions</em></span>
   <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> D&gt;
- <span class="type">std::vector&lt; generic_parameter&lt; TypeInfo &gt; * &gt;</span> get(Info) ;
+ <span class="type">std::vector&lt; generic_parameter&lt; TypeInfo &gt; * &gt;</span> get(Info) ;
   <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> D&gt;
- <span class="type">std::vector&lt; <span class="bold"><strong>const</strong></span> generic_parameter&lt; TypeInfo &gt; * &gt;</span> get(Info) <span class="bold"><strong>const</strong></span>;
+ <span class="type">std::vector&lt; <span class="bold"><strong>const</strong></span> generic_parameter&lt; TypeInfo &gt; * &gt;</span> get(Info) <span class="bold"><strong>const</strong></span>;
   <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> D&gt;
- <span class="type">std::vector&lt; generic_parameter&lt; TypeInfo &gt; * &gt;</span> get(Info) ;
- <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> D&gt; <span class="type"><span class="bold"><strong>bool</strong></span></span> has(Info) <span class="bold"><strong>const</strong></span>;
- <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> D&gt; <span class="type">generic_parameter&lt; TypeInfo &gt; *</span> get_first(Info) ;
+ <span class="type">std::vector&lt; generic_parameter&lt; TypeInfo &gt; * &gt;</span> get(<span class="bold"><strong>const</strong></span> Info &amp;) ;
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> D&gt; <span class="type"><span class="bold"><strong>bool</strong></span></span> has(<span class="bold"><strong>const</strong></span> Info &amp;) <span class="bold"><strong>const</strong></span>;
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> D&gt;
+ <span class="type">generic_parameter&lt; TypeInfo &gt; *</span> get_first(<span class="bold"><strong>const</strong></span> Info &amp;) ;
 };</pre></div>
 <div class="refsect1" lang="en">
-<a name="id451326"></a><h2>Description</h2>
+<a name="id452669"></a><h2>Description</h2>
 <p>The basic_parameter_map is designed to hold arbitrary data indexed by the value of the Info parameter, and can return all items that match a certain type and Info parameter, ie all integers called "foobar". </p>
 <div class="refsect2" lang="en">
-<a name="id451337"></a><h3>
+<a name="id452680"></a><h3>
 <a name="boost.reflections.basic_parameter_mapconstruct-copy-destruct"></a><code class="computeroutput">basic_parameter_map</code>
         public
        construct/copy/destruct</h3>
 <div class="orderedlist"><ol type="1">
 <li>
-<pre class="literallayout"><a name="id285508-bb"></a>~basic_parameter_map();</pre>
+<pre class="literallayout"><a name="id286959-bb"></a>~basic_parameter_map();</pre>
 <p>The destructor deletes all of the parameters that it references. </p>
 </li>
-<li><pre class="literallayout"><a name="id285513-bb"></a>~basic_parameter_map();</pre></li>
+<li><pre class="literallayout"><a name="id286964-bb"></a>~basic_parameter_map();</pre></li>
 </ol></div>
 </div>
 <div class="refsect2" lang="en">
-<a name="id451397"></a><h3>
-<a name="id285302-bb"></a><code class="computeroutput">basic_parameter_map</code> public member functions</h3>
+<a name="id452740"></a><h3>
+<a name="id286744-bb"></a><code class="computeroutput">basic_parameter_map</code> public member functions</h3>
 <div class="orderedlist"><ol type="1">
 <li>
 <pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> D&gt;
- <span class="type">std::vector&lt; generic_parameter&lt; TypeInfo &gt; * &gt;</span> <a name="id285305-bb"></a>get(Info info) ;</pre>
+ <span class="type">std::vector&lt; generic_parameter&lt; TypeInfo &gt; * &gt;</span> <a name="id286747-bb"></a>get(Info info) ;</pre>
 <p>Given an Info value and a type, this will return all parameters that either match the given type or are convertible to the given type.
 
 
@@ -115,7 +116,7 @@
 </li>
 <li>
 <pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> D&gt;
- <span class="type">std::vector&lt; <span class="bold"><strong>const</strong></span> generic_parameter&lt; TypeInfo &gt; * &gt;</span> <a name="id285348-bb"></a>get(Info info) <span class="bold"><strong>const</strong></span>;</pre>
+ <span class="type">std::vector&lt; <span class="bold"><strong>const</strong></span> generic_parameter&lt; TypeInfo &gt; * &gt;</span> <a name="id286792-bb"></a>get(Info info) <span class="bold"><strong>const</strong></span>;</pre>
 <p>Given an Info value and a type, this will return all parameters that either match the given type or are convertible to the given type. This function is const.
 
 
@@ -157,7 +158,7 @@
 </li>
 <li>
 <pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> D&gt;
- <span class="type">std::vector&lt; generic_parameter&lt; TypeInfo &gt; * &gt;</span> <a name="id285391-bb"></a>get(Info info) ;</pre>
+ <span class="type">std::vector&lt; generic_parameter&lt; TypeInfo &gt; * &gt;</span> <a name="id286838-bb"></a>get(<span class="bold"><strong>const</strong></span> Info &amp; info) ;</pre>
 <p>Given a type (D) and Info (ie, string describing the parameter), return a vector containing all generic_parameters that match, or can be converted to the given type.</p>
 <p>
 
@@ -187,7 +188,7 @@
 </table></div>
 </li>
 <li>
-<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> D&gt; <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id285431-bb"></a>has(Info info) <span class="bold"><strong>const</strong></span>;</pre>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> D&gt; <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id286880-bb"></a>has(<span class="bold"><strong>const</strong></span> Info &amp; info) <span class="bold"><strong>const</strong></span>;</pre>
 <p>Given a type (D) and Info (ie, string describing the parameter), return true if the element exists in the parameter_map.</p>
 <p>
 
@@ -217,7 +218,8 @@
 </table></div>
 </li>
 <li>
-<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> D&gt; <span class="type">generic_parameter&lt; TypeInfo &gt; *</span> <a name="id285469-bb"></a>get_first(Info info) ;</pre>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> D&gt;
+ <span class="type">generic_parameter&lt; TypeInfo &gt; *</span> <a name="id286918-bb"></a>get_first(<span class="bold"><strong>const</strong></span> Info &amp; info) ;</pre>
 <p>Given a type (D) and Info (ie, string describing the parameter), return first parameter matching, or that can be converted to that type.</p>
 <p>
 

Modified: sandbox/libs/extension/doc/html/boost/reflections/basic_reflection.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost/reflections/basic_reflection.html (original)
+++ sandbox/libs/extension/doc/html/boost/reflections/basic_reflection.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -44,30 +44,30 @@
     <span class="bold"><strong>typedef</strong></span> basic_constructor_info&lt; TypeInfo, ParameterInfo &gt; constructor_info;
 
     <span class="emphasis"><em>// construct/copy/destruct</em></span>
- reflector(basic_reflection&lt; Info, ParameterInfo, TypeInfo &gt; *);
+ reflector(basic_reflection&lt; Info, ParameterInfo, TypeInfo &gt; *);
 
- <span class="emphasis"><em>// public member functions</em></span>
- <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Params...&gt; <span class="type">reflector &amp;</span> constructor() ;
- <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Data&gt; <span class="type">reflector &amp;</span> data(Data T::*, Info) ;
+ <span class="emphasis"><em>// public member functions</em></span>
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Params...&gt; <span class="type">reflector &amp;</span> constructor() ;
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Data&gt; <span class="type">reflector &amp;</span> data(Data T::*, Info) ;
     <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ReturnValue = <span class="bold"><strong>void</strong></span>, <span class="bold"><strong>typename</strong></span> Params...&gt;
- <span class="type">reflector &amp;</span> function(<span class="bold"><strong>void</strong></span>(T::*)(), Info) ;
+ <span class="type">reflector &amp;</span> function(<span class="bold"><strong>void</strong></span>(T::*)(), Info) ;
   };
 
- <span class="emphasis"><em>// public member functions</em></span>
+ <span class="emphasis"><em>// public member functions</em></span>
   <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Params...&gt;
- <span class="type">instance_constructor&lt; Params...&gt;</span> get_constructor() <span class="bold"><strong>const</strong></span>;
- <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Data&gt; <span class="type">data&lt; Data &gt;</span> get_data(Info) <span class="bold"><strong>const</strong></span>;
- <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type">reflector&lt; T &gt;</span> reflect() ;
+ <span class="type">instance_constructor&lt; Params...&gt;</span> get_constructor() <span class="bold"><strong>const</strong></span>;
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Data&gt; <span class="type">data&lt; Data &gt;</span> get_data(Info) <span class="bold"><strong>const</strong></span>;
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type">reflector&lt; T &gt;</span> reflect() ;
 };</pre></div>
 <div class="refsect1" lang="en">
-<a name="id457280"></a><h2>Description</h2>
+<a name="id458740"></a><h2>Description</h2>
 <div class="refsect2" lang="en">
-<a name="id457285"></a><h3>
-<a name="id286570-bb"></a><code class="computeroutput">basic_reflection</code> public member functions</h3>
+<a name="id458745"></a><h3>
+<a name="id288091-bb"></a><code class="computeroutput">basic_reflection</code> public member functions</h3>
 <div class="orderedlist"><ol type="1">
 <li>
 <pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Params...&gt;
- <span class="type">instance_constructor&lt; Params...&gt;</span> <a name="id286573-bb"></a>get_constructor() <span class="bold"><strong>const</strong></span>;</pre>
+ <span class="type">instance_constructor&lt; Params...&gt;</span> <a name="id288095-bb"></a>get_constructor() <span class="bold"><strong>const</strong></span>;</pre>
 <p>
 
 Attempt to retrieve any constructor whose Params match the list in Params... For example: </p>
@@ -103,7 +103,7 @@
 </table></div>
 </li>
 <li>
-<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Data&gt; <span class="type">data&lt; Data &gt;</span> <a name="id286611-bb"></a>get_data(Info info) <span class="bold"><strong>const</strong></span>;</pre>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Data&gt; <span class="type">data&lt; Data &gt;</span> <a name="id288135-bb"></a>get_data(Info info) <span class="bold"><strong>const</strong></span>;</pre>
 <p>
 
 Attempt to retrieve any data of type Data and the same Info. For example: </p>
@@ -140,7 +140,7 @@
 </table></div>
 </li>
 <li>
-<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type">reflector&lt; T &gt;</span> <a name="id286654-bb"></a>reflect() ;</pre>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type">reflector&lt; T &gt;</span> <a name="id288181-bb"></a>reflect() ;</pre>
 <p>
 
 

Modified: sandbox/libs/extension/doc/html/boost/reflections/basic_reflection/reflector.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost/reflections/basic_reflection/reflector.html (original)
+++ sandbox/libs/extension/doc/html/boost/reflections/basic_reflection/reflector.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -5,7 +5,7 @@
 <link rel="stylesheet" href="../../../boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.67.2">
 <link rel="start" href="../../../index.html" title="Chapter 1. Boost.Extension">
-<link rel="up" href="../basic_reflection.html#id457280" title="Description">
+<link rel="up" href="../basic_reflection.html#id458740" title="Description">
 <link rel="prev" href="../parameter/specialized_converter.html" title="Class template specialized_converter">
 <link rel="next" href="../../../boost_extension/appendices/appendix_a.html" title=" Appendix A -
       Windows Export and Import Declarations">
@@ -21,7 +21,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../parameter/specialized_converter.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../basic_reflection.html#id457280"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../../../boost_extension/appendices/appendix_a.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="../parameter/specialized_converter.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../basic_reflection.html#id458740"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../../../boost_extension/appendices/appendix_a.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="refentry" lang="en">
 <a name="boost.reflections.basic_reflection.reflector"></a><div class="titlepage"></div>
@@ -40,16 +40,16 @@
   <span class="bold"><strong>typedef</strong></span> basic_constructor_info&lt; TypeInfo, ParameterInfo &gt; <a name="boost.reflections.basic_reflection.reflector.constructor_info"></a>constructor_info;
 
   <span class="emphasis"><em>// construct/copy/destruct</em></span>
- reflector(basic_reflection&lt; Info, ParameterInfo, TypeInfo &gt; *);
+ reflector(basic_reflection&lt; Info, ParameterInfo, TypeInfo &gt; *);
 
- <span class="emphasis"><em>// public member functions</em></span>
- <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Params...&gt; <span class="type">reflector &amp;</span> constructor() ;
- <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Data&gt; <span class="type">reflector &amp;</span> data(Data T::*, Info) ;
+ <span class="emphasis"><em>// public member functions</em></span>
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Params...&gt; <span class="type">reflector &amp;</span> constructor() ;
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Data&gt; <span class="type">reflector &amp;</span> data(Data T::*, Info) ;
   <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ReturnValue = <span class="bold"><strong>void</strong></span>, <span class="bold"><strong>typename</strong></span> Params...&gt;
- <span class="type">reflector &amp;</span> function(<span class="bold"><strong>void</strong></span>(T::*)(), Info) ;
+ <span class="type">reflector &amp;</span> function(<span class="bold"><strong>void</strong></span>(T::*)(), Info) ;
 };</pre></div>
 <div class="refsect1" lang="en">
-<a name="id457782"></a><h2>Description</h2>
+<a name="id459243"></a><h2>Description</h2>
 <p>The reflector class is returned by the reflect method, and can then be used to reflect constructors, functions or data. It is normally used chained: </p>
 <pre class="programlisting"> reflection r;
  r.reflect&lt;MyClass&gt;()
@@ -58,12 +58,12 @@
 </pre>
 <p> </p>
 <div class="refsect2" lang="en">
-<a name="id457800"></a><h3>
+<a name="id459261"></a><h3>
 <a name="boost.reflections.basic_reflection.reflectorconstruct-copy-destruct"></a><code class="computeroutput">reflector</code>
         public
        construct/copy/destruct</h3>
 <div class="orderedlist"><ol type="1"><li>
-<pre class="literallayout"><a name="id286541-bb"></a>reflector(basic_reflection&lt; Info, ParameterInfo, TypeInfo &gt; * current_reflection);</pre>
+<pre class="literallayout"><a name="id288061-bb"></a>reflector(basic_reflection&lt; Info, ParameterInfo, TypeInfo &gt; * current_reflection);</pre>
 <p>Initialize with a pointer to the reflection this reflector will be reflecting into. This is called by the reflection::reflect function.
 
 
@@ -98,11 +98,11 @@
 </li></ol></div>
 </div>
 <div class="refsect2" lang="en">
-<a name="id457890"></a><h3>
-<a name="id286407-bb"></a><code class="computeroutput">reflector</code> public member functions</h3>
+<a name="id459351"></a><h3>
+<a name="id287915-bb"></a><code class="computeroutput">reflector</code> public member functions</h3>
 <div class="orderedlist"><ol type="1">
 <li>
-<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Params...&gt; <span class="type">reflector &amp;</span> <a name="id286410-bb"></a>constructor() ;</pre>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Params...&gt; <span class="type">reflector &amp;</span> <a name="id287918-bb"></a>constructor() ;</pre>
 <p>
 
 
@@ -130,7 +130,7 @@
 </table></div>
 </li>
 <li>
-<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Data&gt; <span class="type">reflector &amp;</span> <a name="id286442-bb"></a>data(Data T::* data_ptr, Info info) ;</pre>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Data&gt; <span class="type">reflector &amp;</span> <a name="id287954-bb"></a>data(Data T::* data_ptr, Info info) ;</pre>
 <p>
 
 
@@ -173,7 +173,7 @@
 </li>
 <li>
 <pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> ReturnValue = <span class="bold"><strong>void</strong></span>, <span class="bold"><strong>typename</strong></span> Params...&gt;
- <span class="type">reflector &amp;</span> <a name="id286489-bb"></a>function(<span class="bold"><strong>void</strong></span>(T::*)() func, Info info) ;</pre>
+ <span class="type">reflector &amp;</span> <a name="id288004-bb"></a>function(<span class="bold"><strong>void</strong></span>(T::*)() func, Info info) ;</pre>
 <p>
 
 
@@ -228,7 +228,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../parameter/specialized_converter.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../basic_reflection.html#id457280"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../../../boost_extension/appendices/appendix_a.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="../parameter/specialized_converter.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../basic_reflection.html#id458740"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../../../boost_extension/appendices/appendix_a.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/libs/extension/doc/html/boost/reflections/conversion_not_found_exception.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost/reflections/conversion_not_found_exception.html (original)
+++ sandbox/libs/extension/doc/html/boost/reflections/conversion_not_found_exception.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -33,15 +33,15 @@
 <span class="bold"><strong>class</strong></span> conversion_not_found_exception {
 <span class="bold"><strong>public</strong></span>:
 
- <span class="emphasis"><em>// public member functions</em></span>
- <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> what() ;
+ <span class="emphasis"><em>// public member functions</em></span>
+ <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> what() ;
 };</pre></div>
 <div class="refsect1" lang="en">
-<a name="id454925"></a><h2>Description</h2>
+<a name="id456313"></a><h2>Description</h2>
 <div class="refsect2" lang="en">
-<a name="id454930"></a><h3>
-<a name="id286073-bb"></a><code class="computeroutput">conversion_not_found_exception</code> public member functions</h3>
-<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a name="id286076-bb"></a>what() ;</pre></li></ol></div>
+<a name="id456318"></a><h3>
+<a name="id287514-bb"></a><code class="computeroutput">conversion_not_found_exception</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a name="id287517-bb"></a>what() ;</pre></li></ol></div>
 </div>
 </div>
 </div>

Modified: sandbox/libs/extension/doc/html/boost/reflections/data.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost/reflections/data.html (original)
+++ sandbox/libs/extension/doc/html/boost/reflections/data.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.67.2">
 <link rel="start" href="../../index.html" title="Chapter 1. Boost.Extension">
 <link rel="up" href="../../boost_extension/reference.html#header.boost.reflection.data.hpp" title="Header &lt;boost/reflection/data.hpp&gt;">
-<link rel="prev" href="../../basic_constructor_info_TypeInfo__id285687.html" title="Struct template basic_constructor_info&lt;TypeInfo&gt;">
+<link rel="prev" href="../../basic_constructor_info_TypeInfo__id287127.html" title="Struct template basic_constructor_info&lt;TypeInfo&gt;">
 <link rel="next" href="basic_data_info.html" title="Struct template basic_data_info">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,7 +20,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../../basic_constructor_info_TypeInfo__id285687.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_extension/reference.html#header.boost.reflection.data.hpp"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="basic_data_info.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="../../basic_constructor_info_TypeInfo__id287127.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_extension/reference.html#header.boost.reflection.data.hpp"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="basic_data_info.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="refentry" lang="en">
 <a name="boost.reflections.data"></a><div class="titlepage"></div>
@@ -33,28 +33,28 @@
 <span class="bold"><strong>class</strong></span> data {
 <span class="bold"><strong>public</strong></span>:
   <span class="emphasis"><em>// construct/copy/destruct</em></span>
- data(impl::MemberPtr = 0, T &amp;(*)(<span class="bold"><strong>void</strong></span> *, impl::MemberPtr) = 0);
+ data(impl::MemberPtr = 0, T &amp;(*)(<span class="bold"><strong>void</strong></span> *, impl::MemberPtr) = 0);
 
- <span class="emphasis"><em>// public member functions</em></span>
- <span class="type">T &amp;</span> operator()(instance &amp;) <span class="bold"><strong>const</strong></span>;
- <span class="type"><span class="bold"><strong>bool</strong></span></span> valid() <span class="bold"><strong>const</strong></span>;
+ <span class="emphasis"><em>// public member functions</em></span>
+ <span class="type">T &amp;</span> operator()(instance &amp;) <span class="bold"><strong>const</strong></span>;
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> valid() <span class="bold"><strong>const</strong></span>;
 };</pre></div>
 <div class="refsect1" lang="en">
-<a name="id453138"></a><h2>Description</h2>
+<a name="id454800"></a><h2>Description</h2>
 <div class="refsect2" lang="en">
-<a name="id453143"></a><h3>
+<a name="id454805"></a><h3>
 <a name="boost.reflections.dataconstruct-copy-destruct"></a><code class="computeroutput">data</code>
         public
        construct/copy/destruct</h3>
-<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id285781-bb"></a>data(impl::MemberPtr data_ptr = 0,
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id287221-bb"></a>data(impl::MemberPtr data_ptr = 0,
      T &amp;(*)(<span class="bold"><strong>void</strong></span> *, impl::MemberPtr) conversion_function = 0);</pre></li></ol></div>
 </div>
 <div class="refsect2" lang="en">
-<a name="id453191"></a><h3>
-<a name="id285759-bb"></a><code class="computeroutput">data</code> public member functions</h3>
+<a name="id454854"></a><h3>
+<a name="id287200-bb"></a><code class="computeroutput">data</code> public member functions</h3>
 <div class="orderedlist"><ol type="1">
-<li><pre class="literallayout"><span class="type">T &amp;</span> <a name="id285762-bb"></a><span class="bold"><strong>operator</strong></span>()(instance &amp; inst) <span class="bold"><strong>const</strong></span>;</pre></li>
-<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id285774-bb"></a>valid() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">T &amp;</span> <a name="id287202-bb"></a><span class="bold"><strong>operator</strong></span>()(instance &amp; inst) <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id287214-bb"></a>valid() <span class="bold"><strong>const</strong></span>;</pre></li>
 </ol></div>
 </div>
 </div>
@@ -69,7 +69,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../../basic_constructor_info_TypeInfo__id285687.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_extension/reference.html#header.boost.reflection.data.hpp"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="basic_data_info.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="../../basic_constructor_info_TypeInfo__id287127.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_extension/reference.html#header.boost.reflection.data.hpp"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="basic_data_info.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/libs/extension/doc/html/boost/reflections/generic_constructor.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost/reflections/generic_constructor.html (original)
+++ sandbox/libs/extension/doc/html/boost/reflections/generic_constructor.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.67.2">
 <link rel="start" href="../../index.html" title="Chapter 1. Boost.Extension">
 <link rel="up" href="../../boost_extension/reference.html#header.boost.reflection.generic_constructor.hpp" title="Header &lt;boost/reflection/generic_constructor.hpp&gt;">
-<link rel="prev" href="../../basic_function_info_Info,_TypeInfo__id285907.html" title="Struct template basic_function_info&lt;Info, TypeInfo&gt;">
+<link rel="prev" href="../../basic_function_info_Info__TypeInfo__id287347.html" title="Struct template basic_function_info&lt;Info, TypeInfo&gt;">
 <link rel="next" href="instance.html" title="Class instance">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,7 +20,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../../basic_function_info_Info,_TypeInfo__id285907.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_extension/reference.html#header.boost.reflection.generic_constructor.hpp"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="instance.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="../../basic_function_info_Info__TypeInfo__id287347.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_extension/reference.html#header.boost.reflection.generic_constructor.hpp"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="instance.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="refentry" lang="en">
 <a name="boost.reflections.generic_constructor"></a><div class="titlepage"></div>
@@ -33,24 +33,24 @@
 <span class="bold"><strong>class</strong></span> generic_constructor {
 <span class="bold"><strong>public</strong></span>:
   <span class="emphasis"><em>// construct/copy/destruct</em></span>
- ~generic_constructor();
+ ~generic_constructor();
 
- <span class="emphasis"><em>// public member functions</em></span>
- <span class="type">T *</span> create(<span class="bold"><strong>void</strong></span> **) <span class="bold"><strong>const</strong></span>;
+ <span class="emphasis"><em>// public member functions</em></span>
+ <span class="type">T *</span> create(<span class="bold"><strong>void</strong></span> **) <span class="bold"><strong>const</strong></span>;
 };</pre></div>
 <div class="refsect1" lang="en">
-<a name="id454073"></a><h2>Description</h2>
+<a name="id455734"></a><h2>Description</h2>
 <div class="refsect2" lang="en">
-<a name="id454078"></a><h3>
+<a name="id455739"></a><h3>
 <a name="boost.reflections.generic_constructorconstruct-copy-destruct"></a><code class="computeroutput">generic_constructor</code>
         public
        construct/copy/destruct</h3>
-<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id286017-bb"></a>~generic_constructor();</pre></li></ol></div>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id287457-bb"></a>~generic_constructor();</pre></li></ol></div>
 </div>
 <div class="refsect2" lang="en">
-<a name="id454391"></a><h3>
-<a name="id286002-bb"></a><code class="computeroutput">generic_constructor</code> public member functions</h3>
-<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type">T *</span> <a name="id286005-bb"></a>create(<span class="bold"><strong>void</strong></span> ** params) <span class="bold"><strong>const</strong></span>;</pre></li></ol></div>
+<a name="id455780"></a><h3>
+<a name="id287442-bb"></a><code class="computeroutput">generic_constructor</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type">T *</span> <a name="id287445-bb"></a>create(<span class="bold"><strong>void</strong></span> ** params) <span class="bold"><strong>const</strong></span>;</pre></li></ol></div>
 </div>
 </div>
 </div>
@@ -64,7 +64,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../../basic_function_info_Info,_TypeInfo__id285907.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_extension/reference.html#header.boost.reflection.generic_constructor.hpp"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="instance.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="../../basic_function_info_Info__TypeInfo__id287347.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_extension/reference.html#header.boost.reflection.generic_constructor.hpp"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="instance.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/libs/extension/doc/html/boost/reflections/generic_parameter.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost/reflections/generic_parameter.html (original)
+++ sandbox/libs/extension/doc/html/boost/reflections/generic_parameter.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -26,7 +26,7 @@
 <a name="boost.reflections.generic_parameter"></a><div class="titlepage"></div>
 <div class="refnamediv">
 <h2><span class="refentrytitle">Class template generic_parameter</span></h2>
-<p>boost::reflections::generic_parameter &#8212; </p>
+<p>boost::reflections::generic_parameter &#8212; A container for a single item - similar to boost::any. </p>
 </div>
 <h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
 <div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> TypeInfo = extensions::default_type_info&gt;
@@ -38,42 +38,92 @@
   <span class="bold"><strong>class</strong></span> basic_converter {
   <span class="bold"><strong>public</strong></span>:
     <span class="emphasis"><em>// construct/copy/destruct</em></span>
- ~basic_converter();
+ ~basic_converter();
 
- <span class="emphasis"><em>// public member functions</em></span>
- <span class="type"><span class="bold"><strong>void</strong></span></span> convert(<span class="bold"><strong>void</strong></span> *, <span class="bold"><strong>void</strong></span> *) <span class="bold"><strong>const</strong></span>;
+ <span class="emphasis"><em>// public member functions</em></span>
+ <span class="type"><span class="bold"><strong>void</strong></span></span> convert(<span class="bold"><strong>void</strong></span> *, <span class="bold"><strong>void</strong></span> *) <span class="bold"><strong>const</strong></span>;
   };
 
   <span class="emphasis"><em>// construct/copy/destruct</em></span>
- generic_parameter(<span class="bold"><strong>void</strong></span> *);
- ~generic_parameter();
+ generic_parameter(<span class="bold"><strong>void</strong></span> *);
+ ~generic_parameter();
 
- <span class="emphasis"><em>// public member functions</em></span>
- <span class="type">TypeInfo</span> type() <span class="bold"><strong>const</strong></span>;
- <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type"><span class="bold"><strong>bool</strong></span></span> can_cast() <span class="bold"><strong>const</strong></span>;
- <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> S&gt; <span class="type">S</span> cast() <span class="bold"><strong>const</strong></span>;
- <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> S&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> cast(S *) ;
+ <span class="emphasis"><em>// public member functions</em></span>
+ <span class="type">TypeInfo</span> type() <span class="bold"><strong>const</strong></span>;
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type"><span class="bold"><strong>bool</strong></span></span> can_cast() <span class="bold"><strong>const</strong></span>;
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type">T</span> cast() <span class="bold"><strong>const</strong></span>;
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> cast(T *) ;
 };</pre></div>
 <div class="refsect1" lang="en">
-<a name="id455309"></a><h2>Description</h2>
+<a name="id456702"></a><h2>Description</h2>
+<p>The primary difference between generic_parameter and boost::any is that a generic_parameter can be declared to be convertible to arbitrary types, in addition to the base type that it holds. This allows an object to also be accessible through pointers to its base types, for example. </p>
 <div class="refsect2" lang="en">
-<a name="id455314"></a><h3>
+<a name="id456714"></a><h3>
 <a name="boost.reflections.generic_parameterconstruct-copy-destruct"></a><code class="computeroutput">generic_parameter</code>
         public
        construct/copy/destruct</h3>
 <div class="orderedlist"><ol type="1">
-<li><pre class="literallayout"><a name="id286182-bb"></a>generic_parameter(<span class="bold"><strong>void</strong></span> * value);</pre></li>
-<li><pre class="literallayout"><a name="id286178-bb"></a>~generic_parameter();</pre></li>
+<li><pre class="literallayout"><a name="id287681-bb"></a>generic_parameter(<span class="bold"><strong>void</strong></span> * value);</pre></li>
+<li>
+<pre class="literallayout"><a name="id287672-bb"></a>~generic_parameter();</pre>
+<p>The destructor cleans up the converters contained in this generic_parameter. </p>
+</li>
 </ol></div>
 </div>
 <div class="refsect2" lang="en">
-<a name="id455377"></a><h3>
-<a name="id286124-bb"></a><code class="computeroutput">generic_parameter</code> public member functions</h3>
+<a name="id456781"></a><h3>
+<a name="id287575-bb"></a><code class="computeroutput">generic_parameter</code> public member functions</h3>
 <div class="orderedlist"><ol type="1">
-<li><pre class="literallayout"><span class="type">TypeInfo</span> <a name="id286126-bb"></a>type() <span class="bold"><strong>const</strong></span>;</pre></li>
-<li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id286133-bb"></a>can_cast() <span class="bold"><strong>const</strong></span>;</pre></li>
-<li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> S&gt; <span class="type">S</span> <a name="id286146-bb"></a>cast() <span class="bold"><strong>const</strong></span>;</pre></li>
-<li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> S&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id286160-bb"></a>cast(S * dest) ;</pre></li>
+<li>
+<pre class="literallayout"><span class="type">TypeInfo</span> <a name="id287578-bb"></a>type() <span class="bold"><strong>const</strong></span>;</pre>
+<p>Return the TypeInfo for the primary type of this generic_parameter. </p>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id287589-bb"></a>can_cast() <span class="bold"><strong>const</strong></span>;</pre>
+<p>Given a type T, this function returns true if the generic_parameter can convert its value to T.
+
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td>
+<span class="term">Returns:</span></td>
+<td><p>true if the conversion is possible. </p></td>
+</tr></tbody>
+</table></div>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type">T</span> <a name="id287615-bb"></a>cast() <span class="bold"><strong>const</strong></span>;</pre>
+<p>This will attempt to convert the generic_parameter to type T. If it fails, it will throw an exception. To avoid the exception, the can_cast function can be called first.
+
+
+
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td>
+<span class="term">Requires:</span></td>
+<td><p>can_cast&lt;T&gt;() == true </p></td>
+</tr>
+<tr>
+<td>
+<span class="term">Postconditions:</span></td>
+<td><p>None. </p></td>
+</tr>
+<tr>
+<td>
+<span class="term">Returns:</span></td>
+<td><p>A value of T that was converted from the generic_parameter. </p></td>
+</tr>
+</tbody>
+</table></div>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id287648-bb"></a>cast(T * dest) ;</pre>
+<p>Identical to T cast(), but takes a pointer to T instead. </p>
+</li>
 </ol></div>
 </div>
 </div>

Modified: sandbox/libs/extension/doc/html/boost/reflections/generic_parameter/basic_converter.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost/reflections/generic_parameter/basic_converter.html (original)
+++ sandbox/libs/extension/doc/html/boost/reflections/generic_parameter/basic_converter.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -5,7 +5,7 @@
 <link rel="stylesheet" href="../../../boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.67.2">
 <link rel="start" href="../../../index.html" title="Chapter 1. Boost.Extension">
-<link rel="up" href="../generic_parameter.html#id455309" title="Description">
+<link rel="up" href="../generic_parameter.html#id456702" title="Description">
 <link rel="prev" href="../conversion_not_found_exception.html" title="Class conversion_not_found_exception">
 <link rel="next" href="../parameter.html" title="Class template parameter">
 </head>
@@ -20,7 +20,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../conversion_not_found_exception.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../generic_parameter.html#id455309"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../parameter.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="../conversion_not_found_exception.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../generic_parameter.html#id456702"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../parameter.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="refentry" lang="en">
 <a name="boost.reflections.generic_parameter.basic_converter"></a><div class="titlepage"></div>
@@ -34,24 +34,24 @@
 <span class="bold"><strong>class</strong></span> basic_converter {
 <span class="bold"><strong>public</strong></span>:
   <span class="emphasis"><em>// construct/copy/destruct</em></span>
- ~basic_converter();
+ ~basic_converter();
 
- <span class="emphasis"><em>// public member functions</em></span>
- <span class="type"><span class="bold"><strong>void</strong></span></span> convert(<span class="bold"><strong>void</strong></span> *, <span class="bold"><strong>void</strong></span> *) <span class="bold"><strong>const</strong></span>;
+ <span class="emphasis"><em>// public member functions</em></span>
+ <span class="type"><span class="bold"><strong>void</strong></span></span> convert(<span class="bold"><strong>void</strong></span> *, <span class="bold"><strong>void</strong></span> *) <span class="bold"><strong>const</strong></span>;
 };</pre></div>
 <div class="refsect1" lang="en">
-<a name="id455643"></a><h2>Description</h2>
+<a name="id457103"></a><h2>Description</h2>
 <div class="refsect2" lang="en">
-<a name="id455648"></a><h3>
+<a name="id457108"></a><h3>
 <a name="boost.reflections.generic_parameter.basic_converterconstruct-copy-destruct"></a><code class="computeroutput">basic_converter</code>
         public
        construct/copy/destruct</h3>
-<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id286117-bb"></a>~basic_converter();</pre></li></ol></div>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id287569-bb"></a>~basic_converter();</pre></li></ol></div>
 </div>
 <div class="refsect2" lang="en">
-<a name="id455690"></a><h3>
-<a name="id286097-bb"></a><code class="computeroutput">basic_converter</code> public member functions</h3>
-<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id286100-bb"></a>convert(<span class="bold"><strong>void</strong></span> * src, <span class="bold"><strong>void</strong></span> * dest) <span class="bold"><strong>const</strong></span>;</pre></li></ol></div>
+<a name="id457150"></a><h3>
+<a name="id287549-bb"></a><code class="computeroutput">basic_converter</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id287552-bb"></a>convert(<span class="bold"><strong>void</strong></span> * src, <span class="bold"><strong>void</strong></span> * dest) <span class="bold"><strong>const</strong></span>;</pre></li></ol></div>
 </div>
 </div>
 </div>
@@ -65,7 +65,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../conversion_not_found_exception.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../generic_parameter.html#id455309"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../parameter.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="../conversion_not_found_exception.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../generic_parameter.html#id456702"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../parameter.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/libs/extension/doc/html/boost/reflections/instance.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost/reflections/instance.html (original)
+++ sandbox/libs/extension/doc/html/boost/reflections/instance.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -33,23 +33,23 @@
 <span class="bold"><strong>class</strong></span> instance {
 <span class="bold"><strong>public</strong></span>:
   <span class="emphasis"><em>// construct/copy/destruct</em></span>
- instance(<span class="bold"><strong>void</strong></span> * = 0, <span class="bold"><strong>void</strong></span>(*)(<span class="bold"><strong>void</strong></span> *val) = 0);
- instance(<span class="bold"><strong>const</strong></span> instance &amp;);
- instance&amp; operator=(instance &amp;);
- ~instance();
+ instance(<span class="bold"><strong>void</strong></span> * = 0, <span class="bold"><strong>void</strong></span>(*)(<span class="bold"><strong>void</strong></span> *val) = 0);
+ instance(<span class="bold"><strong>const</strong></span> instance &amp;);
+ instance&amp; operator=(instance &amp;);
+ ~instance();
 };</pre></div>
 <div class="refsect1" lang="en">
-<a name="id454610"></a><h2>Description</h2>
+<a name="id456000"></a><h2>Description</h2>
 <div class="refsect2" lang="en">
-<a name="id454616"></a><h3>
+<a name="id456005"></a><h3>
 <a name="boost.reflections.instanceconstruct-copy-destruct"></a><code class="computeroutput">instance</code>
         public
        construct/copy/destruct</h3>
 <div class="orderedlist"><ol type="1">
-<li><pre class="literallayout"><a name="id286033-bb"></a>instance(<span class="bold"><strong>void</strong></span> * val = 0, <span class="bold"><strong>void</strong></span>(*)(<span class="bold"><strong>void</strong></span> *val) destructor = 0);</pre></li>
-<li><pre class="literallayout"><a name="id286049-bb"></a>instance(<span class="bold"><strong>const</strong></span> instance &amp; first);</pre></li>
-<li><pre class="literallayout">instance&amp; <a name="id286056-bb"></a><span class="bold"><strong>operator</strong></span>=(instance &amp; first);</pre></li>
-<li><pre class="literallayout"><a name="id286048-bb"></a>~instance();</pre></li>
+<li><pre class="literallayout"><a name="id287473-bb"></a>instance(<span class="bold"><strong>void</strong></span> * val = 0, <span class="bold"><strong>void</strong></span>(*)(<span class="bold"><strong>void</strong></span> *val) destructor = 0);</pre></li>
+<li><pre class="literallayout"><a name="id287490-bb"></a>instance(<span class="bold"><strong>const</strong></span> instance &amp; first);</pre></li>
+<li><pre class="literallayout">instance&amp; <a name="id287496-bb"></a><span class="bold"><strong>operator</strong></span>=(instance &amp; first);</pre></li>
+<li><pre class="literallayout"><a name="id287489-bb"></a>~instance();</pre></li>
 </ol></div>
 </div>
 </div>

Modified: sandbox/libs/extension/doc/html/boost/reflections/parameter.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost/reflections/parameter.html (original)
+++ sandbox/libs/extension/doc/html/boost/reflections/parameter.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -38,8 +38,8 @@
   {
   <span class="bold"><strong>public</strong></span>:
 
- <span class="emphasis"><em>// public member functions</em></span>
- <span class="type"><span class="bold"><strong>void</strong></span></span> convert(<span class="bold"><strong>void</strong></span> *, <span class="bold"><strong>void</strong></span> *) <span class="bold"><strong>const</strong></span>;
+ <span class="emphasis"><em>// public member functions</em></span>
+ <span class="type"><span class="bold"><strong>void</strong></span></span> convert(<span class="bold"><strong>void</strong></span> *, <span class="bold"><strong>void</strong></span> *) <span class="bold"><strong>const</strong></span>;
   };
   <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> S&gt;
   <span class="bold"><strong>class</strong></span> specialized_converter :
@@ -47,36 +47,36 @@
   {
   <span class="bold"><strong>public</strong></span>:
     <span class="emphasis"><em>// construct/copy/destruct</em></span>
- specialized_converter(<span class="bold"><strong>void</strong></span>(*)(T *, S *));
+ specialized_converter(<span class="bold"><strong>void</strong></span>(*)(T *, S *));
 
- <span class="emphasis"><em>// public member functions</em></span>
- <span class="type"><span class="bold"><strong>void</strong></span></span> convert(<span class="bold"><strong>void</strong></span> *, <span class="bold"><strong>void</strong></span> *) <span class="bold"><strong>const</strong></span>;
+ <span class="emphasis"><em>// public member functions</em></span>
+ <span class="type"><span class="bold"><strong>void</strong></span></span> convert(<span class="bold"><strong>void</strong></span> *, <span class="bold"><strong>void</strong></span> *) <span class="bold"><strong>const</strong></span>;
   };
   <span class="emphasis"><em>// construct/copy/destruct</em></span>
- parameter(T);
+ parameter(T);
 
- <span class="emphasis"><em>// public member functions</em></span>
- <span class="type">TypeInfo</span> type() <span class="bold"><strong>const</strong></span>;
- <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> S&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> converts_to_with_func(<span class="bold"><strong>void</strong></span>(*)(T *, S *)) ;
- <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> S&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> converts_to() ;
+ <span class="emphasis"><em>// public member functions</em></span>
+ <span class="type">TypeInfo</span> type() <span class="bold"><strong>const</strong></span>;
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> S&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> converts_to_with_func(<span class="bold"><strong>void</strong></span>(*)(T *, S *)) ;
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> S&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> converts_to() ;
 };</pre></div>
 <div class="refsect1" lang="en">
-<a name="id456138"></a><h2>Description</h2>
+<a name="id457598"></a><h2>Description</h2>
 <div class="refsect2" lang="en">
-<a name="id456143"></a><h3>
+<a name="id457603"></a><h3>
 <a name="boost.reflections.parameterconstruct-copy-destruct"></a><code class="computeroutput">parameter</code>
         public
        construct/copy/destruct</h3>
-<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id286324-bb"></a>parameter(T value);</pre></li></ol></div>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id287824-bb"></a>parameter(T value);</pre></li></ol></div>
 </div>
 <div class="refsect2" lang="en">
-<a name="id456184"></a><h3>
-<a name="id286283-bb"></a><code class="computeroutput">parameter</code> public member functions</h3>
+<a name="id457644"></a><h3>
+<a name="id287782-bb"></a><code class="computeroutput">parameter</code> public member functions</h3>
 <div class="orderedlist"><ol type="1">
-<li><pre class="literallayout"><span class="type">TypeInfo</span> <a name="id286286-bb"></a>type() <span class="bold"><strong>const</strong></span>;</pre></li>
+<li><pre class="literallayout"><span class="type">TypeInfo</span> <a name="id287785-bb"></a>type() <span class="bold"><strong>const</strong></span>;</pre></li>
 <li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> S&gt;
- <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id286293-bb"></a>converts_to_with_func(<span class="bold"><strong>void</strong></span>(*)(T *, S *) convert_func) ;</pre></li>
-<li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> S&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id286311-bb"></a>converts_to() ;</pre></li>
+ <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id287792-bb"></a>converts_to_with_func(<span class="bold"><strong>void</strong></span>(*)(T *, S *) convert_func) ;</pre></li>
+<li><pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> S&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id287810-bb"></a>converts_to() ;</pre></li>
 </ol></div>
 </div>
 </div>

Modified: sandbox/libs/extension/doc/html/boost/reflections/parameter/default_converter.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost/reflections/parameter/default_converter.html (original)
+++ sandbox/libs/extension/doc/html/boost/reflections/parameter/default_converter.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -5,7 +5,7 @@
 <link rel="stylesheet" href="../../../boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.67.2">
 <link rel="start" href="../../../index.html" title="Chapter 1. Boost.Extension">
-<link rel="up" href="../parameter.html#id456138" title="Description">
+<link rel="up" href="../parameter.html#id457598" title="Description">
 <link rel="prev" href="../generic_parameter/basic_converter.html" title="Class basic_converter">
 <link rel="next" href="specialized_converter.html" title="Class template specialized_converter">
 </head>
@@ -20,7 +20,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../generic_parameter/basic_converter.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../parameter.html#id456138"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="specialized_converter.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="../generic_parameter/basic_converter.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../parameter.html#id457598"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="specialized_converter.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="refentry" lang="en">
 <a name="boost.reflections.parameter.default_converter"></a><div class="titlepage"></div>
@@ -36,15 +36,15 @@
 {
 <span class="bold"><strong>public</strong></span>:
 
- <span class="emphasis"><em>// public member functions</em></span>
- <span class="type"><span class="bold"><strong>void</strong></span></span> convert(<span class="bold"><strong>void</strong></span> *, <span class="bold"><strong>void</strong></span> *) <span class="bold"><strong>const</strong></span>;
+ <span class="emphasis"><em>// public member functions</em></span>
+ <span class="type"><span class="bold"><strong>void</strong></span></span> convert(<span class="bold"><strong>void</strong></span> *, <span class="bold"><strong>void</strong></span> *) <span class="bold"><strong>const</strong></span>;
 };</pre></div>
 <div class="refsect1" lang="en">
-<a name="id456412"></a><h2>Description</h2>
+<a name="id457873"></a><h2>Description</h2>
 <div class="refsect2" lang="en">
-<a name="id456417"></a><h3>
-<a name="id286222-bb"></a><code class="computeroutput">default_converter</code> public member functions</h3>
-<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id286225-bb"></a>convert(<span class="bold"><strong>void</strong></span> * val, <span class="bold"><strong>void</strong></span> * dest) <span class="bold"><strong>const</strong></span>;</pre></li></ol></div>
+<a name="id457878"></a><h3>
+<a name="id287722-bb"></a><code class="computeroutput">default_converter</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id287725-bb"></a>convert(<span class="bold"><strong>void</strong></span> * val, <span class="bold"><strong>void</strong></span> * dest) <span class="bold"><strong>const</strong></span>;</pre></li></ol></div>
 </div>
 </div>
 </div>
@@ -58,7 +58,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../generic_parameter/basic_converter.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../parameter.html#id456138"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="specialized_converter.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="../generic_parameter/basic_converter.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../parameter.html#id457598"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="specialized_converter.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/libs/extension/doc/html/boost/reflections/parameter/specialized_converter.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost/reflections/parameter/specialized_converter.html (original)
+++ sandbox/libs/extension/doc/html/boost/reflections/parameter/specialized_converter.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -5,7 +5,7 @@
 <link rel="stylesheet" href="../../../boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.67.2">
 <link rel="start" href="../../../index.html" title="Chapter 1. Boost.Extension">
-<link rel="up" href="../parameter.html#id456138" title="Description">
+<link rel="up" href="../parameter.html#id457598" title="Description">
 <link rel="prev" href="default_converter.html" title="Class template default_converter">
 <link rel="next" href="../basic_reflection.html" title="Class template basic_reflection">
 </head>
@@ -20,7 +20,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="default_converter.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../parameter.html#id456138"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../basic_reflection.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="default_converter.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../parameter.html#id457598"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../basic_reflection.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="refentry" lang="en">
 <a name="boost.reflections.parameter.specialized_converter"></a><div class="titlepage"></div>
@@ -36,24 +36,24 @@
 {
 <span class="bold"><strong>public</strong></span>:
   <span class="emphasis"><em>// construct/copy/destruct</em></span>
- specialized_converter(<span class="bold"><strong>void</strong></span>(*)(T *, S *));
+ specialized_converter(<span class="bold"><strong>void</strong></span>(*)(T *, S *));
 
- <span class="emphasis"><em>// public member functions</em></span>
- <span class="type"><span class="bold"><strong>void</strong></span></span> convert(<span class="bold"><strong>void</strong></span> *, <span class="bold"><strong>void</strong></span> *) <span class="bold"><strong>const</strong></span>;
+ <span class="emphasis"><em>// public member functions</em></span>
+ <span class="type"><span class="bold"><strong>void</strong></span></span> convert(<span class="bold"><strong>void</strong></span> *, <span class="bold"><strong>void</strong></span> *) <span class="bold"><strong>const</strong></span>;
 };</pre></div>
 <div class="refsect1" lang="en">
-<a name="id456614"></a><h2>Description</h2>
+<a name="id458074"></a><h2>Description</h2>
 <div class="refsect2" lang="en">
-<a name="id456619"></a><h3>
+<a name="id458079"></a><h3>
 <a name="boost.reflections.parameter.specialized_converterconstruct-copy-destruct"></a><code class="computeroutput">specialized_converter</code>
         public
        construct/copy/destruct</h3>
-<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id286277-bb"></a>specialized_converter(<span class="bold"><strong>void</strong></span>(*)(T *, S *) convert_function);</pre></li></ol></div>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id287776-bb"></a>specialized_converter(<span class="bold"><strong>void</strong></span>(*)(T *, S *) convert_function);</pre></li></ol></div>
 </div>
 <div class="refsect2" lang="en">
-<a name="id456668"></a><h3>
-<a name="id286257-bb"></a><code class="computeroutput">specialized_converter</code> public member functions</h3>
-<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id286260-bb"></a>convert(<span class="bold"><strong>void</strong></span> * val, <span class="bold"><strong>void</strong></span> * dest) <span class="bold"><strong>const</strong></span>;</pre></li></ol></div>
+<a name="id458127"></a><h3>
+<a name="id287756-bb"></a><code class="computeroutput">specialized_converter</code> public member functions</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id287759-bb"></a>convert(<span class="bold"><strong>void</strong></span> * val, <span class="bold"><strong>void</strong></span> * dest) <span class="bold"><strong>const</strong></span>;</pre></li></ol></div>
 </div>
 </div>
 </div>
@@ -67,7 +67,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="default_converter.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../parameter.html#id456138"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../basic_reflection.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="default_converter.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../parameter.html#id457598"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../basic_reflection.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/libs/extension/doc/html/boost/reflections/parameter_map.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost/reflections/parameter_map.html (original)
+++ sandbox/libs/extension/doc/html/boost/reflections/parameter_map.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -7,7 +7,7 @@
 <link rel="start" href="../../index.html" title="Chapter 1. Boost.Extension">
 <link rel="up" href="../../boost_extension/reference.html#header.boost.reflection.adapter.hpp" title="Header &lt;boost/reflection/adapter.hpp&gt;">
 <link rel="prev" href="basic_parameter_map.html" title="Class template basic_parameter_map">
-<link rel="next" href="../../factory_T_BOOST_PP_COMMA_IF(N)_BOOST_PP_ENUM_PARAMS(N,_Param)__id285528.html" title="Class template factory&lt;T BOOST_PP_COMMA_IF(N) BOOST_PP_ENUM_PARAMS(N, Param)&gt;">
+<link rel="next" href="../extensions/adapter.html" title="Class template adapter">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -20,7 +20,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="basic_parameter_map.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_extension/reference.html#header.boost.reflection.adapter.hpp"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../../factory_T_BOOST_PP_COMMA_IF(N)_BOOST_PP_ENUM_PARAMS(N,_Param)__id285528.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="basic_parameter_map.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_extension/reference.html#header.boost.reflection.adapter.hpp"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../extensions/adapter.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="refentry" lang="en">
 <a name="boost.reflections.parameter_map"></a><div class="titlepage"></div>
@@ -32,7 +32,7 @@
 <div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">
 <span class="bold"><strong>typedef</strong></span> basic_parameter_map parameter_map;</pre></div>
 <div class="refsect1" lang="en">
-<a name="id451841"></a><h2>Description</h2>
+<a name="id453237"></a><h2>Description</h2>
 <p>The most common version of basic_parameter_map. </p>
 </div>
 </div>
@@ -46,7 +46,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="basic_parameter_map.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_extension/reference.html#header.boost.reflection.adapter.hpp"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../../factory_T_BOOST_PP_COMMA_IF(N)_BOOST_PP_ENUM_PARAMS(N,_Param)__id285528.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="basic_parameter_map.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_extension/reference.html#header.boost.reflection.adapter.hpp"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../extensions/adapter.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/libs/extension/doc/html/boost/reflections/parameter_unavailable_exception.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost/reflections/parameter_unavailable_exception.html (original)
+++ sandbox/libs/extension/doc/html/boost/reflections/parameter_unavailable_exception.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -33,18 +33,18 @@
 <span class="bold"><strong>class</strong></span> parameter_unavailable_exception {
 <span class="bold"><strong>public</strong></span>:
 
- <span class="emphasis"><em>// public member functions</em></span>
- <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> what() ;
- <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> what() ;
+ <span class="emphasis"><em>// public member functions</em></span>
+ <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> what() ;
+ <span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> what() ;
 };</pre></div>
 <div class="refsect1" lang="en">
-<a name="id450944"></a><h2>Description</h2>
+<a name="id452215"></a><h2>Description</h2>
 <div class="refsect2" lang="en">
-<a name="id450949"></a><h3>
-<a name="id285246-bb"></a><code class="computeroutput">parameter_unavailable_exception</code> public member functions</h3>
+<a name="id452220"></a><h3>
+<a name="id286684-bb"></a><code class="computeroutput">parameter_unavailable_exception</code> public member functions</h3>
 <div class="orderedlist"><ol type="1">
-<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a name="id285249-bb"></a>what() ;</pre></li>
-<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a name="id285256-bb"></a>what() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a name="id286687-bb"></a>what() ;</pre></li>
+<li><pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> <span class="bold"><strong>char</strong></span> *</span> <a name="id286694-bb"></a>what() ;</pre></li>
 </ol></div>
 </div>
 </div>

Modified: sandbox/libs/extension/doc/html/boost_extension/appendices/appendix_a.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/appendices/appendix_a.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/appendices/appendix_a.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -45,7 +45,7 @@
         how this is done.
       </p>
 <a name="boost_extension.appendices.appendix_a.warning"></a><h3>
-<a name="id458242"></a>
+<a name="id459703"></a>
         <a href="appendix_a.html#boost_extension.appendices.appendix_a.warning">Warning</a>
       </h3>
 <p>

Modified: sandbox/libs/extension/doc/html/boost_extension/extension_reflection.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/extension_reflection.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/extension_reflection.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -7,8 +7,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.67.2">
 <link rel="start" href="../index.html" title="Chapter 1. Boost.Extension">
 <link rel="up" href="../index.html" title="Chapter 1. Boost.Extension">
-<link rel="prev" href="tutorials/tutorial03.html" title=" Tutorial 3 - Multiple
- and Implementation Inheritance">
+<link rel="prev" href="tutorials/tutorial04.html" title=" Tutorial 4 - Multi-type
+ Containers">
 <link rel="next" href="type_safety.html" title=" Type Safety of Boost.Extension">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,7 +22,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="tutorials/tutorial03.html"><img src="../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="type_safety.html"><img src="../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="tutorials/tutorial04.html"><img src="../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="type_safety.html"><img src="../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -178,7 +178,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="tutorials/tutorial03.html"><img src="../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="type_safety.html"><img src="../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="tutorials/tutorial04.html"><img src="../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="type_safety.html"><img src="../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/libs/extension/doc/html/boost_extension/introduction.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/introduction.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/introduction.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -38,7 +38,7 @@
         Shared library handling
       </li>
 <li>
- Typed data containers
+ Heterogeneous data containers
       </li>
 <li>
         Factories
@@ -52,7 +52,7 @@
     </p>
 <div class="itemizedlist"><ul type="disc">
 <li>
- Multiple and virtual inheritance are supported.
+ Multiple and virtual inheritance are supported for factories and reflections.
       </li>
 <li>
         Library users do not need to use any macros (besides those required by Windows

Modified: sandbox/libs/extension/doc/html/boost_extension/reference.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/reference.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/reference.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -67,9 +67,9 @@
 <a name="header.boost.extension.convenience.hpp"></a>Header &lt;boost/extension/convenience.hpp&gt;</h4></div></div></div>
 <pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
   <span class="bold"><strong>namespace</strong></span> extensions {
- <span class="type"><span class="bold"><strong>bool</strong></span></span> load_single_library(factory_map &amp;, <span class="bold"><strong>const</strong></span> std::string &amp;,
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> load_single_library(factory_map &amp;, <span class="bold"><strong>const</strong></span> std::string &amp;,
                              <span class="bold"><strong>const</strong></span> std::string &amp;);
- <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="boost.extensions.load_single_library_id284621"></a>load_single_library(type_map &amp; current_type_map,
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="boost.extensions.load_single_library_id286031"></a>load_single_library(type_map &amp; current_type_map,
                              <span class="bold"><strong>const</strong></span> std::string &amp; library_path);
   }
 }</pre>
@@ -147,9 +147,13 @@
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="header.boost.extension.adapter.hpp"></a>Header &lt;boost/extension/adapter.hpp&gt;</h4></div></div></div>
-<pre class="synopsis">
-
-N</pre>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+ <span class="bold"><strong>namespace</strong></span> extensions {
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Interface, <span class="bold"><strong>typename</strong></span> Info = std::string,
+ <span class="bold"><strong>typename</strong></span> TypeInfo = default_type_info&gt;
+ <span class="bold"><strong>class</strong></span> adapter;
+ }
+}</pre>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h4 class="title">

Modified: sandbox/libs/extension/doc/html/boost_extension/tutorials.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/tutorials.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/tutorials.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -34,6 +34,8 @@
       Factories</a></span></dt>
 <dt><span class="section"><a href="tutorials/tutorial03.html"> Tutorial 3 - Multiple
       and Implementation Inheritance</a></span></dt>
+<dt><span class="section"><a href="tutorials/tutorial04.html"> Tutorial 4 - Multi-type
+ Containers</a></span></dt>
 </dl></div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">

Modified: sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial02.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial02.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial02.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -113,7 +113,7 @@
 <p>
       </p>
 <p>
- Here though, instead of using the <code class="literal"><code class="computeroutput">shared_library::get</code></code>
+ Here though, instead of using the <code class="literal"><code class="computeroutput">shared_library::get</code></code>
         function, we use the _shared_library<span class="underline">call</span>
         function. It expects a function with the following signature:
       </p>

Modified: sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial03.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial03.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial03.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -9,8 +9,8 @@
 <link rel="up" href="../tutorials.html" title="Tutorials">
 <link rel="prev" href="tutorial02.html" title=" Tutorial 2 - Basic
       Factories">
-<link rel="next" href="../extension_reflection.html" title=" Boost.Reflection/Boost.Extension
- Interoperability">
+<link rel="next" href="tutorial04.html" title=" Tutorial 4 - Multi-type
+ Containers">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -23,7 +23,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="tutorial02.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../extension_reflection.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="tutorial02.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="tutorial04.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
@@ -264,7 +264,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="tutorial02.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../extension_reflection.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="tutorial02.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="tutorial04.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial04.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial04.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial04.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -1,14 +1,16 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Tutorial 4</title>
+<title> Tutorial 4 - Multi-type
+ Containers</title>
 <link rel="stylesheet" href="../../boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.67.2">
 <link rel="start" href="../../index.html" title="Chapter 1. Boost.Extension">
 <link rel="up" href="../tutorials.html" title="Tutorials">
 <link rel="prev" href="tutorial03.html" title=" Tutorial 3 - Multiple
       and Implementation Inheritance">
-<link rel="next" href="tutorial05.html" title=" Tutorial 5">
+<link rel="next" href="../extension_reflection.html" title=" Boost.Reflection/Boost.Extension
+ Interoperability">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -21,241 +23,125 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="tutorial03.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="tutorial05.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="tutorial03.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../extension_reflection.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_extension.tutorials.tutorial04"></a> Tutorial 4</h3></div></div></div>
+<a name="boost_extension.tutorials.tutorial04"></a><a href="tutorial04.html" title=" Tutorial 4 - Multi-type
+ Containers"> Tutorial 4 - Multi-type
+ Containers</a></h3></div></div></div>
 <p>
- In this tutorial we will see different features of the library related to
- multiple loading of the same library, instance or interface.
+ There are two types of containers in the library that can hold objects of
+ heterogeneous types. The <code class="literal"><code class="computeroutput">type_map</code></code>
+ is designed for use with <code class="literal"><code class="computeroutput">shared_library</code></code>
+ so that a standard function signature, taking a <code class="literal"><code class="computeroutput">type_map</code></code>,
+ can be provided by each shared library, helping to avoid type safety problems.
       </p>
 <p>
- We will follow some parts of versions example (<code class="literal">examples/versioning</code>).
- As we expect that at this point you've gone through the first tutorials we
- will not enter into specific details of the use of the library.
+ The second type, <code class="literal"><code class="computeroutput">parameter_map</code></code>,
+ is designed for use with reflections or factories where the type of the function
+ is not known at compile time. A <code class="literal"><code class="computeroutput">parameter_map</code></code>
+ can be passed into such a factory or reflection, and then searched for needed
+ parameters, and return a list of missing parameters if necessary.
       </p>
 <p>
- First, we want to show that it is possible to load several libraries into
- one factory map. We'll create a new HelloWorld library very similar to the
- one that we have described in the first tutorial.
+ The <code class="literal"><code class="computeroutput">type_map</code></code>
+ is the simplest of the two, as it can hold exactly one element of each type.
+ It can hold multiple objects, but they will each be of a different type.
       </p>
 <p>
- Let's remember the classes that we have implemented (in <code class="literal">hello_world.cpp</code>)
- for the "hello world" example:
+ Here's an example showing a <code class="literal"><code class="computeroutput">type_map</code></code>
+ holding an <code class="computeroutput"><span class="keyword">int</span></code> and a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code>.
       </p>
 <p>
         
 </p>
-<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">world</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
-<span class="special">{</span>
-<span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"world!"</span><span class="special">;}</span>
-<span class="special">};</span>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">extensions</span><span class="special">;</span>
 
-<span class="keyword">class</span> <span class="identifier">hello</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
-<span class="special">{</span>
-<span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"hello"</span><span class="special">;}</span>
-<span class="special">};</span>
+<span class="comment">// A type_map can hold one of each type, constructed
+</span><span class="comment">// as needed.
+</span><span class="identifier">type_map</span> <span class="identifier">types</span><span class="special">;</span>
+<span class="keyword">int</span><span class="special">&amp;</span> <span class="identifier">first_int</span><span class="special">(</span><span class="identifier">types</span><span class="special">.</span><span class="identifier">get</span><span class="special">());</span>
+<span class="identifier">first_int</span> <span class="special">=</span> <span class="number">100</span><span class="special">;</span>
 
-<span class="keyword">extern</span> <span class="string">"C"</span> <span class="keyword">void</span> <span class="identifier">BOOST_EXTENSION_EXPORT_DECL</span>
-<span class="identifier">extension_export_word</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">extensions</span><span class="special">::</span><span class="identifier">factory_map</span> <span class="special">&amp;</span> <span class="identifier">fm</span><span class="special">)</span>
-<span class="special">{</span>
- <span class="identifier">fm</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;()[</span><span class="number">1</span><span class="special">].</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">hello</span><span class="special">&gt;();</span>
- <span class="identifier">fm</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;()[</span><span class="number">2</span><span class="special">].</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">world</span><span class="special">&gt;();</span>
-<span class="special">}</span>
-</pre>
-<p>
- </p>
-<p>
- And now let's see the new version that we've implemented for this example
- (as defined in <code class="literal">hello_world_versions.cpp</code>). The classes
- have the same name and methods, both implement the same interface, but the
- <code class="computeroutput"><span class="identifier">get_val</span><span class="special">()</span></code>
- methods differ in the returned string (to be able to recognize each one after
- loading them).
- </p>
-<p>
-
-</p>
-<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">world</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
-<span class="special">{</span>
-<span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"world! v2"</span><span class="special">;}</span>
-<span class="special">};</span>
+<span class="comment">// This actually points to the same int as first_int.
+</span><span class="keyword">int</span><span class="special">&amp;</span> <span class="identifier">second_int</span><span class="special">(</span><span class="identifier">types</span><span class="special">.</span><span class="identifier">get</span><span class="special">());</span>
 
-<span class="keyword">class</span> <span class="identifier">hello</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
-<span class="special">{</span>
-<span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"| v2 hello"</span><span class="special">;}</span>
-<span class="special">};</span>
+<span class="identifier">second_int</span> <span class="special">=</span> <span class="number">500</span><span class="special">;</span>
 
-<span class="keyword">extern</span> <span class="string">"C"</span> <span class="keyword">void</span> <span class="identifier">BOOST_EXTENSION_EXPORT_DECL</span>
-<span class="identifier">extension_export_word</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">extensions</span><span class="special">::</span><span class="identifier">factory_map</span> <span class="special">&amp;</span> <span class="identifier">fm</span><span class="special">)</span>
-<span class="special">{</span>
- <span class="identifier">fm</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;()[</span><span class="number">22</span><span class="special">].</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">world</span><span class="special">&gt;();</span>
- <span class="comment">// int could be used as version (v2 word 2)
-</span> <span class="identifier">fm</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;()[</span><span class="number">21</span><span class="special">].</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">hello</span><span class="special">&gt;();</span>
- <span class="comment">// int could be used as version (v2 word 1)
-</span><span class="special">}</span>
-</pre>
-<p>
- </p>
-<p>
- Also note that we are using the Info int to store some kind of "version",
- and then we could differentiate the classes by its int (see Info class tutorial
- for more information on this).
- </p>
-<p>
-
-</p>
-<pre class="programlisting"><span class="identifier">factory_map</span> <span class="identifier">fm</span><span class="special">;</span>
-
-<span class="comment">// load hello world first version
-</span><span class="identifier">load_single_library</span><span class="special">(</span><span class="identifier">fm</span><span class="special">,</span> <span class="string">"libHelloWorldLib.extension"</span><span class="special">,</span>
- <span class="string">"extension_export_word"</span><span class="special">);</span>
+<span class="comment">// This will print out 500.
+</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"first_int: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">first_int</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
 
-<span class="comment">// load hello world second version
-</span><span class="identifier">load_single_library</span><span class="special">(</span><span class="identifier">fm</span><span class="special">,</span> <span class="string">"libHelloWorldLibv2.extension"</span><span class="special">,</span>
- <span class="string">"extension_export_word"</span><span class="special">);</span>
-
-<span class="comment">// load hello world second version again
-</span><span class="identifier">load_single_library</span><span class="special">(</span><span class="identifier">fm</span><span class="special">,</span> <span class="string">"libHelloWorldLibv2.extension"</span><span class="special">,</span>
- <span class="string">"extension_export_word"</span><span class="special">);</span>
-</pre>
-<p>
- </p>
-<p>
- We can see here that loading multiple libraries is as easy as calling <code class="computeroutput"><span class="identifier">load_single_library</span></code> for each one and using
- the same factory map.
- </p>
-<p>
- Then you can access them as any other factory_map:
- </p>
-<p>
-
-</p>
-<pre class="programlisting"><span class="keyword">for</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span><span class="special">&lt;</span><span class="identifier">factory</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span> <span class="special">&gt;::</span><span class="identifier">iterator</span> <span class="identifier">current_word</span> <span class="special">=</span>
- <span class="identifier">factory_list</span><span class="special">.</span><span class="identifier">begin</span><span class="special">();</span> <span class="identifier">current_word</span> <span class="special">!=</span> <span class="identifier">factory_list</span><span class="special">.</span><span class="identifier">end</span><span class="special">();</span>
- <span class="special">++</span><span class="identifier">current_word</span><span class="special">)</span> <span class="special">{</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">auto_ptr</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">&gt;</span> <span class="identifier">word_ptr</span><span class="special">(</span><span class="identifier">current_word</span><span class="special">-&gt;</span><span class="identifier">create</span><span class="special">());</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">word_ptr</span><span class="special">-&gt;</span><span class="identifier">get_val</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">" "</span><span class="special">;</span>
-<span class="special">}</span>
-<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// Arbitrary default-constructible types can be held in a type_map.
+</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;&amp;</span> <span class="identifier">string_pairs</span><span class="special">(</span><span class="identifier">types</span><span class="special">.</span><span class="identifier">get</span><span class="special">());</span>
 </pre>
 <p>
       </p>
 <p>
- We get the following output:
- </p>
-<div class="informaltable"><table class="table">
-<colgroup><col></colgroup>
-<tbody><tr><td>
- <p>
- <code class="literal">words:</code><br> <code class="literal">hello world! | v2 hello
- world! v2 | v2 hello world! v2</code>
- </p>
- </td></tr></tbody>
-</table></div>
-<p>
- The first "hello world" is returned by the first version of the
- library, and the second and third returned by the second version.
+ Note that pulling an integer out of it twice results in two references to
+ the same integer. The same occurs with any type placed into the <code class="literal"><code class="computeroutput">type_map</code></code>.
       </p>
 <p>
- Finally, we will show another example similar to the former but in this case
- we implement a different interface, same class name ('hello') but with different
- interface ('salute').
+ A <code class="literal"><code class="computeroutput">parameter_map</code></code>
+ on the other hand, can hold any number of elements of any type, and can automatically
+ convert objects to compatible types.
       </p>
 <p>
- Let's see the interface:
+ The basic type stored in a <code class="literal"><code class="computeroutput">parameter_map</code></code>
+ is a <code class="literal"><code class="computeroutput">parameter</code></code>.
+ It is possible to declare a <code class="literal"><code class="computeroutput">parameter</code></code>
+ as being convertible to other types.
       </p>
 <p>
-
+ By default, a <code class="computeroutput"><span class="keyword">static_cast</span></code> is
+ used to convert the types, but any conversion function can be provided.
 </p>
-<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">salute</span>
-<span class="special">{</span>
-<span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">salute</span><span class="special">(){}</span>
- <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">say</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">""</span><span class="special">;}</span>
-<span class="special">};</span>
+<pre class="programlisting"><span class="identifier">parameter</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;*</span> <span class="identifier">p</span> <span class="special">=</span> <span class="keyword">new</span> <span class="identifier">parameter</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</span><span class="number">5</span><span class="special">);</span>
+<span class="identifier">p</span><span class="special">-&gt;</span><span class="identifier">converts_to</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;();</span>
+<span class="identifier">p</span><span class="special">-&gt;</span><span class="identifier">converts_to</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;();</span>
 </pre>
 <p>
       </p>
 <p>
- And the implementations:
+ To have a float change to its ceiling when converted to an integer, one could
+ write:
       </p>
 <p>
         
 </p>
-<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">hello</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">salute</span>
-<span class="special">{</span>
-<span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span><span class="identifier">say</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="special">{</span><span class="keyword">return</span> <span class="string">"hello"</span><span class="special">;}</span>
-<span class="special">};</span>
-
-<span class="keyword">class</span> <span class="identifier">bye</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">salute</span>
-<span class="special">{</span>
-<span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span><span class="identifier">say</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="special">{</span><span class="keyword">return</span> <span class="string">"bye!"</span><span class="special">;}</span>
-<span class="special">};</span>
-
-
-<span class="keyword">extern</span> <span class="string">"C"</span> <span class="keyword">void</span> <span class="identifier">BOOST_EXTENSION_EXPORT_DECL</span>
-<span class="identifier">extension_export_salute</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">extensions</span><span class="special">::</span><span class="identifier">factory_map</span> <span class="special">&amp;</span> <span class="identifier">fm</span><span class="special">)</span>
-<span class="special">{</span>
- <span class="identifier">fm</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">salute</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;()[</span><span class="number">1</span><span class="special">].</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">hello</span><span class="special">&gt;();</span>
- <span class="identifier">fm</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">salute</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;()[</span><span class="number">2</span><span class="special">].</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">bye</span><span class="special">&gt;();</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">FloatCeilingToInt</span><span class="special">(</span><span class="keyword">float</span><span class="special">*</span> <span class="identifier">f</span><span class="special">,</span> <span class="keyword">int</span><span class="special">*</span> <span class="identifier">i</span><span class="special">)</span> <span class="special">{</span>
+ <span class="special">*</span><span class="identifier">i</span> <span class="special">=</span> <span class="keyword">static_cast</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ceil</span><span class="special">(*</span><span class="identifier">f</span><span class="special">));</span>
 <span class="special">}</span>
 </pre>
 <p>
- </p>
-<p>
- Note that we are adding a new class called 'hello' too but that implements
- 'salute' interface.
- </p>
+
+</p>
+<pre class="programlisting"><span class="identifier">parameter</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;*</span> <span class="identifier">p</span> <span class="special">=</span> <span class="keyword">new</span> <span class="identifier">parameter</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;(</span><span class="number">4.9f</span><span class="special">);</span>
+<span class="identifier">p</span><span class="special">-&gt;</span><span class="identifier">converts_to_with_func</span><span class="special">(&amp;</span><span class="identifier">FloatCeilingToInt</span><span class="special">);</span>
+<span class="identifier">p</span><span class="special">-&gt;</span><span class="identifier">cast</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;();</span> <span class="comment">// returns 5
+</span></pre>
 <p>
- <br>
       </p>
 <p>
- Finally in the main function we get the factory list specifying that we want
- the 'salute' factory. We iterate it getting each of the salutes, including
- hello.
+ Once created, a <code class="literal"><code class="computeroutput">parameter</code></code>
+ can be placed into a <code class="literal"><code class="computeroutput">parameter_map</code></code>,
+ along with some sort of name. This name can be of arbitrary type: <code class="literal"><code class="computeroutput">parameter_map</code></code>
+ is a specialized <code class="literal"><code class="computeroutput">basic_parameter_map</code></code>
+ with the std::string type as the name, but other types are also possible.
       </p>
 <p>
+ A <code class="literal"><code class="computeroutput">parameter_map</code></code>
+ works much like a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">multi_map</span></code> - since it is built on one. It
+ has a few specialty methods though. It is possible, for instance, to retrieve
+ all values that match a certain type and name, or the first value that matches.
         
 </p>
-<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">factory</span><span class="special">&lt;</span><span class="identifier">salute</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">salute_factory_list</span> <span class="special">=</span>
- <span class="identifier">fm</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">salute</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;();</span>
-
-<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"salutes: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
-<span class="keyword">for</span> <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">factory</span><span class="special">&lt;</span><span class="identifier">salute</span><span class="special">&gt;</span> <span class="special">&gt;::</span><span class="identifier">iterator</span> <span class="identifier">current_salute</span> <span class="special">=</span>
- <span class="identifier">salute_factory_list</span><span class="special">.</span><span class="identifier">begin</span><span class="special">();</span>
- <span class="identifier">current_salute</span> <span class="special">!=</span> <span class="identifier">salute_factory_list</span><span class="special">.</span><span class="identifier">end</span><span class="special">();</span>
- <span class="special">++</span><span class="identifier">current_salute</span><span class="special">)</span> <span class="special">{</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">auto_ptr</span><span class="special">&lt;</span><span class="identifier">salute</span><span class="special">&gt;</span> <span class="identifier">salute_ptr</span><span class="special">(</span><span class="identifier">current_salute</span><span class="special">-&gt;</span><span class="identifier">second</span><span class="special">.</span><span class="identifier">create</span><span class="special">());</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">salute_ptr</span><span class="special">-&gt;</span><span class="identifier">say</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">" "</span><span class="special">;</span>
-<span class="special">}</span>
-<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">parameter_map</span> <span class="identifier">map</span><span class="special">;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">generic_parameter</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;*&gt;</span> <span class="identifier">int_vector</span><span class="special">(</span><span class="identifier">map</span><span class="special">.</span><span class="identifier">get</span><span class="special">(</span><span class="string">"some_int_name"</span><span class="special">));</span>
+<span class="identifier">generic_parameter</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;*</span> <span class="identifier">first_int</span><span class="special">(</span><span class="identifier">map</span><span class="special">.</span><span class="identifier">get_first</span><span class="special">(</span><span class="string">"some_int_name"</span><span class="special">));</span>
 </pre>
 <p>
       </p>
-<p>
- The output is:
- </p>
-<div class="informaltable"><table class="table">
-<colgroup><col></colgroup>
-<tbody><tr><td>
- <p>
- <code class="literal">salutes:</code> <br> <code class="literal">hello bye!</code>
- </p>
- </td></tr></tbody>
-</table></div>
-<p>
- In conclusion, with Boost.Extension we can implement the same class in different
- libraries, the same class for different interfaces and load multiple libraries
- into the same factory.
- </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
@@ -267,7 +153,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="tutorial03.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="tutorial05.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="tutorial03.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../extension_reflection.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/libs/extension/doc/html/boost_extension/type_safety.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/type_safety.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/type_safety.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -27,11 +27,6 @@
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
 <a name="boost_extension.type_safety"></a> Type Safety of Boost.Extension</h2></div></div></div>
 <p>
- This section is currently incomplete. More work is being done to avoid type
- safety issues with the <span class="underline">instance</span> class
- especially.
- </p>
-<p>
       Type-safe classes in Boost.Extension:
     </p>
 <div class="itemizedlist"><ul type="disc">
@@ -57,6 +52,21 @@
         void pointers that must be converted to function pointers.
       </li>
 </ul></div>
+<p>
+ To help alleviate type safety issues when using <code class="literal"><code class="computeroutput">shared_library</code></code>,
+ it is recommended that a common function signature be used in each shared library.
+ The library provides shortcuts for this technique, which are used in <a href="tutorials/tutorial02.html" title=" Tutorial 2 - Basic
+ Factories">boost_extension.tutorials.tutorial02</a>.
+ </p>
+<p>
+ To help overcome the type safety problems with the <span class="underline">instance</span>
+ class, it would be possible to have each <span class="underline">instance</span>
+ contain a reference to the <code class="literal"><code class="computeroutput">reflection</code></code>
+ that created it, and then only allow that functions from that <code class="literal"><code class="computeroutput">reflection</code></code> to be
+ called. The plan is to add this as an option, which can be disabled with a
+ preprocessor macro, but it may be added permanently, depending on input from
+ the Boost community.
+ </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>

Modified: sandbox/libs/extension/doc/html/index.html
==============================================================================
--- sandbox/libs/extension/doc/html/index.html (original)
+++ sandbox/libs/extension/doc/html/index.html 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -27,7 +27,7 @@
 </h3></div></div>
 <div><p class="copyright">Copyright © 2008 Jeremy Pack</p></div>
 <div><div class="legalnotice">
-<a name="id435100"></a><p>
+<a name="id435101"></a><p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
@@ -58,6 +58,8 @@
       Factories</a></span></dt>
 <dt><span class="section"><a href="boost_extension/tutorials/tutorial03.html"> Tutorial 3 - Multiple
       and Implementation Inheritance</a></span></dt>
+<dt><span class="section"><a href="boost_extension/tutorials/tutorial04.html"> Tutorial 4 - Multi-type
+ Containers</a></span></dt>
 </dl></dd>
 <dt><span class="section"><a href="boost_extension/extension_reflection.html"> Boost.Reflection/Boost.Extension
     Interoperability</a></span></dt>
@@ -89,8 +91,7 @@
 <div class="itemizedlist"><ul type="disc">
 <li>
         Deprecation of <code class="literal"><code class="computeroutput">factory_map</code></code>
- in favor of <code class="literal"><code class="computeroutput">type_map</code></code>
- (tutorials to come).
+ in favor of <code class="literal"><code class="computeroutput">type_map</code></code>.
       </li>
 <li>
         All reflection documentation will be contained within the Extension docs.
@@ -109,47 +110,6 @@
         will come soon.
       </li>
 </ul></div>
-<p>
- The latest updates in this documentation are:
- </p>
-<p>
- Class references:
- </p>
-<div class="itemizedlist"><ul type="disc">
-<li><code class="literal"><code class="computeroutput">shared_library</code></code></li>
-<li><code class="literal"><code class="computeroutput">type_map</code></code></li>
-<li><code class="literal"><code class="computeroutput">reflection</code></code></li>
-<li><code class="literal"><code class="computeroutput">parameter</code></code></li>
-<li><code class="literal"><code class="computeroutput">parameter_map</code></code></li>
-<li><code class="literal"><code class="computeroutput">adaptable_factory</code></code></li>
-<li><code class="literal"><code class="computeroutput">factory</code></code></li>
-</ul></div>
-<p>
- Tutorials:
- </p>
-<div class="itemizedlist"><ul type="disc">
-<li><a href="boost_extension/tutorials.html#boost_extension.tutorials.tutorial01" title=" Tutorial 1 - Using
- the shared_library class">Tutorial 1 - <code class="computeroutput"><span class="identifier">shared_library</span></code> class</a></li>
-<li><a href="boost_extension/tutorials/tutorial02.html" title=" Tutorial 2 - Basic
- Factories">Tutorial 2 - <code class="computeroutput"><span class="identifier">factory</span></code> class</a></li>
-<li><a href="boost_extension/tutorials/tutorial03.html" title=" Tutorial 3 - Multiple
- and Implementation Inheritance">Tutorial 3 - Multiple
- and Implementation Inheritance</a></li>
-</ul></div>
-<p>
- Other Sections:
- </p>
-<div class="itemizedlist"><ul type="disc">
-<li>Motivation</li>
-<li>Shared Libraries</li>
-<li><a href="boost_extension/extension_reflection.html" title=" Boost.Reflection/Boost.Extension
- Interoperability">Extension/Reflection
- Interoperability</a></li>
-</ul></div>
-<p>
- The other sections in the documentation should be updated over the next few
- weeks, in preparation for review.
- </p>
 </div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>

Modified: sandbox/libs/extension/doc/introduction.qbk
==============================================================================
--- sandbox/libs/extension/doc/introduction.qbk (original)
+++ sandbox/libs/extension/doc/introduction.qbk 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -16,7 +16,7 @@
 
 
 * Shared library handling
-* Typed data containers
+* Heterogeneous data containers
 * Factories
 * Reflection
  
@@ -24,7 +24,7 @@
 Among others, the library has the following features:
 
 
-* Multiple and virtual inheritance are supported.
+* Multiple and virtual inheritance are supported for factories and reflections.
 * Library users do not need to use any macros (besides those required by
 Windows for exported functions).
 * Only one external function required per shared library to export classes.

Modified: sandbox/libs/extension/doc/tutorial4.qbk
==============================================================================
--- sandbox/libs/extension/doc/tutorial4.qbk (original)
+++ sandbox/libs/extension/doc/tutorial4.qbk 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -5,9 +5,18 @@
 [/ http://www.boost.org/LICENSE_1_0.txt) ]
 [/ See http://www.boost.org/ for latest version. ]
 
-[section:tutorial04 Tutorial 4 - Type Maps and Paramter Maps]
-The _type_map_ class and the _parameter_map_ class are similar - both
-used for storing objects of heterogeneous types.
+[section:tutorial04 Tutorial 4 - Multi-type Containers]
+There are two types of containers in the library that can hold objects
+of heterogeneous types. The _type_map_ is designed for use with
+_shared_library_ so that a standard function signature, taking a
+_type_map_, can be provided by each shared library, helping to avoid
+type safety problems.
+
+The second type, _parameter_map_, is designed for use with reflections
+or factories where the type of the function is not known at compile time.
+A _parameter_map_ can be passed into such a factory or reflection, and
+then searched for needed parameters, and return a list of missing parameters
+if necessary.
 
 The _type_map_ is the simplest of the two, as it can hold exactly one
 element of each type. It can hold multiple objects, but they will each
@@ -43,4 +52,44 @@
 A _parameter_map_ on the other hand, can hold any number of elements of any
 type, and can automatically convert objects to compatible types.
 
+The basic type stored in a _parameter_map_ is a _parameter_. It is possible
+to declare a _parameter_ as being convertible to other types.
+
+By default, a `static_cast` is used to convert the types, but any conversion
+function can be provided.
+``
+parameter<int>* p = new parameter<int>(5);
+p->converts_to<float>();
+p->converts_to<double>();
+``
+
+To have a float change to its ceiling when converted to
+an integer, one could write:
+
+``
+void FloatCeilingToInt(float* f, int* i) {
+ *i = static_cast<int>(std::ceil(*f));
+}
+``
+``
+parameter<float>* p = new parameter<float>(4.9f);
+p->converts_to_with_func(&FloatCeilingToInt);
+p->cast<int>(); // returns 5
+``
+
+Once created, a _parameter_ can be placed into a _parameter_map_,
+along with some sort of name. This name can be of arbitrary type:
+_parameter_map_ is a specialized _basic_parameter_map_ with the
+std::string type as the name, but other types are also possible.
+
+A _parameter_map_ works much like a `std::multi_map` - since it is built
+on one. It has a few specialty methods though. It is possible, for instance,
+to retrieve all values that match a certain type and name, or the first
+value that matches.
+``
+parameter_map map;
+std::vector<generic_parameter<int>*> int_vector(map.get("some_int_name"));
+generic_parameter<int>* first_int(map.get_first("some_int_name"));
+``
+
 [endsect]
\ No newline at end of file

Modified: sandbox/libs/extension/doc/tutorial5.qbk
==============================================================================
--- sandbox/libs/extension/doc/tutorial5.qbk (original)
+++ sandbox/libs/extension/doc/tutorial5.qbk 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -7,4 +7,16 @@
 
 [section:tutorial05 Tutorial 5 - Adaptable Factories]
 
+In some cases, it may be desirable to construct an object that depends on
+other objects having been created, but their existence is not known at
+compile time.
+
+In other cases, it may be desirable to allow a constructor to pick and
+choose its parameters from a set of parameters.
+
+This is, in some ways, a simple sort of reflection (See _reflection_ and
+_simple_reflection_ for actual reflection) for the parameters of constructors.
+
+The _adaptable_factory_ class provides this functionality.
+
 [endsect]
\ No newline at end of file

Modified: sandbox/libs/extension/doc/tutorials.qbk
==============================================================================
--- sandbox/libs/extension/doc/tutorials.qbk (original)
+++ sandbox/libs/extension/doc/tutorials.qbk 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -9,5 +9,6 @@
 [include tutorial1.qbk]
 [include tutorial2.qbk]
 [include tutorial3.qbk]
+[include tutorial4.qbk]
 
 [endsect]
\ No newline at end of file

Modified: sandbox/libs/extension/doc/type_safety.qbk
==============================================================================
--- sandbox/libs/extension/doc/type_safety.qbk (original)
+++ sandbox/libs/extension/doc/type_safety.qbk 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -8,9 +8,6 @@
 
 [section:type_safety Type Safety of Boost.Extension]
 
-This section is currently incomplete. More work is being done to avoid
-type safety issues with the _instance_ class especially.
-
 Type-safe classes in Boost.Extension:
 
 * _factory_
@@ -26,4 +23,16 @@
 is caused by the fact that the underlying operating system-specific functions return void
 pointers that must be converted to function pointers.
 
+To help alleviate type safety issues when using _shared_library_, it is recommended
+that a common function signature be used in each shared library. The library provides
+shortcuts for this technique, which are used in
+[link boost_extension.tutorials.tutorial02].
+
+To help overcome the type safety problems with the _instance_ class, it would be
+possible to have each _instance_ contain a reference to the _reflection_ that
+created it, and then only allow that functions from that _reflection_ to be
+called. The plan is to add this as an option, which can be disabled with
+a preprocessor macro, but it may be added permanently, depending on input
+from the Boost community.
+
 [endsect]
\ No newline at end of file

Modified: sandbox/libs/extension/examples/Jamfile.v2
==============================================================================
--- sandbox/libs/extension/examples/Jamfile.v2 (original)
+++ sandbox/libs/extension/examples/Jamfile.v2 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -58,6 +58,7 @@
 
 lib tutorial_2 : tutorial_2/factories_lib.cpp : <link>shared ;
 exe tutorial_2_bin : tutorial_2/factories_main.cpp ;
+exe tutorial_5_bin : tutorial_5/adaptable.cpp ;
 
 install ../test/ :
   tutorial_1 tutorial_1_bin

Added: sandbox/libs/extension/examples/tutorial_5/adaptable.cpp
==============================================================================
--- (empty file)
+++ sandbox/libs/extension/examples/tutorial_5/adaptable.cpp 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -0,0 +1,85 @@
+/* Boost.Extension / adaptable_factory example
+ *
+ * (C) Copyright Jeremy Pack 2008
+ * Distributed under the Boost Software License, Version 1.0. (See
+ * accompanying file LICENSE_1_0.txt or copy at
+ * http://www.boost.org/LICENSE_1_0.txt)
+ *
+ * See http://www.boost.org/ for latest version.
+ */
+
+#include <iostream>
+
+#include <boost/extension/adaptable_factory.hpp>
+#include <boost/reflection/parameter_map.hpp>
+#include <boost/scoped_ptr.hpp>
+
+using namespace boost::extensions;
+using namespace boost::reflections;
+
+// This function would need to use some of the facilities
+// from Boost.TypeTraits in order to handle references, etc.
+// well.
+template <class T>
+void InputParameter(parameter_map& params, const std::string& name) {
+ T value;
+ std::cin >> value;
+ std::cout << "Input value: " << value << " of type: "
+ << typeid(T).name() << std::endl;
+ params.insert(std::make_pair(name, new parameter<T>(value)));
+}
+
+class Operation {
+ public:
+ Operation(double result) : result(result) {
+ }
+
+ double result;
+};
+
+class Multiplier : public Operation {
+ public:
+ Multiplier(double first_value, double second_value)
+ : Operation(first_value * second_value) {
+ }
+};
+
+int main() {
+ std::map<default_type_info,
+ void (*)(parameter_map&, const std::string&)> input_functions;
+ input_functions[typeid(float)] = &InputParameter<float>;
+ input_functions[typeid(double)] = &InputParameter<double>;
+ input_functions[typeid(std::string)] = &InputParameter<std::string>;
+
+ adaptable_factory<Operation> op_factory;
+ op_factory.set<Multiplier, double, double>("First Double", "Second Double");
+
+ parameter_map params;
+
+ std::vector<std::pair<default_type_info, std::string> > missing =
+ op_factory.get_missing_params(params);
+
+ for (std::vector<std::pair<default_type_info, std::string> >::iterator
+ it = missing.begin();
+ it != missing.end(); ++it) {
+ std::cout << "Finding type to input..." << std::endl;
+ std::map<default_type_info,
+ void (*)(parameter_map&, const std::string&)>::iterator func =
+ input_functions.find(it->first);
+ if (func == input_functions.end()) {
+ std::cout << "Could not find all needed parameters." << std::endl;
+ return 1;
+ }
+
+ std::cout << "Please input a value for the variable <" << it->second
+ << "> of type <" << it->first.type().name() << ">:" << std::endl;
+ (*func->second)(params, it->second);
+ std::cout << "Input complete for parameter." << std::endl;
+ }
+ boost::scoped_ptr<Operation> op(op_factory.create(params));
+ if (op.get()) {
+ std::cout << "The result is: " << op->result << std::endl;
+ } else {
+ std::cout << "Creation failed!" << std::endl;
+ }
+}

Modified: sandbox/libs/extension/test/Jamfile.v2
==============================================================================
--- sandbox/libs/extension/test/Jamfile.v2 (original)
+++ sandbox/libs/extension/test/Jamfile.v2 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -34,6 +34,7 @@
   [ run double_param_test.cpp ]
   [ run mixed_param_test.cpp ]
   [ run shared_library_test.cpp ]
+ [ run not_class_test.cpp ]
   # [ run hello_world_test.cpp ]
   # [ run lib_caching_test.cpp ]
   # [ run versions_test.cpp ]

Modified: sandbox/libs/extension/test/adaptable_factory_test.cpp
==============================================================================
--- sandbox/libs/extension/test/adaptable_factory_test.cpp (original)
+++ sandbox/libs/extension/test/adaptable_factory_test.cpp 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -12,7 +12,7 @@
 #include <boost/extension/adaptable_factory.hpp>
 #include <boost/extension/shared_library.hpp>
 #include <boost/reflection/parameter_map.hpp>
-#include <boost/function.hpp>
+#include <boost/scoped_ptr.hpp>
 #define BOOST_TEST_MAIN
 #define BOOST_TEST_DYN_LINK 1
 #include <boost/test/unit_test.hpp>
@@ -20,6 +20,8 @@
 
 using namespace boost::extensions;
 using namespace boost::reflections;
+using boost::scoped_ptr;
+using boost::function;
 
 class adaptable_class_base {
 public:
@@ -51,7 +53,7 @@
   parameter_map params;
   adaptable_factory<adaptable_class_base> current_factory;
   current_factory.set<adaptable_class>();
- adaptable_class_base* a = current_factory.create(params);
+ scoped_ptr<adaptable_class_base> a(current_factory.create(params));
   BOOST_CHECK_EQUAL(a->get(), 1);
 }
 
@@ -66,8 +68,8 @@
 
   adaptable_factory<adaptable_class_base> current_factory;
   current_factory.set<adaptable_class, int>("first value");
- BOOST_CHECK(current_factory.get_missing_parameter_list(params).empty());
- adaptable_class_base* a = current_factory.create(params);
+ BOOST_CHECK(current_factory.get_missing_params(params).empty());
+ scoped_ptr<adaptable_class_base> a(current_factory.create(params));
   BOOST_CHECK_EQUAL(a->get(), 5);
 }
 
@@ -80,7 +82,50 @@
 
   adaptable_factory<adaptable_class_base> current_factory;
   current_factory.set<adaptable_class, int, int>("first value", "second value");
- BOOST_CHECK(current_factory.get_missing_parameter_list(params).empty());
- adaptable_class_base* a = current_factory.create(params);
+ BOOST_CHECK(current_factory.get_missing_params(params).empty());
+ scoped_ptr<adaptable_class_base> a(current_factory.create(params));
   BOOST_CHECK_EQUAL(a->get(), 10);
 }
+
+BOOST_AUTO_TEST_CASE(missingParameters) {
+ parameter_map params;
+ parameter<int>* p1 = new parameter<int>(5);
+ parameter<int>* p2 = new parameter<int>(2);
+
+ adaptable_factory<adaptable_class_base> current_factory;
+ current_factory.set<adaptable_class, int, int>("first value", "second value");
+
+ BOOST_CHECK_EQUAL(current_factory.get_missing_params(params).size(), size_t(2));
+
+ params.insert(std::make_pair("first value", p1));
+ params.insert(std::make_pair("second value", p2));
+
+ BOOST_CHECK_EQUAL(current_factory.get_missing_params(params).size(), size_t(0));
+}
+
+BOOST_AUTO_TEST_CASE(getFunction) {
+ parameter_map params;
+
+ adaptable_factory<adaptable_class_base> current_factory;
+ current_factory.set<adaptable_class, int>("first value");
+
+ boost::function<adaptable_class_base* ()> f(
+ current_factory.get_function(params));
+
+ // It doesn't have the needed parameter.
+ BOOST_CHECK(f.empty());
+
+ params.insert(std::make_pair("second_value", new parameter<int>(6)));
+ f = current_factory.get_function(params);
+
+ BOOST_CHECK(f.empty());
+
+ params.insert(std::make_pair("first value", new parameter<int>(8)));
+ f = current_factory.get_function(params);
+
+ BOOST_CHECK(!f.empty());
+
+ scoped_ptr<adaptable_class_base> a(f());
+ BOOST_CHECK(a.get());
+ BOOST_CHECK_EQUAL(a->get(), 8);
+}

Modified: sandbox/libs/extension/test/type_map_test.cpp
==============================================================================
--- sandbox/libs/extension/test/type_map_test.cpp (original)
+++ sandbox/libs/extension/test/type_map_test.cpp 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -35,3 +35,11 @@
   BOOST_CHECK_EQUAL(my_int, 5);
   BOOST_CHECK_EQUAL(my_float, 10.0);
 }
+
+BOOST_AUTO_TEST_CASE(constTest) {
+ type_map m;
+ int& my_int(m.get());
+ my_int = 5;
+ const int& my_const_int(m.get());
+ BOOST_CHECK_EQUAL(my_const_int, 5);
+}

Modified: sandbox/libs/reflection/test/parameter_map_test.cpp
==============================================================================
--- sandbox/libs/reflection/test/parameter_map_test.cpp (original)
+++ sandbox/libs/reflection/test/parameter_map_test.cpp 2008-08-14 22:58:04 EDT (Thu, 14 Aug 2008)
@@ -10,8 +10,9 @@
  */
 
 
-#include <string>
+#include <cmath>
 #include <iostream>
+#include <string>
 
 #define BOOST_TEST_MAIN
 #define BOOST_TEST_DYN_LINK 1
@@ -91,6 +92,17 @@
   BOOST_CHECK_EQUAL(12, g->cast<int>());
 }
 
+void FloatCeilingToInt(float* f, int* i) {
+ *i = static_cast<int>(std::ceil(*f));
+}
+
+BOOST_AUTO_TEST_CASE(converts_to_with_func) {
+ parameter<float>* p = new parameter<float>(4.9f);
+ p->converts_to_with_func(&FloatCeilingToInt);
+ BOOST_CHECK(p->can_cast<int>());
+ BOOST_CHECK_EQUAL(p->cast<int>(), 5);
+}
+
 class base {
 };
 class derived : public base {


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