Boost logo

Boost-Commit :

From: chochlik_at_[hidden]
Date: 2008-05-06 13:27:39


Author: matus.chochlik
Date: 2008-05-06 13:27:37 EDT (Tue, 06 May 2008)
New Revision: 45176
URL: http://svn.boost.org/trac/boost/changeset/45176

Log:
Updated documentation
Updated xsl templates that are used to format the docs.
Added:
   sandbox/mirror/libs/mirror/doc/xml/mirror/pages/reflecting.xml (contents, props changed)
   sandbox/mirror/libs/mirror/doc/xml/mirror/pages/registering.xml (contents, props changed)
   sandbox/mirror/libs/mirror/doc/xml/mirror/reference/REG_TYPE.xml (contents, props changed)
   sandbox/mirror/libs/mirror/doc/xml/mirror/reference/REG_TYPEDEFD.xml (contents, props changed)
   sandbox/mirror/libs/mirror/doc/xml/mirror/reference/REG_TYPE_EMBEDDED.xml (contents, props changed)
   sandbox/mirror/libs/mirror/doc/xml/mirror/reference/REG_TYPE_GLOBAL_SCOPE.xml (contents, props changed)
   sandbox/mirror/libs/mirror/doc/xml/mirror/sections/reference/reg_types.xml (contents, props changed)
Text files modified:
   sandbox/mirror/libs/mirror/doc/xml/mirror/_library.xml | 12 ++++++++
   sandbox/mirror/libs/mirror/doc/xml/mirror/pages/full_reference.xml | 3 +
   sandbox/mirror/libs/mirror/doc/xml/mirror/reference/REG_NAMESPACE.xml | 7 ++++
   sandbox/mirror/libs/mirror/doc/xml/mirror/reference/REG_NAMESPACE_TOP_LEVEL.xml | 5 +++
   sandbox/mirror/libs/mirror/doc/xml/mirror/reference/_.xml | 4 ++
   sandbox/mirror/libs/mirror/doc/xml/mirror/reference/_boost.xml | 3 +
   sandbox/mirror/libs/mirror/doc/xml/mirror/reference/_boost_mirror.xml | 5 ++-
   sandbox/mirror/libs/mirror/doc/xml/mirror/reference/_std.xml | 3 +
   sandbox/mirror/libs/mirror/doc/xml/mirror/sections/toc_brief.xml | 2 +
   sandbox/mirror/libs/mirror/doc/xml/xslt/html/doc_page.xsl | 1
   sandbox/mirror/libs/mirror/doc/xml/xslt/html/feature_ref.xsl | 59 ++++++++++++++++++++++++++++++++++-----
   11 files changed, 89 insertions(+), 15 deletions(-)

Modified: sandbox/mirror/libs/mirror/doc/xml/mirror/_library.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/xml/mirror/_library.xml (original)
+++ sandbox/mirror/libs/mirror/doc/xml/mirror/_library.xml 2008-05-06 13:27:37 EDT (Tue, 06 May 2008)
@@ -135,5 +135,17 @@
                           errors with gcc.
                         - Tested with MSVC++ 2008 EE on Vista and gcc 4.2.1 on FreeBSD
                 </revision>
+ <revision id="20080504" major="0" minor="1" micro="20" author="m_ch">
+ - Renamed the REG_META_NAMESPACE macro to REG_NAMESPACE
+ - Renamed the REG_META_TYPE macro to REG_TYPE
+ - Updated the documentation
+ - Updated the xsl templates
+ </revision>
+ <revision id="20080506" major="0" minor="1" micro="21" author="m_ch">
+ - Renamed the REG_META_NAMESPACE macro to REG_NAMESPACE
+ - Renamed the REG_META_TYPE macro to REG_TYPE
+ - Updated the documentation
+ - Updated the xsl templates
+ </revision>
         </revisions>
 </library>

Modified: sandbox/mirror/libs/mirror/doc/xml/mirror/pages/full_reference.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/xml/mirror/pages/full_reference.xml (original)
+++ sandbox/mirror/libs/mirror/doc/xml/mirror/pages/full_reference.xml 2008-05-06 13:27:37 EDT (Tue, 06 May 2008)
@@ -4,6 +4,7 @@
         <paragraph>
         </paragraph>
         <include reference_section="reg_namespaces"/>
