$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
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<<mirror_header>traits/reflects_global_scope.hpp</mirror_header>></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< </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>> :: 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<boost/mpl/not.hpp></cpp_preproc></cpp_line>
+			<cpp_line><cpp_preproc>#include<<mirror_header>traits/reflects_global_scope.hpp</mirror_header>></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<reflects_global_scope< </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>> > :: 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<<mirror_header>traits/reflects_global_scope.hpp</mirror_header>></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< </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>> :: 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<boost/mpl/not.hpp></cpp_preproc></cpp_line>
+			<cpp_line><cpp_preproc>#include<<mirror_header>traits/reflects_global_scope.hpp</mirror_header>></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<reflects_global_scope< </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>> > :: 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 <boost/mirror/</xsl:text>
-				<xsl:value-of select="."/>
+				<xsl:text>#include <</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>></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 <boost/mirror/</xsl:text>
+						<xsl:value-of select="."/>
+						<xsl:text>></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>