- <include reference_section="ns_reg_by_default"/>
         <include reference_section="refl_namespaces"/>
+ <include reference_section="ns_reg_by_default"/>
+ <include reference_section="reg_types"/>
 </doc_page>

Added: sandbox/mirror/libs/mirror/doc/xml/mirror/pages/reflecting.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/libs/mirror/doc/xml/mirror/pages/reflecting.xml 2008-05-06 13:27:37 EDT (Tue, 06 May 2008)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<?xml-stylesheet type="text/xsl" href="../../xslt/html.xsl"?>
+<doc_page title="Reflecting" name="reflecting">
+ <paragraph>
+ </paragraph>
+ <include reference_section="refl_namespaces"/>
+</doc_page>

Added: sandbox/mirror/libs/mirror/doc/xml/mirror/pages/registering.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/libs/mirror/doc/xml/mirror/pages/registering.xml 2008-05-06 13:27:37 EDT (Tue, 06 May 2008)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<?xml-stylesheet type="text/xsl" href="../../xslt/html.xsl"?>
+<doc_page title="Registering" name="registering">
+ <paragraph>
+ In order to be able to reflect various C++ constructs, <lib_name_ref/> needs (most of) them to be registered beforehand. The registering is done by the means of several preprocessor macros like <feat_ref>REG_NAMESPACE</feat_ref>, <feat_ref>REG_NAMESPACE_TOP_LEVEL</feat_ref>, <feat_ref>REG_TYPE</feat_ref>, etc.
+ </paragraph>
+ <include reference_section="reg_namespaces"/>
+ <include reference_section="reg_types"/>
+</doc_page>

Modified: sandbox/mirror/libs/mirror/doc/xml/mirror/reference/REG_NAMESPACE.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/xml/mirror/reference/REG_NAMESPACE.xml (original)
+++ sandbox/mirror/libs/mirror/doc/xml/mirror/reference/REG_NAMESPACE.xml 2008-05-06 13:27:37 EDT (Tue, 06 May 2008)
@@ -2,7 +2,7 @@
 <feature_doc>
         <overview>
                 <paragraph>
- The <feat_ref>REG_NAMESPACE</feat_ref> macro registers the given nested namespace with the <lib_name_ref/> library. The 'top-level' namespaces (i.e. not nested) can be registered with the <feat_ref>REG_NAMESPACE_TOP_LEVEL</feat_ref> macro.
+ The <feat_ref>REG_NAMESPACE</feat_ref> macro registers the given nested namespace with the <lib_name_ref/> library. The 'top-level' (not nested) namespaces can be registered with the <feat_ref>REG_NAMESPACE_TOP_LEVEL</feat_ref> macro.
                 </paragraph>
         </overview>
         <macro name="REG_NAMESPACE">
@@ -31,6 +31,9 @@
                         </cpp_indent><cpp_line>} <cpp_comment>// namespace bar</cpp_comment></cpp_line>
                         </cpp_indent><cpp_line>} <cpp_comment>// namespace foo</cpp_comment></cpp_line>
                         <cpp_line/>
+ <cpp_line><cpp_comment>// the macros must be used in the boost::mirror namespace</cpp_comment></cpp_line>
+ <cpp_line>namespace boost {</cpp_line><cpp_indent>
+ <cpp_line>namespace mirror {</cpp_line><cpp_indent>
                         <cpp_line><cpp_comment>// register the top-level namespace foo </cpp_comment></cpp_line>
                         <cpp_line><feat_ref>REG_NAMESPACE_TOP_LEVEL</feat_ref>(foo)</cpp_line>
                         <cpp_line/>
@@ -42,6 +45,8 @@
                         <cpp_line><cpp_comment>// in the scope of _foo_bar (::foo::bar).</cpp_comment></cpp_line>
                         <cpp_line><cpp_comment>// this creates a _foo_bar_detail alias </cpp_comment></cpp_line>
                         <cpp_line><feat_ref>REG_NAMESPACE</feat_ref>(_foo_bar, detail)</cpp_line>
+ </cpp_indent><cpp_line>} <cpp_comment>// namespace mirror</cpp_comment></cpp_line>
+ </cpp_indent><cpp_line>} <cpp_comment>// namespace boost</cpp_comment></cpp_line>
                 </cpp_source>
         </example>
 </feature_doc>

Modified: sandbox/mirror/libs/mirror/doc/xml/mirror/reference/REG_NAMESPACE_TOP_LEVEL.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/xml/mirror/reference/REG_NAMESPACE_TOP_LEVEL.xml (original)
+++ sandbox/mirror/libs/mirror/doc/xml/mirror/reference/REG_NAMESPACE_TOP_LEVEL.xml 2008-05-06 13:27:37 EDT (Tue, 06 May 2008)
@@ -23,9 +23,14 @@
                         <cpp_line>namespace foo {</cpp_line>
                         <cpp_line>} <cpp_comment>// namespace foo</cpp_comment></cpp_line>
                         <cpp_line/>
+ <cpp_line><cpp_comment>// the macros must be used in the boost::mirror namespace</cpp_comment></cpp_line>
+ <cpp_line>namespace boost {</cpp_line><cpp_indent>
+ <cpp_line>namespace mirror {</cpp_line><cpp_indent>
                         <cpp_line><cpp_comment>// register top-level namespace foo.</cpp_comment></cpp_line>
                         <cpp_line><cpp_comment>// this creates a _foo namespace alias </cpp_comment></cpp_line>
                         <cpp_line><feat_ref>REG_NAMESPACE_TOP_LEVEL</feat_ref>(foo)</cpp_line>
+ </cpp_indent><cpp_line>} <cpp_comment>// namespace mirror</cpp_comment></cpp_line>
+ </cpp_indent><cpp_line>} <cpp_comment>// namespace boost</cpp_comment></cpp_line>
                 </cpp_source>
         </example>
 </feature_doc>

Added: sandbox/mirror/libs/mirror/doc/xml/mirror/reference/REG_TYPE.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/libs/mirror/doc/xml/mirror/reference/REG_TYPE.xml 2008-05-06 13:27:37 EDT (Tue, 06 May 2008)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<feature_doc>
+ <overview>
+ <paragraph>
+ The <feat_ref>REG_TYPE</feat_ref> macro registers the given type or class, declared inside a namespace with the <lib_name_ref/> library. The <feat_ref>REG_TYPEDEFD</feat_ref> can be used to register a <cpp_expr>typedef</cpp_expr> defined types.
+ </paragraph>
+ </overview>
+ <macro name="REG_TYPE">
+ <arg name="NAMESPACE_ALIAS">
+ <Lib_name_ref/> namespace alias of the namespace, inside of which the type is declared. The namespace must be previously registered with mirror.
+ </arg>
+ <arg name="SCOPE">
+ The scope where the type is declared (i.e. ::toplevel::nested).
+ </arg>
+ <arg name="TYPE_NAME">
+ The (unqualified) name of the type to be registered.
+ </arg>
+ </macro>
+ <overview>
+ </overview>
+ <requirements>
+ <header>meta_type.hpp</header>
+ </requirements>
+ <example>
+ <cpp_source>
+ <cpp_line>namespace foo {</cpp_line><cpp_indent>
+ <cpp_line>namespace detail {</cpp_line><cpp_indent>
+ <cpp_line>struct bar { };</cpp_line>
+ </cpp_indent><cpp_line>} <cpp_comment>// namespace detail</cpp_comment></cpp_line>
+ </cpp_indent><cpp_line>} <cpp_comment>// namespace foo</cpp_comment></cpp_line>
+ <cpp_line/>
+ <cpp_line><cpp_comment>// the registering must be done </cpp_comment></cpp_line>
+ <cpp_line><cpp_comment>// in the boost::mirror namespace</cpp_comment></cpp_line>
+ <cpp_line>namespace boost {</cpp_line><cpp_indent>
+ <cpp_line>namespace mirror {</cpp_line><cpp_indent>
+ <cpp_line><cpp_comment>// register the _foo and _foo_detail namespaces</cpp_comment></cpp_line>
+ <cpp_line><feat_ref>REG_NAMESPACE_TOP_LEVEL</feat_ref>(foo)</cpp_line>
+ <cpp_line><feat_ref>REG_NAMESPACE</feat_ref>(_foo, detail)</cpp_line>
+ <cpp_line><cpp_comment>// register the bar class from the foo::detail namespace</cpp_comment></cpp_line>
+ <cpp_line><feat_ref>REG_TYPE</feat_ref>(_foo_detail, ::foo::detail, bar)</cpp_line>
+ </cpp_indent><cpp_line>} <cpp_comment>// namespace mirror</cpp_comment></cpp_line>
+ </cpp_indent><cpp_line>} <cpp_comment>// namespace boost</cpp_comment></cpp_line>
+ </cpp_source>
+ </example>
+</feature_doc>
+

Added: sandbox/mirror/libs/mirror/doc/xml/mirror/reference/REG_TYPEDEFD.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/libs/mirror/doc/xml/mirror/reference/REG_TYPEDEFD.xml 2008-05-06 13:27:37 EDT (Tue, 06 May 2008)
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<feature_doc>
+ <overview>
+ <paragraph>
+ The <feat_ref>REG_TYPEDEFD</feat_ref> macro registers a <cpp_expr>typedef</cpp_expr> defined type with the <lib_name_ref/> library. When a <cpp_expr>typedef</cpp_expr>ined type is registered, it can be distinguished from the original type in some situations. One can for example query it's new typename.
+ </paragraph>
+ </overview>
+ <macro name="REG_TYPEDEFD">
+ <arg name="NAMESPACE_ALIAS">
+ <Lib_name_ref/> namespace alias of the namespace, inside of which the type is defined.
+ </arg>
+ <arg name="SCOPE">
+ The scope where the type is <cpp_expr>typedef</cpp_expr>'d (i.e. ::toplevel::nested).
+ </arg>
+ <arg name="TYPEDEFD_NAME">
+ The <cpp_expr>typedef</cpp_expr>'d name (without the nested name specifier).
+ </arg>
+ </macro>
+ <overview>
+ </overview>
+ <requirements>
+ <header>meta_type.hpp</header>
+ </requirements>
+ <example>
+ <cpp_source>
+ <cpp_line>namespace foo {</cpp_line><cpp_indent>
+ <cpp_line>namespace detail {</cpp_line><cpp_indent>
+ <cpp_line><cpp_comment>// a typedef'd type </cpp_comment></cpp_line>
+ <cpp_line>typedef double foobar;</cpp_line>
+ </cpp_indent><cpp_line>} <cpp_comment>// namespace detail</cpp_comment></cpp_line>
+ </cpp_indent><cpp_line>} <cpp_comment>// namespace foo</cpp_comment></cpp_line>
+ <cpp_line/>
+ <cpp_line><cpp_comment>// the registering must be done </cpp_comment></cpp_line>
+ <cpp_line><cpp_comment>// in the boost::mirror namespace</cpp_comment></cpp_line>
+ <cpp_line>namespace boost {</cpp_line><cpp_indent>
+ <cpp_line>namespace mirror {</cpp_line><cpp_indent>
+ <cpp_line><cpp_comment>// register the namespaces </cpp_comment></cpp_line>
+ <cpp_line><feat_ref>REG_NAMESPACE_TOP_LEVEL</feat_ref>(foo)</cpp_line>
+ <cpp_line><feat_ref>REG_NAMESPACE</feat_ref>(_foo, detail)</cpp_line>
+ <cpp_line><cpp_comment>// register the typedef'd type </cpp_comment></cpp_line>
+ <cpp_line><feat_ref>REG_TYPEDEFD</feat_ref>(_foo_detail, ::foo::detail, foobar)</cpp_line>
+ <cpp_line/>
+ </cpp_indent><cpp_line>} <cpp_comment>// namespace mirror</cpp_comment></cpp_line>
+ </cpp_indent><cpp_line>} <cpp_comment>// namespace boost</cpp_comment></cpp_line>
+ </cpp_source>
+ </example>
+</feature_doc>
+

Added: sandbox/mirror/libs/mirror/doc/xml/mirror/reference/REG_TYPE_EMBEDDED.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/libs/mirror/doc/xml/mirror/reference/REG_TYPE_EMBEDDED.xml 2008-05-06 13:27:37 EDT (Tue, 06 May 2008)
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<feature_doc>
+ <overview>
+ <paragraph>
+ The <feat_ref>REG_TYPE_EMBEDDED</feat_ref> macro registers a type declared inside of a class with the <lib_name_ref/> library.
+ </paragraph>
+ </overview>
+ <macro name="REG_TYPE_EMBEDDED">
+ <arg name="WRAPPER">
+ The (full) name of the class inside of which the type or class is declared. This class must be already registered.
+ </arg>
+ <arg name="TYPENAME">
+ The name of the type or class to be registered (without nested name specifier).
+ </arg>
+ </macro>
+ <overview>
+ </overview>
+ <requirements>
+ <header>meta_type.hpp</header>
+ </requirements>
+ <example>
+ <cpp_source>
+ <cpp_line>namespace foo {</cpp_line><cpp_indent>
+ <cpp_line>namespace detail {</cpp_line><cpp_indent>
+ <cpp_line>struct bar</cpp_line>
+ <cpp_line>{</cpp_line><cpp_indent>
+ <cpp_line>struct part</cpp_line>
+ <cpp_line>{</cpp_line><cpp_indent>
+ </cpp_indent><cpp_line>};<cpp_comment>// struct part</cpp_comment></cpp_line>
+ </cpp_indent><cpp_line>};<cpp_comment>// struct bar</cpp_comment></cpp_line>
+ </cpp_indent><cpp_line>} <cpp_comment>// namespace detail</cpp_comment></cpp_line>
+ </cpp_indent><cpp_line>} <cpp_comment>// namespace foo</cpp_comment></cpp_line>
+ <cpp_line/>
+ <cpp_line><cpp_comment>// the registering must be done </cpp_comment></cpp_line>
+ <cpp_line><cpp_comment>// in the boost::mirror namespace</cpp_comment></cpp_line>
+ <cpp_line>namespace boost {</cpp_line><cpp_indent>
+ <cpp_line>namespace mirror {</cpp_line><cpp_indent>
+ <cpp_line><cpp_comment>// register the namespaces </cpp_comment></cpp_line>
+ <cpp_line><feat_ref>REG_NAMESPACE_TOP_LEVEL</feat_ref>(foo)</cpp_line>
+ <cpp_line><feat_ref>REG_NAMESPACE</feat_ref>(_foo, detail)</cpp_line>
+ <cpp_line/>
+ <cpp_line><cpp_comment>// register the 'wrapping' class</cpp_comment></cpp_line>
+ <cpp_line><feat_ref>REG_TYPE</feat_ref>(_foo_detail, ::foo::detail, bar)</cpp_line>
+ <cpp_line><cpp_comment>// register the 'embedded' class</cpp_comment></cpp_line>
+ <cpp_line><feat_ref>REG_TYPE_EMBEDDED</feat_ref>(::foo::detail::bar, part)</cpp_line>
+ </cpp_indent><cpp_line>} <cpp_comment>// namespace mirror</cpp_comment></cpp_line>
+ </cpp_indent><cpp_line>} <cpp_comment>// namespace boost</cpp_comment></cpp_line>
+ </cpp_source>
+ </example>
+</feature_doc>
+

Added: sandbox/mirror/libs/mirror/doc/xml/mirror/reference/REG_TYPE_GLOBAL_SCOPE.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/libs/mirror/doc/xml/mirror/reference/REG_TYPE_GLOBAL_SCOPE.xml 2008-05-06 13:27:37 EDT (Tue, 06 May 2008)
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<feature_doc>
+ <overview>
+ <paragraph>
+ This macro registers a type or class defined in the global scope with the <lib_name_ref/> library.
+ </paragraph>
+ </overview>
+ <macro name="REG_TYPE_GLOBAL_SCOPE">
+ <arg name="TYPENAME">
+ The name of the type to be registered.
+ </arg>
+ </macro>
+ <overview>
+ </overview>
+ <requirements>
+ <header>meta_type.hpp</header>
+ </requirements>
+ <example>
+ <cpp_source>
+ <cpp_line>struct test { };</cpp_line>
+ <cpp_line><cpp_comment>// the registering macros must be used </cpp_comment></cpp_line>
+ <cpp_line><cpp_comment>// in the boost::mirror namespace</cpp_comment></cpp_line>
+ <cpp_line>namespace boost {</cpp_line><cpp_indent>
+ <cpp_line>namespace mirror {</cpp_line><cpp_indent>
+ <cpp_line><cpp_comment>// register the test type </cpp_comment></cpp_line>
+ <cpp_line><feat_ref>REG_TYPE_GLOBAL_SCOPE</feat_ref>(test)</cpp_line>
+ </cpp_indent><cpp_line>} <cpp_comment>// namespace mirror</cpp_comment></cpp_line>
+ </cpp_indent><cpp_line>} <cpp_comment>// namespace boost</cpp_comment></cpp_line>
+ </cpp_source>
+ </example>
+</feature_doc>
+

Modified: sandbox/mirror/libs/mirror/doc/xml/mirror/reference/_.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/xml/mirror/reference/_.xml (original)
+++ sandbox/mirror/libs/mirror/doc/xml/mirror/reference/_.xml 2008-05-06 13:27:37 EDT (Tue, 06 May 2008)
@@ -13,11 +13,13 @@
         </requirements>
         <example>
                 <cpp_source>
+ <cpp_line><cpp_preproc>#include&lt;<mirror_header>traits/reflects_global_scope.hpp</mirror_header>&gt;</cpp_preproc></cpp_line>
+ <cpp_line/>
                         <cpp_line><cpp_comment>// reflects_global_scope is true_type if the meta_namespace</cpp_comment></cpp_line>
                         <cpp_line><cpp_comment>// reflects the global scope (referred to by the _ alias)</cpp_comment></cpp_line>
                         <cpp_line><cpp_comment>// or is false_type otherwise.</cpp_comment></cpp_line>
                         <cpp_line>reflects_global_scope&lt; </cpp_line><cpp_indent>
- <cpp_line><feat_ref>REFLECT_NAMESPACE</feat_ref>(_) </cpp_line>
+ <cpp_line><feat_ref>REFLECT_NAMESPACE</feat_ref>(<feat_ref>_</feat_ref>) </cpp_line>
                         </cpp_indent><cpp_line>&gt; :: value </cpp_line>
                 </cpp_source>
         </example>

Modified: sandbox/mirror/libs/mirror/doc/xml/mirror/reference/_boost.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/xml/mirror/reference/_boost.xml (original)
+++ sandbox/mirror/libs/mirror/doc/xml/mirror/reference/_boost.xml 2008-05-06 13:27:37 EDT (Tue, 06 May 2008)
@@ -14,12 +14,13 @@
         <example>
                 <cpp_source>
                         <cpp_line><cpp_preproc>#include&lt;boost/mpl/not.hpp&gt;</cpp_preproc></cpp_line>
+ <cpp_line><cpp_preproc>#include&lt;<mirror_header>traits/reflects_global_scope.hpp</mirror_header>&gt;</cpp_preproc></cpp_line>
                         <cpp_line/>
                         <cpp_line><cpp_comment>// reflects_global_scope is true_type if the meta_namespace</cpp_comment></cpp_line>
                         <cpp_line><cpp_comment>// reflects the global scope (referred to by the _ alias)</cpp_comment></cpp_line>
                         <cpp_line><cpp_comment>// or is false_type otherwise.</cpp_comment></cpp_line>
                         <cpp_line>mpl::not&lt;reflects_global_scope&lt; </cpp_line><cpp_indent>
- <cpp_line><feat_ref>REFLECT_NAMESPACE</feat_ref>(_boost) </cpp_line>
+ <cpp_line><feat_ref>REFLECT_NAMESPACE</feat_ref>(<feat_ref>_boost</feat_ref>) </cpp_line>
                         </cpp_indent><cpp_line>&gt; &gt; :: value </cpp_line>
                 </cpp_source>
         </example>

Modified: sandbox/mirror/libs/mirror/doc/xml/mirror/reference/_boost_mirror.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/xml/mirror/reference/_boost_mirror.xml (original)
+++ sandbox/mirror/libs/mirror/doc/xml/mirror/reference/_boost_mirror.xml 2008-05-06 13:27:37 EDT (Tue, 06 May 2008)
@@ -13,11 +13,12 @@
         </requirements>
         <example>
                 <cpp_source>
+ <cpp_line><cpp_preproc>#include&lt;<mirror_header>traits/reflects_global_scope.hpp</mirror_header>&gt;</cpp_preproc></cpp_line>
                         <cpp_line/>
                         <cpp_line><cpp_preproc>// the ::boost::mirror is defined inside of ::boost</cpp_preproc></cpp_line>
                         <cpp_line>BOOST_STATIC_ASSERT(is_same&lt; </cpp_line><cpp_indent>
- <cpp_line><feat_ref>REFLECT_NAMESPACE</feat_ref>(_boost_mirror) :: scope, </cpp_line>
- <cpp_line><feat_ref>REFLECT_NAMESPACE</feat_ref>(_boost) </cpp_line>
+ <cpp_line><feat_ref>REFLECT_NAMESPACE</feat_ref>(<feat_ref>_boost_mirror</feat_ref>) :: scope, </cpp_line>
+ <cpp_line><feat_ref>REFLECT_NAMESPACE</feat_ref>(<feat_ref>_boost</feat_ref>) </cpp_line>
                         </cpp_indent><cpp_line>&gt; :: value)</cpp_line>
                 </cpp_source>
         </example>

Modified: sandbox/mirror/libs/mirror/doc/xml/mirror/reference/_std.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/xml/mirror/reference/_std.xml (original)
+++ sandbox/mirror/libs/mirror/doc/xml/mirror/reference/_std.xml 2008-05-06 13:27:37 EDT (Tue, 06 May 2008)
@@ -14,12 +14,13 @@
         <example>
                 <cpp_source>
                         <cpp_line><cpp_preproc>#include&lt;boost/mpl/not.hpp&gt;</cpp_preproc></cpp_line>
+ <cpp_line><cpp_preproc>#include&lt;<mirror_header>traits/reflects_global_scope.hpp</mirror_header>&gt;</cpp_preproc></cpp_line>
                         <cpp_line/>
                         <cpp_line><cpp_comment>// reflects_global_scope is true_type if the meta_namespace</cpp_comment></cpp_line>
                         <cpp_line><cpp_comment>// reflects the global scope (referred to by the _ alias)</cpp_comment></cpp_line>
                         <cpp_line><cpp_comment>// or is false_type otherwise.</cpp_comment></cpp_line>
                         <cpp_line>mpl::not&lt;reflects_global_scope&lt; </cpp_line><cpp_indent>
- <cpp_line><feat_ref>REFLECT_NAMESPACE</feat_ref>(_std) </cpp_line>
+ <cpp_line><feat_ref>REFLECT_NAMESPACE</feat_ref>(<feat_ref>_std</feat_ref>) </cpp_line>
                         </cpp_indent><cpp_line>&gt; &gt; :: value </cpp_line>
                 </cpp_source>
         </example>

Added: sandbox/mirror/libs/mirror/doc/xml/mirror/sections/reference/reg_types.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/libs/mirror/doc/xml/mirror/sections/reference/reg_types.xml 2008-05-06 13:27:37 EDT (Tue, 06 May 2008)
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<section title="Registering types" name="reg_types">
+ <paragraph>
+ There are several macros that do the type registering. The types or classes declared on the global scope can be registered with the <feat_ref>REG_TYPE_GLOBAL_SCOPE</feat_ref> macro.
+ Types declared in a named namespace are registered with the <feat_ref>REG_TYPE</feat_ref> and <feat_ref>REG_TYPEDEFD</feat_ref> macros.
+ Types declared inside of a class can be registered with the <feat_ref>REG_TYPE_EMBEDDED</feat_ref> macro.
+ </paragraph>
+ <include reference="REG_TYPE_GLOBAL_SCOPE"/>
+ <include reference="REG_TYPE"/>
+ <include reference="REG_TYPEDEFD"/>
+ <include reference="REG_TYPE_EMBEDDED"/>
+</section>

Modified: sandbox/mirror/libs/mirror/doc/xml/mirror/sections/toc_brief.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/xml/mirror/sections/toc_brief.xml (original)
+++ sandbox/mirror/libs/mirror/doc/xml/mirror/sections/toc_brief.xml 2008-05-06 13:27:37 EDT (Tue, 06 May 2008)
@@ -3,6 +3,8 @@
         <link_set>
                 <link page="index"/>
                 <link page="quick_start"/>
+ <link page="registering"/>
+ <link page="reflecting"/>
                 <link page="full_reference"/>
         </link_set>
 </section>

Modified: sandbox/mirror/libs/mirror/doc/xml/xslt/html/doc_page.xsl
==============================================================================
--- sandbox/mirror/libs/mirror/doc/xml/xslt/html/doc_page.xsl (original)
+++ sandbox/mirror/libs/mirror/doc/xml/xslt/html/doc_page.xsl 2008-05-06 13:27:37 EDT (Tue, 06 May 2008)
@@ -98,6 +98,7 @@
                                 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"/>
                                 <META NAME="author" CONTENT="Matus Chochlik"/>
                                 <LINK REL="stylesheet" HREF="../../css/mirror.css" TYPE="text/css"/>
+ <LINK REL="Index" HREF="index.html" TYPE="text/html"/>
                         </HEAD>
                         <BODY>
                                 <H1><xsl:value-of select="@title"/></H1>

Modified: sandbox/mirror/libs/mirror/doc/xml/xslt/html/feature_ref.xsl
==============================================================================
--- sandbox/mirror/libs/mirror/doc/xml/xslt/html/feature_ref.xsl (original)
+++ sandbox/mirror/libs/mirror/doc/xml/xslt/html/feature_ref.xsl 2008-05-06 13:27:37 EDT (Tue, 06 May 2008)
@@ -7,6 +7,12 @@
          - template for the feature reference
         -->
         <xsl:template match="feature_doc">
+ <DIV class="feature-doc">
+ <xsl:element name="A">
+ <xsl:attribute name="NAME">
+ <xsl:value-of select="macro/@name|other/@name"/>
+ </xsl:attribute>
+ </xsl:element>
                 <H4 class="feature-doc">
                         <xsl:choose>
                                 <xsl:when test="macro">
@@ -22,6 +28,7 @@
                         </xsl:choose>
                 </H4>
                 <xsl:apply-templates/>
+ </DIV>
         </xsl:template>
 
         <!--
@@ -57,12 +64,20 @@
                 <H5><xsl:text>Required headers:</xsl:text></H5>
                 <xsl:for-each select="header">
                         <CODE><SPAN class="cpp-preproc">
- <xsl:text>#include &lt;boost/mirror/</xsl:text>
- <xsl:value-of select="."/>
+ <xsl:text>#include &lt;</xsl:text>
+ <xsl:element name="A">
+ <xsl:attribute name="href">
+ <xsl:text>../../../../../../boost/mirror/</xsl:text>
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ <xsl:text>boost/mirror/</xsl:text>
+ <xsl:value-of select="."/>
+ </xsl:element>
                                 <xsl:text>&gt;</xsl:text>
                         </SPAN></CODE>
                 </xsl:for-each>
         </xsl:template>
+
         <!--
          - example
         -->
@@ -81,12 +96,40 @@
                         <xsl:text>.xml</xsl:text>
                 </xsl:variable>
                 <SPAN class="feature-ref">
- <xsl:choose>
- <xsl:when test="document($doc_url)/feature_doc/macro">
- <xsl:value-of select="$macro_prefix"/>
- </xsl:when>
- </xsl:choose>
- <xsl:value-of select="."/>
+ <xsl:element name="A">
+ <xsl:attribute name="href">
+ <xsl:text>#</xsl:text>
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:for-each select="document($doc_url)/feature_doc/requirements/header">
+ <xsl:text>#include &lt;boost/mirror/</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>&gt;</xsl:text>
+ </xsl:for-each>
+ </xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="document($doc_url)/feature_doc/macro">
+ <xsl:value-of select="$macro_prefix"/>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:value-of select="."/>
+ </xsl:element>
                 </SPAN>
         </xsl:template>
+
+ <!--
+ - mirror_header
+ -->
+ <xsl:template match="mirror_header">
+ <xsl:element name="A">
+ <xsl:attribute name="href">
+ <xsl:text>../../../../../../boost/mirror/</xsl:text>
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ <xsl:text>boost/mirror/</xsl:text>
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:template>
+
 </xsl:stylesheet>


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