$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: chochlik_at_[hidden]
Date: 2008-07-18 09:41:28
Author: matus.chochlik
Date: 2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
New Revision: 47553
URL: http://svn.boost.org/trac/boost/changeset/47553
Log:
[mirror 0.2.x]
- Fixed several small bugs
- Added reflects_inheritance trait template
- Updated the documentation
Added:
   sandbox/mirror/boost/mirror/traits/reflects_inheritance.hpp   (contents, props changed)
   sandbox/mirror/doc/html/BOOST_MIRRORED_GLOBAL_SCOPE.html   (contents, props changed)
   sandbox/mirror/doc/html/BOOST_MIRRORED_NAMESPACE.html   (contents, props changed)
   sandbox/mirror/doc/html/BOOST_MIRROR_REG_NAMESPACE.html   (contents, props changed)
   sandbox/mirror/doc/html/boost/mirror/reflects_class.html   (contents, props changed)
   sandbox/mirror/doc/html/boost/mirror/reflects_global_scope.html   (contents, props changed)
   sandbox/mirror/doc/html/boost/mirror/reflects_inheritance.html   (contents, props changed)
   sandbox/mirror/doc/html/boost/mirror/reflects_namespace.html   (contents, props changed)
   sandbox/mirror/doc/html/boost/mirror/reflects_type.html   (contents, props changed)
   sandbox/mirror/doc/html/boost/mirror/reflects_type_meta_type_Type___id536867.html   (contents, props changed)
   sandbox/mirror/doc/html/boost/mirror/reflects_virtual_inheritance.html   (contents, props changed)
   sandbox/mirror/libs/mirror/doc/reference/class_meta_namespace.xml   (contents, props changed)
   sandbox/mirror/libs/mirror/doc/reference/macro_REG_NAMESPACE.xml   (contents, props changed)
   sandbox/mirror/libs/mirror/doc/reference/macro_RFL_GLOBAL_SCOPE.xml   (contents, props changed)
   sandbox/mirror/libs/mirror/doc/reference/macro_RFL_NAMESPACE.xml   (contents, props changed)
   sandbox/mirror/libs/mirror/doc/reference/traits/
   sandbox/mirror/libs/mirror/doc/reference/traits/reflects_class.xml   (contents, props changed)
   sandbox/mirror/libs/mirror/doc/reference/traits/reflects_global_scope.xml   (contents, props changed)
   sandbox/mirror/libs/mirror/doc/reference/traits/reflects_inheritance.xml   (contents, props changed)
   sandbox/mirror/libs/mirror/doc/reference/traits/reflects_namespace.xml   (contents, props changed)
   sandbox/mirror/libs/mirror/doc/reference/traits/reflects_type.xml   (contents, props changed)
   sandbox/mirror/libs/mirror/doc/reference/traits/reflects_virtual_inheritance.xml   (contents, props changed)
   sandbox/mirror/libs/mirror/doc/samples/usage_namespaces_01.xml   (contents, props changed)
Text files modified: 
   sandbox/mirror/boost/mirror/traits/reflects_virtual_inheritance.hpp |    16 --                                      
   sandbox/mirror/doc/html/boost/mirror/meta_class.html                |    14 +-                                      
   sandbox/mirror/doc/html/boost/mirror/meta_namespace.html            |   231 +++++++++++++++++++-------------------- 
   sandbox/mirror/doc/html/boost/mirror/meta_type.html                 |    36 ++---                                   
   sandbox/mirror/doc/html/char_type_switch.html                       |     8                                         
   sandbox/mirror/doc/html/doc_HTML.manifest                           |     9 +                                       
   sandbox/mirror/doc/html/index.html                                  |     2                                         
   sandbox/mirror/doc/html/mirror.html                                 |    13 +                                       
   sandbox/mirror/doc/html/mirror/reference.html                       |    94 ++++++++++++++-                         
   sandbox/mirror/libs/mirror/doc/introduction.xml                     |     5                                         
   sandbox/mirror/libs/mirror/doc/reference.xml                        |    23 +++                                     
   sandbox/mirror/libs/mirror/doc/reference/meta_namespace.xml         |   191 +-------------------------------        
   sandbox/mirror/libs/mirror/example/registering/virtual_bases.cpp    |     2                                         
   13 files changed, 278 insertions(+), 366 deletions(-)
Added: sandbox/mirror/boost/mirror/traits/reflects_inheritance.hpp
==============================================================================
--- (empty file)
+++ sandbox/mirror/boost/mirror/traits/reflects_inheritance.hpp	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,44 @@
+/**
+ * \file boost/mirror/reflects_inheritance.hpp
+ * Meta function that returns true if the given template argument
+ * is an instantiation of meta_inheritance
+ *
+ *  Copyright 2008 Matus Chochlik. 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)
+ */
+
+#ifndef BOOST_MIRROR_META_REFLECTS_INHERITANCE_HPP
+#define BOOST_MIRROR_META_REFLECTS_INHERITANCE_HPP
+
+// true type/false type for trait templates 
+#include <boost/type_traits/integral_constant.hpp>
+#include <boost/mirror/meta_inheritance.hpp>
+
+namespace boost {
+namespace mirror {
+
+template <class MetaObject>
+struct reflects_inheritance : public false_type { };
+
+template <
+	class Position,
+	class BaseClass,
+	class AccessSpec, 
+	class VirtualSpec
+>
+struct reflects_inheritance<
+	meta_inheritance<
+		Position,
+		BaseClass,
+		AccessSpec,
+		VirtualSpec
+	> 
+> : public true_type{ };
+
+
+} // namespace mirror
+} // namespace boost
+
+#endif //include guard
+
Modified: sandbox/mirror/boost/mirror/traits/reflects_virtual_inheritance.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/traits/reflects_virtual_inheritance.hpp	(original)
+++ sandbox/mirror/boost/mirror/traits/reflects_virtual_inheritance.hpp	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -19,7 +19,7 @@
 namespace mirror {
 
 template <class MetaObject>
-struct reflects_virtual_inheritance;
+struct reflects_virtual_inheritance : public false_type{ };
 
 template <
         class Position,
@@ -35,20 +35,6 @@
 	> 
 > : public true_type{ };
 
-template <
-	class Position,
-	class BaseClass,
-	typename AccessSpec 
->
-struct reflects_virtual_inheritance<
-	meta_inheritance<
-		Position,
-		BaseClass,
-		AccessSpec,
-		nonvirtual_base_
-	> 
-> : public false_type{ };
-
 
 } // namespace mirror
 } // namespace boost
Added: sandbox/mirror/doc/html/BOOST_MIRRORED_GLOBAL_SCOPE.html
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/html/BOOST_MIRRORED_GLOBAL_SCOPE.html	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,95 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Macro BOOST_MIRRORED_GLOBAL_SCOPE</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
+<link rel="start" href="index.html" title="The Mirror library documentation">
+<link rel="up" href="mirror/reference.html#header.boost.mirror.meta_namespace.hpp" title="Header <boost/mirror/meta_namespace.hpp>">
+<link rel="prev" href="BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">
+<link rel="next" href="boost/mirror/meta_type.html" title="Class template meta_type">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="BOOST_MIRRORED_NAMESPACE.html"><img src="../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="mirror/reference.html#header.boost.mirror.meta_namespace.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/mirror/meta_type.html"><img src="../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="BOOST_MIRRORED_GLOBAL_SCOPE"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Macro BOOST_MIRRORED_GLOBAL_SCOPE</span></h2>
+<p>BOOST_MIRRORED_GLOBAL_SCOPE — This macro is used to reflect the global scope and expands into a specialization
+		of the <code class="computeroutput">meta_namespace</code> template, which provides
+		meta-data about the global scope. 
+		To reflect a registered named namespace use the <code class="computeroutput"><a class="link" href="BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a></code>.
+		</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">BOOST_MIRRORED_GLOBAL_SCOPE()</pre></div>
+<div class="refsect1" lang="en">
+<a name="id740545"></a><h2>Description</h2>
+<p>The <code class="computeroutput"><a class="link" href="BOOST_MIRRORED_GLOBAL_SCOPE.html" title="Macro BOOST_MIRRORED_GLOBAL_SCOPE">BOOST_MIRRORED_GLOBAL_SCOPE</a>()</code> macro can be used to get
+		the meta-data about the global scope, which is registered by default by the <a class="link" href="mirror.html" title="Chapter 1. Mirror">Mirror</a> library.
+		</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="mirror.RFL_GLOBAL_SCOPE.reference.samples"></a>Examples</h6></div></div></div>
+<pre class="programlisting">
+BOOST_STATIC_ASSERT((
+	reflects_global_scope< <a class="link" href="BOOST_MIRRORED_GLOBAL_SCOPE.html" title="Macro BOOST_MIRRORED_GLOBAL_SCOPE">BOOST_MIRRORED_GLOBAL_SCOPE</a>() >::value
+));
+</pre>
+<pre class="programlisting">
+BOOST_MPL_ASSERT((
+	reflects_global_scope< <a class="link" href="BOOST_MIRRORED_GLOBAL_SCOPE.html" title="Macro BOOST_MIRRORED_GLOBAL_SCOPE">BOOST_MIRRORED_GLOBAL_SCOPE</a>() >
+));
+</pre>
+<pre class="programlisting">
+BOOST_MPL_ASSERT((
+	::boost::is_same<
+		<a class="link" href="BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::std)::scope,
+		<a class="link" href="BOOST_MIRRORED_GLOBAL_SCOPE.html" title="Macro BOOST_MIRRORED_GLOBAL_SCOPE">BOOST_MIRRORED_GLOBAL_SCOPE</a>() 
+	>
+));
+</pre>
+<pre class="programlisting">
+BOOST_MPL_ASSERT((
+	::boost::is_same<
+		BOOST_MIRRORED_TYPE(int)::scope,
+		<a class="link" href="BOOST_MIRRORED_GLOBAL_SCOPE.html" title="Macro BOOST_MIRRORED_GLOBAL_SCOPE">BOOST_MIRRORED_GLOBAL_SCOPE</a>() 
+	>
+));
+</pre>
+<pre class="programlisting">
+BOOST_MPL_ASSERT((
+	::boost::is_same<
+		BOOST_MIRRORED_TYPE(::std::wstring)::scope::scope,
+		<a class="link" href="BOOST_MIRRORED_GLOBAL_SCOPE.html" title="Macro BOOST_MIRRORED_GLOBAL_SCOPE">BOOST_MIRRORED_GLOBAL_SCOPE</a>() 
+	>
+));
+</pre>
+</div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 Matúš Chochlík<p>Use, modification and distribution is subject to the Boost
+			Software License, Version 1.0. (See accompanying file
+			<code class="filename">LICENSE_1_0.txt</code> or copy at http://www.boost.org/LICENSE_1_0.txt)
+			</p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="BOOST_MIRRORED_NAMESPACE.html"><img src="../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="mirror/reference.html#header.boost.mirror.meta_namespace.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/mirror/meta_type.html"><img src="../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/mirror/doc/html/BOOST_MIRRORED_NAMESPACE.html
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/html/BOOST_MIRRORED_NAMESPACE.html	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,194 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Macro BOOST_MIRRORED_NAMESPACE</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
+<link rel="start" href="index.html" title="The Mirror library documentation">
+<link rel="up" href="mirror/reference.html#header.boost.mirror.meta_namespace.hpp" title="Header <boost/mirror/meta_namespace.hpp>">
+<link rel="prev" href="BOOST_MIRROR_REG_NAMESPACE.html" title="Macro BOOST_MIRROR_REG_NAMESPACE">
+<link rel="next" href="BOOST_MIRRORED_GLOBAL_SCOPE.html" title="Macro BOOST_MIRRORED_GLOBAL_SCOPE">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="BOOST_MIRROR_REG_NAMESPACE.html"><img src="../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="mirror/reference.html#header.boost.mirror.meta_namespace.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_MIRRORED_GLOBAL_SCOPE.html"><img src="../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="BOOST_MIRRORED_NAMESPACE"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Macro BOOST_MIRRORED_NAMESPACE</span></h2>
+<p>BOOST_MIRRORED_NAMESPACE — This macro is used to reflect a namespace and expands into a specialization
+		of the <code class="computeroutput">meta_namespace</code> template, which provides
+		meta-data about the namespace. To reflect the global scope use the 
+		<code class="computeroutput"><a class="link" href="BOOST_MIRRORED_GLOBAL_SCOPE.html" title="Macro BOOST_MIRRORED_GLOBAL_SCOPE">BOOST_MIRRORED_GLOBAL_SCOPE</a></code> macro.
+		</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">BOOST_MIRRORED_NAMESPACE(FULL_NAMESPACE_NAME)</pre></div>
+<div class="refsect1" lang="en">
+<a name="id740390"></a><h2>Description</h2>
+<p>The <code class="computeroutput"><a class="link" href="BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a></code> macro reflects a namespace 
+		previously registered with the <a class="link" href="mirror.html" title="Chapter 1. Mirror">Mirror</a> library by the means of 
+		the <code class="computeroutput"><a class="link" href="BOOST_MIRROR_REG_NAMESPACE.html" title="Macro BOOST_MIRROR_REG_NAMESPACE">BOOST_MIRROR_REG_NAMESPACE</a></code>. 
+		The only argument of this macro is the full namespace name including the leading double colon,
+		so this is ok
+		</p>
+<pre class="programlisting"><code class="computeroutput">BOOST_MIRRORED_NAMESPACE(::boost::mirror) /* OK */</code></pre>
+<p>
+		but, neither this
+		</p>
+<pre class="programlisting"><code class="computeroutput">BOOST_MIRRORED_NAMESPACE(boost::mirror) /* Error */</code></pre>
+<p>
+		nor this
+		</p>
+<pre class="programlisting"><code class="computeroutput">BOOST_MIRRORED_NAMESPACE(mirror) /* Error */</code></pre>
+<p>
+		will work.
+		</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="mirror.RFL_NAMESPACE.reference.samples"></a>Examples</h6></div></div></div>
+<p>This example shows the registering and reflection of namespaces
+			and basic usage of the <code class="computeroutput">meta_namespace</code>
+			template class and its members.
+			</p>
+<pre class="programlisting">
+#include <boost/char_type_switch/iostream.hpp>
+#include <boost/mirror/meta_namespace.hpp>
+#include <boost/mirror/traits/reflects_namespace.hpp>
+#include <boost/mirror/traits/reflects_global_scope.hpp>
+
+#include <boost/mpl/assert.hpp>
+
+namespace foo {
+namespace bar {
+namespace baz {
+
+} //namespace baz
+} //namespace bar
+} //namespace foo
+
+// the registering must be done in the boost::mirror namespace
+namespace boost {
+namespace mirror {
+
+// register foo
+<a class="link" href="BOOST_MIRROR_REG_NAMESPACE.html" title="Macro BOOST_MIRROR_REG_NAMESPACE">BOOST_MIRROR_REG_NAMESPACE</a>((foo))
+// register foo::bar
+<a class="link" href="BOOST_MIRROR_REG_NAMESPACE.html" title="Macro BOOST_MIRROR_REG_NAMESPACE">BOOST_MIRROR_REG_NAMESPACE</a>((foo)(bar))
+// register foo::bar::baz
+<a class="link" href="BOOST_MIRROR_REG_NAMESPACE.html" title="Macro BOOST_MIRROR_REG_NAMESPACE">BOOST_MIRROR_REG_NAMESPACE</a>((foo)(bar)(baz))
+
+} // namespace mirror
+} // namespace boost
+
+
+// prints meta-info about the global scope
+template < class MetaNamespace >
+void do_print_meta_data(::boost::true_type)
+{
+	using namespace ::std;
+	using namespace ::boost;
+	cts::bostream& bcout = cts::bcout();
+	bcout << 
+		BOOST_CTS_LIT("This is the global scope") << 
+	endl <<
+		BOOST_CTS_LIT("------------------------------------") << 
+	endl;
+}
+
+// prints meta-info about named namespaces
+template < class MetaNamespace >
+void do_print_meta_data(::boost::false_type)
+{
+	using namespace ::std;
+	using namespace ::boost;
+	using namespace ::boost::mirror;
+	cts::bostream& bcout = cts::bcout();
+
+	bcout << 
+		BOOST_CTS_LIT("Namespace '") << 
+		MetaNamespace::base_name() << 
+		BOOST_CTS_LIT("': ") << 
+	endl <<
+		BOOST_CTS_LIT(" - the full name is '") << 
+		MetaNamespace::full_name() << 
+		BOOST_CTS_LIT("'") << 
+	endl <<
+		BOOST_CTS_LIT(" - it's defined "); 
+
+	if(reflects_global_scope<typename MetaNamespace::scope>::value)
+		bcout << BOOST_CTS_LIT(" - on the global scope "); 
+	else
+		bcout << BOOST_CTS_LIT(" - in the '") <<
+			MetaNamespace::scope::full_name() <<
+			BOOST_CTS_LIT("' namespace"); 
+
+	bcout << endl <<
+		BOOST_CTS_LIT("------------------------------------") << 
+	endl;
+}
+
+
+
+template < class MetaNamespace >
+void print_meta_data(void)
+{
+	using namespace ::boost::mirror;
+	// check the template argument
+	BOOST_MPL_ASSERT((
+		reflects_namespace< MetaNamespace >	
+	));
+
+	// call the specialized printer based on whether
+	// the passed meta-namespace reflects the global
+	// scope or not
+	typename reflects_global_scope<MetaNamespace>::type 
+		selector;
+
+	do_print_meta_data<MetaNamespace>(selector);
+}
+
+
+int main(void)
+{
+	// reflect and print meta-info about the pre-registered namespaces
+	print_meta_data< <a class="link" href="BOOST_MIRRORED_GLOBAL_SCOPE.html" title="Macro BOOST_MIRRORED_GLOBAL_SCOPE">BOOST_MIRRORED_GLOBAL_SCOPE</a>() >();
+	print_meta_data< <a class="link" href="BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::std) >();
+	print_meta_data< <a class="link" href="BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::boost) >();
+	print_meta_data< <a class="link" href="BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::boost::mirror) >();
+
+	// reflect and print meta-info about the namespaces registered here
+	print_meta_data< <a class="link" href="BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::foo) >();
+	print_meta_data< <a class="link" href="BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::foo::bar) >();
+	print_meta_data< <a class="link" href="BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::foo::bar::baz) >();
+	
+	return 0;
+}
+</pre>
+</div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 Matúš Chochlík<p>Use, modification and distribution is subject to the Boost
+			Software License, Version 1.0. (See accompanying file
+			<code class="filename">LICENSE_1_0.txt</code> or copy at http://www.boost.org/LICENSE_1_0.txt)
+			</p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="BOOST_MIRROR_REG_NAMESPACE.html"><img src="../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="mirror/reference.html#header.boost.mirror.meta_namespace.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_MIRRORED_GLOBAL_SCOPE.html"><img src="../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/mirror/doc/html/BOOST_MIRROR_REG_NAMESPACE.html
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/html/BOOST_MIRROR_REG_NAMESPACE.html	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,261 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Macro BOOST_MIRROR_REG_NAMESPACE</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
+<link rel="start" href="index.html" title="The Mirror library documentation">
+<link rel="up" href="mirror/reference.html#header.boost.mirror.meta_namespace.hpp" title="Header <boost/mirror/meta_namespace.hpp>">
+<link rel="prev" href="boost/mirror/meta_namespace.html" title="Class template meta_namespace">
+<link rel="next" href="BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost/mirror/meta_namespace.html"><img src="../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="mirror/reference.html#header.boost.mirror.meta_namespace.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_MIRRORED_NAMESPACE.html"><img src="../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="BOOST_MIRROR_REG_NAMESPACE"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Macro BOOST_MIRROR_REG_NAMESPACE</span></h2>
+<p>BOOST_MIRROR_REG_NAMESPACE — This macro is used to register a namespace with <a class="link" href="mirror.html" title="Chapter 1. Mirror">Mirror</a>.
+		After successful registration the namespace can be reflected and can be used 
+		as a scope when registering types, classes, etc.
+		</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">BOOST_MIRROR_REG_NAMESPACE(PP_SEQ)</pre></div>
+<div class="refsect1" lang="en">
+<a name="id740165"></a><h2>Description</h2>
+<p>The <code class="computeroutput"><a class="link" href="BOOST_MIRROR_REG_NAMESPACE.html" title="Macro BOOST_MIRROR_REG_NAMESPACE">BOOST_MIRROR_REG_NAMESPACE</a></code> macro registers a namespace with 
+		the <a class="link" href="mirror.html" title="Chapter 1. Mirror">Mirror</a> library. 
+		</p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../doc/html/images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top">The registering must be done in the <code class="computeroutput">::boost::mirror</code> namespace.</td></tr>
+</table></div>
+<p>
+		The only argument of this macro is a Preprocessor sequence, containing
+		the names of the namespaces from the topmost to the one being registered. For example to register
+		these namespaces,
+</p>
+<pre class="programlisting">
+namespace ns_1 {
+  namespace ns_2 {
+    namespace ns_3 {
+      //...
+                namespace ns_N {
+                } // namespace ns_N
+      // ...
+    } // namespace ns_3
+  } // namespace ns_2
+} // namespace ns_1
+</pre>
+<p>
+		use 
+</p>
+<pre class="programlisting">
+// note that the registering must be done
+// in the boost::mirror namespace
+
+namespace boost {
+namespace mirror {
+
+// registers ::ns_1
+<a class="link" href="BOOST_MIRROR_REG_NAMESPACE.html" title="Macro BOOST_MIRROR_REG_NAMESPACE">BOOST_MIRROR_REG_NAMESPACE</a>((ns_1))
+// registers ::ns_1::ns_2
+<a class="link" href="BOOST_MIRROR_REG_NAMESPACE.html" title="Macro BOOST_MIRROR_REG_NAMESPACE">BOOST_MIRROR_REG_NAMESPACE</a>((ns_1)(ns_2))
+// registers ::ns_1::ns_2::ns_3
+<a class="link" href="BOOST_MIRROR_REG_NAMESPACE.html" title="Macro BOOST_MIRROR_REG_NAMESPACE">BOOST_MIRROR_REG_NAMESPACE</a>((ns_1)(ns_2)(ns_3))
+// registers ::ns_1::ns_2::ns_3::...::ns_N
+<a class="link" href="BOOST_MIRROR_REG_NAMESPACE.html" title="Macro BOOST_MIRROR_REG_NAMESPACE">BOOST_MIRROR_REG_NAMESPACE</a>((ns_1)(ns_2)(ns_3)...(ns_N))
+
+} //namespace mirror
+} //namespace boost
+</pre>
+<p>
+	and afterwards the namespaces can be reflected with the 
+	<code class="computeroutput"><a class="link" href="BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a></code> macro
+</p>
+<pre class="programlisting">
+BOOST_MPL_ASSERT((
+	reflects_namespace< <a class="link" href="BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::ns_1) >
+));
+BOOST_MPL_ASSERT((
+	reflects_namespace< <a class="link" href="BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::ns_1::ns_2::ns_3) >
+));
+BOOST_MPL_ASSERT_NOT((
+	reflects_global_scope< <a class="link" href="BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::ns_1) >
+));
+BOOST_MPL_ASSERT_NOT((
+	reflects_global_scope< <a class="link" href="BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::ns_1::ns_2::ns_3) >
+));
+BOOST_MPL_ASSERT((
+	reflects_global_scope< <a class="link" href="BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::ns_1::ns_2)::scope::scope >
+));
+</pre>
+<p>
+		and referenced in other registering macros. The <a class="link" href="mirror.html" title="Chapter 1. Mirror">Mirror</a> has several namespaces preregistered: 
+</p>
+<pre class="programlisting">
+namespace boost {
+namespace mirror {
+
+<a class="link" href="BOOST_MIRROR_REG_NAMESPACE.html" title="Macro BOOST_MIRROR_REG_NAMESPACE">BOOST_MIRROR_REG_NAMESPACE</a>((std))
+<a class="link" href="BOOST_MIRROR_REG_NAMESPACE.html" title="Macro BOOST_MIRROR_REG_NAMESPACE">BOOST_MIRROR_REG_NAMESPACE</a>((boost))
+<a class="link" href="BOOST_MIRROR_REG_NAMESPACE.html" title="Macro BOOST_MIRROR_REG_NAMESPACE">BOOST_MIRROR_REG_NAMESPACE</a>((boost)(mirror))
+
+} //namespace mirror
+} //namespace boost
+</pre>
+<p>
+		</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="mirror.REG_NAMESPACE.reference.samples"></a>Examples</h6></div></div></div>
+<p>This example shows the registering and reflection of namespaces
+			and basic usage of the <code class="computeroutput">meta_namespace</code>
+			template class and its members.
+			</p>
+<pre class="programlisting">
+#include <boost/char_type_switch/iostream.hpp>
+#include <boost/mirror/meta_namespace.hpp>
+#include <boost/mirror/traits/reflects_namespace.hpp>
+#include <boost/mirror/traits/reflects_global_scope.hpp>
+
+#include <boost/mpl/assert.hpp>
+
+namespace foo {
+namespace bar {
+namespace baz {
+
+} //namespace baz
+} //namespace bar
+} //namespace foo
+
+// the registering must be done in the boost::mirror namespace
+namespace boost {
+namespace mirror {
+
+// register foo
+<a class="link" href="BOOST_MIRROR_REG_NAMESPACE.html" title="Macro BOOST_MIRROR_REG_NAMESPACE">BOOST_MIRROR_REG_NAMESPACE</a>((foo))
+// register foo::bar
+<a class="link" href="BOOST_MIRROR_REG_NAMESPACE.html" title="Macro BOOST_MIRROR_REG_NAMESPACE">BOOST_MIRROR_REG_NAMESPACE</a>((foo)(bar))
+// register foo::bar::baz
+<a class="link" href="BOOST_MIRROR_REG_NAMESPACE.html" title="Macro BOOST_MIRROR_REG_NAMESPACE">BOOST_MIRROR_REG_NAMESPACE</a>((foo)(bar)(baz))
+
+} // namespace mirror
+} // namespace boost
+
+
+// prints meta-info about the global scope
+template < class MetaNamespace >
+void do_print_meta_data(::boost::true_type)
+{
+	using namespace ::std;
+	using namespace ::boost;
+	cts::bostream& bcout = cts::bcout();
+	bcout << 
+		BOOST_CTS_LIT("This is the global scope") << 
+	endl <<
+		BOOST_CTS_LIT("------------------------------------") << 
+	endl;
+}
+
+// prints meta-info about named namespaces
+template < class MetaNamespace >
+void do_print_meta_data(::boost::false_type)
+{
+	using namespace ::std;
+	using namespace ::boost;
+	using namespace ::boost::mirror;
+	cts::bostream& bcout = cts::bcout();
+
+	bcout << 
+		BOOST_CTS_LIT("Namespace '") << 
+		MetaNamespace::base_name() << 
+		BOOST_CTS_LIT("': ") << 
+	endl <<
+		BOOST_CTS_LIT(" - the full name is '") << 
+		MetaNamespace::full_name() << 
+		BOOST_CTS_LIT("'") << 
+	endl <<
+		BOOST_CTS_LIT(" - it's defined "); 
+
+	if(reflects_global_scope<typename MetaNamespace::scope>::value)
+		bcout << BOOST_CTS_LIT(" - on the global scope "); 
+	else
+		bcout << BOOST_CTS_LIT(" - in the '") <<
+			MetaNamespace::scope::full_name() <<
+			BOOST_CTS_LIT("' namespace"); 
+
+	bcout << endl <<
+		BOOST_CTS_LIT("------------------------------------") << 
+	endl;
+}
+
+
+
+template < class MetaNamespace >
+void print_meta_data(void)
+{
+	using namespace ::boost::mirror;
+	// check the template argument
+	BOOST_MPL_ASSERT((
+		reflects_namespace< MetaNamespace >	
+	));
+
+	// call the specialized printer based on whether
+	// the passed meta-namespace reflects the global
+	// scope or not
+	typename reflects_global_scope<MetaNamespace>::type 
+		selector;
+
+	do_print_meta_data<MetaNamespace>(selector);
+}
+
+
+int main(void)
+{
+	// reflect and print meta-info about the pre-registered namespaces
+	print_meta_data< <a class="link" href="BOOST_MIRRORED_GLOBAL_SCOPE.html" title="Macro BOOST_MIRRORED_GLOBAL_SCOPE">BOOST_MIRRORED_GLOBAL_SCOPE</a>() >();
+	print_meta_data< <a class="link" href="BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::std) >();
+	print_meta_data< <a class="link" href="BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::boost) >();
+	print_meta_data< <a class="link" href="BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::boost::mirror) >();
+
+	// reflect and print meta-info about the namespaces registered here
+	print_meta_data< <a class="link" href="BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::foo) >();
+	print_meta_data< <a class="link" href="BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::foo::bar) >();
+	print_meta_data< <a class="link" href="BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::foo::bar::baz) >();
+	
+	return 0;
+}
+</pre>
+</div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 Matúš Chochlík<p>Use, modification and distribution is subject to the Boost
+			Software License, Version 1.0. (See accompanying file
+			<code class="filename">LICENSE_1_0.txt</code> or copy at http://www.boost.org/LICENSE_1_0.txt)
+			</p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost/mirror/meta_namespace.html"><img src="../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="mirror/reference.html#header.boost.mirror.meta_namespace.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_MIRRORED_NAMESPACE.html"><img src="../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Modified: sandbox/mirror/doc/html/boost/mirror/meta_class.html
==============================================================================
--- sandbox/mirror/doc/html/boost/mirror/meta_class.html	(original)
+++ sandbox/mirror/doc/html/boost/mirror/meta_class.html	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -7,7 +7,7 @@
 <link rel="start" href="../../index.html" title="The Mirror library documentation">
 <link rel="up" href="../../mirror/reference.html#header.boost.mirror.meta_class.hpp" title="Header <boost/mirror/meta_class.hpp>">
 <link rel="prev" href="meta_type.html" title="Class template meta_type">
-<link rel="next" href="../../char_type_switch.html" title="Chapter 2. Char Type Switch">
+<link rel="next" href="reflects_namespace.html" title="Class template reflects_namespace">
 </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="meta_type.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../mirror/reference.html#header.boost.mirror.meta_class.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="../../char_type_switch.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="meta_type.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../mirror/reference.html#header.boost.mirror.meta_class.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="reflects_namespace.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="refentry" lang="en">
 <a name="boost.mirror.meta_class"></a><div class="titlepage"></div>
@@ -44,16 +44,16 @@
                                         </em></span>
 {
 <span class="bold"><strong>public</strong></span>:
-  <span class="emphasis"><em>// <a class="link" href="meta_class.html#id612141-bbtypes">types</a></em></span>
+  <span class="emphasis"><em>// <a class="link" href="meta_class.html#id670432-bbtypes">types</a></em></span>
   <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>unspecified</em></span> <a class="link" href="meta_class.html#boost.mirror.meta_class.base_classes">base_classes</a>;
   <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>unspecified</em></span> <a class="link" href="meta_class.html#boost.mirror.meta_class.attributes">attributes</a>;
   <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>unspecified</em></span> <a class="link" href="meta_class.html#boost.mirror.meta_class.all_attributes">all_attributes</a>;
 };</pre></div>
 <div class="refsect1" lang="en">
-<a name="id696193"></a><h2>Description</h2>
+<a name="id743701"></a><h2>Description</h2>
 <div class="refsect2" lang="en">
-<a name="id696197"></a><h3>
-<a name="id612141-bbtypes"></a><code class="computeroutput">meta_class</code> public types</h3>
+<a name="id743705"></a><h3>
+<a name="id670432-bbtypes"></a><code class="computeroutput">meta_class</code> public types</h3>
 <div class="orderedlist"><ol type="1">
 <li>
 <p>
@@ -87,7 +87,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="meta_type.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../mirror/reference.html#header.boost.mirror.meta_class.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="../../char_type_switch.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="meta_type.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../mirror/reference.html#header.boost.mirror.meta_class.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="reflects_namespace.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>
Modified: sandbox/mirror/doc/html/boost/mirror/meta_namespace.html
==============================================================================
--- sandbox/mirror/doc/html/boost/mirror/meta_namespace.html	(original)
+++ sandbox/mirror/doc/html/boost/mirror/meta_namespace.html	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -7,7 +7,7 @@
 <link rel="start" href="../../index.html" title="The Mirror library documentation">
 <link rel="up" href="../../mirror/reference.html#header.boost.mirror.meta_namespace.hpp" title="Header <boost/mirror/meta_namespace.hpp>">
 <link rel="prev" href="../../mirror/reference.html" title="Mirror Reference">
-<link rel="next" href="meta_type.html" title="Class template meta_type">
+<link rel="next" href="../../BOOST_MIRROR_REG_NAMESPACE.html" title="Macro BOOST_MIRROR_REG_NAMESPACE">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -20,63 +20,58 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../../mirror/reference.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../mirror/reference.html#header.boost.mirror.meta_namespace.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="meta_type.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="../../mirror/reference.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../mirror/reference.html#header.boost.mirror.meta_namespace.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_MIRROR_REG_NAMESPACE.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="refentry" lang="en">
 <a name="boost.mirror.meta_namespace"></a><div class="titlepage"></div>
 <div class="refnamediv">
 <h2><span class="refentrytitle">Class template meta_namespace</span></h2>
 <p>boost::mirror::meta_namespace — 
-				This class template provides meta-data
-				about the reflected namespace, especially allows to get the 
-				base and full namespace name and to 
-				get information about the scope inside of which this namespace
-				has been defined.
-				
-				To obtain a <code class="computeroutput">meta_namespace</code> for a particular
-				namespace (with the exception of the global scope) use the reflection
-				macro <code class="computeroutput">BOOST_MIRRORED_NAMESPACE(FULL_NAMESPACE_NAME)</code>. To
-				get the <code class="computeroutput">meta_namespace</code> specialization for
-				the global scope use the <code class="computeroutput">BOOST_MIRRORED_GLOBAL_SCOPE()</code>
-				macro.
-				</p>
+		This class template provides meta-data
+		about the reflected namespace, especially allows to get the 
+		base and full namespace name and to 
+		get information about the scope inside of which this namespace
+		has been defined.
+		
+		To obtain a <code class="computeroutput">meta_namespace</code> for a particular
+		namespace (with the exception of the global scope) use the reflection
+		macro <code class="computeroutput"><a class="link" href="../../BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(FULL_NAMESPACE_NAME)</code>. To
+		get the <code class="computeroutput">meta_namespace</code> specialization for
+		the global scope use the <code class="computeroutput"><a class="link" href="../../BOOST_MIRRORED_GLOBAL_SCOPE.html" title="Macro BOOST_MIRRORED_GLOBAL_SCOPE">BOOST_MIRRORED_GLOBAL_SCOPE</a>()</code>
+		macro.
+		</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><<span class="bold"><strong>typename</strong></span> NamespacePlaceholder> 
 <span class="bold"><strong>class</strong></span> <a class="link" href="meta_namespace.html" title="Class template meta_namespace">meta_namespace</a> {
 <span class="bold"><strong>public</strong></span>:
-  <span class="emphasis"><em>// <a class="link" href="meta_namespace.html#id461012-bbtypes">types</a></em></span>
+  <span class="emphasis"><em>// <a class="link" href="meta_namespace.html#id494844-bbtypes">types</a></em></span>
   <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>unspecified</em></span> <a class="link" href="meta_namespace.html#boost.mirror.meta_namespace.scope">scope</a>;
   <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>unspecified</em></span> <a class="link" href="meta_namespace.html#boost.mirror.meta_namespace.ancestors">ancestors</a>;
-  <span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&</span> <a class="link" href="meta_namespace.html#id460888-bb">base_name</a>();
-  <span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&</span> <a class="link" href="meta_namespace.html#id460846-bb">full_name</a>();
+  <span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&</span> <a class="link" href="meta_namespace.html#id494721-bb">base_name</a>();
+  <span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&</span> <a class="link" href="meta_namespace.html#id494679-bb">full_name</a>();
   <span class="bold"><strong>template</strong></span><<span class="bold"><strong>bool</strong></span> FullName, <span class="bold"><strong>typename</strong></span> CharT> 
     <span class="type"><span class="bold"><strong>const</strong></span> ::std::basic_string<CharT>&</span> 
-    <a class="link" href="meta_namespace.html#id460792-bb">get_name</a>(::boost::mpl::bool_<FullName>, ::std::char_traits<CharT>);
+    <a class="link" href="meta_namespace.html#id494626-bb">get_name</a>(::boost::mpl::bool_<FullName>, ::std::char_traits<CharT>);
 };</pre></div>
 <div class="refsect1" lang="en">
-<a name="id694785"></a><h2>Description</h2>
+<a name="id739619"></a><h2>Description</h2>
 <p>The specializations of <code class="computeroutput">meta_type</code> can 
-				be used to get meta-information about the reflected types, some at compile-time and some at run-time.
-				The following examples show type reflection and basic 
-				<code class="computeroutput">meta_type</code> usage. Mirror works with the native C++ types
-				and some of the very common types like <code class="computeroutput">::std::string</code>, etc. out of the box.
-				Meta-types for many other types from the standard library and Boost
-			       	are also provided and can be <code class="computeroutput">#include</code>d when necessary.
-				</p>
+		be used to get meta-information about the reflected types, some at compile-time and some at run-time.
+		The following examples show type reflection and basic 
+		<code class="computeroutput">meta_type</code> usage. Mirror works with the native C++ types
+		and some of the very common types like <code class="computeroutput">::std::string</code>, etc. out of the box.
+		Meta-types for many other types from the standard library and Boost
+		are also provided and can be <code class="computeroutput">#include</code>d when necessary.
+		</p>
 <div class="section" lang="en">
 <div class="titlepage"></div>
-<div class="toc"><dl>
-<dt><span class="section">Example - Basic usage</span></dt>
-<dt><span class="section">Example - Scope and ancestors</span></dt>
-<dt><span class="section">Example - Generic namespace name getter</span></dt>
-</dl></div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h6 class="title">
 <a name="mirror.meta_namespace.reference.sample01"></a>Example - Basic usage</h6></div></div></div>
 <p>This sample code shows how to reflect a namespace and how to get its 
-					base and full name. 
-					</p>
+			base and full name. 
+			</p>
 <a name="mirror.reference.sample.meta_namespace.usage01"></a><pre class="programlisting">
 #include <boost/char_type_switch/iostream.hpp>
 #include <boost/mirror/meta_namespace.hpp>
@@ -107,11 +102,11 @@
 <div class="titlepage"><div><div><h6 class="title">
 <a name="mirror.meta_namespace.reference.sample02"></a>Example - Scope and ancestors</h6></div></div></div>
 <p>The following example shows what can be done with the 
-					<code class="computeroutput">meta_namespace</code>s <code class="computeroutput">scope</code> and
-					<code class="computeroutput">ancestors</code> <code class="computeroutput">typedef</code>s. It also shows the usage
-					of the <code class="computeroutput">reflects_global_scope</code> trait
-					template.
-					</p>
+			<code class="computeroutput">meta_namespace</code>s <code class="computeroutput">scope</code> and
+			<code class="computeroutput">ancestors</code> <code class="computeroutput">typedef</code>s. It also shows the usage
+			of the <code class="computeroutput">reflects_global_scope</code> trait
+			template.
+			</p>
 <a name="mirror.reference.sample.meta_namespace.usage02"></a><pre class="programlisting">
 #include <boost/mpl/for_each.hpp>
 #include <boost/char_type_switch/iostream.hpp>
@@ -171,18 +166,18 @@
 <div class="titlepage"><div><div><h6 class="title">
 <a name="mirror.meta_namespace.reference.sample03"></a>Example - Generic namespace name getter</h6></div></div></div>
 <p>The <code class="computeroutput">base_name</code> and the 
-					<code class="computeroutput">full_name</code> methods
-					are convenient but not very generic. The <code class="computeroutput">get_name</code> 
-					member function allows to specify the character type of the returned string and 
-					to specify wheter a full or just the base namespace name should be returned, based
-					on compile time arguments.
-					</p>
+			<code class="computeroutput">full_name</code> methods
+			are convenient but not very generic. The <code class="computeroutput">get_name</code> 
+			member function allows to specify the character type of the returned string and 
+			to specify wheter a full or just the base namespace name should be returned, based
+			on compile time arguments.
+			</p>
 <p>The first argument must be either <code class="computeroutput">mpl::true_</code> for full type name
-					or <code class="computeroutput">mpl::false_</code> for base type name and the second argument must be
-					a specialization of the <code class="computeroutput">::std::char_traits</code> template with <code class="computeroutput">char</code>
-					for <code class="computeroutput">::std::string</code> return value type or <code class="computeroutput">wchar_t</code> for
-					<code class="computeroutput">::std::wstring</code> return value type.
-					</p>
+			or <code class="computeroutput">mpl::false_</code> for base type name and the second argument must be
+			an instance of the <code class="computeroutput">::std::char_traits</code> template with <code class="computeroutput">char</code>
+			for <code class="computeroutput">::std::string</code> return value type or <code class="computeroutput">wchar_t</code> for
+			<code class="computeroutput">::std::wstring</code> return value type.
+			</p>
 <a name="mirror.reference.sample.meta_namespace.usage03"></a><pre class="programlisting">
 #include <iostream>
 #include <boost/mirror/meta_namespace.hpp>
@@ -218,34 +213,34 @@
 </div>
 </div>
 <div class="refsect2" lang="en">
-<a name="id694952"></a><h3>
-<a name="id461012-bbtypes"></a><code class="computeroutput">meta_namespace</code> public types</h3>
+<a name="id739786"></a><h3>
+<a name="id494844-bbtypes"></a><code class="computeroutput">meta_namespace</code> public types</h3>
 <div class="orderedlist"><ol type="1">
 <li>
 <p>
 <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>unspecified</em></span> <a name="boost.mirror.meta_namespace.scope"></a>scope;</p>
 <p>A meta-object describing the scope in which the reflected namespace
-					is defined. It is a specialization of <code class="computeroutput">meta_namespace</code>
-					with the exception of the meta-namespace reflecting the global scope where
-					this type is not defined.
-					</p>
+			is defined. It is a specialization of <code class="computeroutput">meta_namespace</code>
+			with the exception of the meta-namespace reflecting the global scope where
+			this type is not defined.
+			</p>
 <p>To find out whether a meta-namespace reflects the global scope
-					use the <code class="computeroutput">reflects_global_scope</code> template meta-function.
-					</p>
+			use the <code class="computeroutput">reflects_global_scope</code> template meta-function.
+			</p>
 </li>
 <li>
 <p>
 <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>unspecified</em></span> <a name="boost.mirror.meta_namespace.ancestors"></a>ancestors;</p>
 <p>An <code class="computeroutput">mpl::vector</code> containing the <code class="computeroutput">meta_namespace</code>
-					specializations for all the namespaces in which the reflected namespace is
-					directly or indirectly nested (not-containing the <code class="computeroutput">meta_namespace</code>
-					for the reflected namespace). The elements of this <code class="computeroutput">mpl::vector</code> are
-					ordered from the <code class="computeroutput">meta_namespace</code> reflecting
-					the global scope to the <code class="computeroutput">meta_namespace</code>
-					reflecting the parent namespace. The following holds 
-					for <code class="computeroutput">meta_namespace</code>s
-					reflecting any namespace with the exception of the global scope:
-					</p>
+			specializations for all the namespaces in which the reflected namespace is
+			directly or indirectly nested (not-containing the <code class="computeroutput">meta_namespace</code>
+			for the reflected namespace). The elements of this <code class="computeroutput">mpl::vector</code> are
+			ordered from the <code class="computeroutput">meta_namespace</code> reflecting
+			the global scope to the <code class="computeroutput">meta_namespace</code>
+			reflecting the parent namespace. The following holds 
+			for <code class="computeroutput">meta_namespace</code>s
+			reflecting any namespace with the exception of the global scope:
+			</p>
 <a name="mirror.reference.sample.meta_namespace.ancestors01"></a><pre class="programlisting">
 using namespace ::boost;
 using namespace ::boost::mirror;
@@ -276,8 +271,8 @@
 ));
 </pre>
 <p>For the <code class="computeroutput">meta_namespace</code>
-					reflecting the global scope the following holds true.
-					</p>
+			reflecting the global scope the following holds true.
+			</p>
 <a name="mirror.reference.sample.meta_namespace.ancestors02"></a><pre class="programlisting">
 BOOST_MPL_ASSERT((
         mpl::empty <
@@ -287,76 +282,76 @@
 
 </pre>
 <p>To find out whether a meta-namespace reflects the global scope
-					use the <code class="computeroutput">reflects_global_scope</code> template meta-function.
-					</p>
+			use the <code class="computeroutput">reflects_global_scope</code> template meta-function.
+			</p>
 </li>
 </ol></div>
 </div>
-<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&</span> <a name="id460888-bb"></a>base_name();</pre>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&</span> <a name="id494721-bb"></a>base_name();</pre>
 <p>This static member function returns the base name of the 
-					namespace reflected by a <code class="computeroutput">meta_namespace</code>.
-					For example the base namespace name "returned" by the invocation of 
-					</p>
-<pre class="programlisting"><code class="computeroutput">BOOST_MIRRORED_NAMESPACE</code>(::boost::mirror) :: base_name()
-					</pre>
+			namespace reflected by a <code class="computeroutput">meta_namespace</code>.
+			For example the base namespace name "returned" by the invocation of 
+			</p>
+<pre class="programlisting"><code class="computeroutput"><a class="link" href="../../BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a></code>(::boost::mirror) :: base_name()
+			</pre>
 <p>
-					is <code class="computeroutput">"mirror"</code>. When a full namespace name 
-					<span class="bold"><strong>with</strong></span> the nested name specifier
-					is needed use the <code class="computeroutput">full_name</code> member function
-			       		instead.</p>
-<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&</span> <a name="id460846-bb"></a>full_name();</pre>
+			is <code class="computeroutput">"mirror"</code>. When a full namespace name 
+			<span class="bold"><strong>with</strong></span> the nested name specifier
+			is needed use the <code class="computeroutput">full_name</code> member function
+			instead.</p>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&</span> <a name="id494679-bb"></a>full_name();</pre>
 <p>This static member function returns the full name of the 
-					namespace reflected by a <code class="computeroutput">meta_namespace</code>
-					with the nested name specifier. For example:
-					</p>
+			namespace reflected by a <code class="computeroutput">meta_namespace</code>
+			with the nested name specifier. For example:
+			</p>
 <pre class="programlisting"><code class="computeroutput">BOOST_MIRRORED_NAMESPACE</code>(::boost::mirror) :: full_name()
-					</pre>
+			</pre>
 <p>
-					returns <code class="computeroutput">"::boost::mirror"</code>. When the base namespace name 
-					<span class="bold"><strong>without</strong></span> the nested name specifier
-					is needed use the <code class="computeroutput">base_name</code> member function
-			       		instead.</p>
+			returns <code class="computeroutput">"::boost::mirror"</code>. When the base namespace name 
+			<span class="bold"><strong>without</strong></span> the nested name specifier
+			is needed use the <code class="computeroutput">base_name</code> member function
+			instead.</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
 <td><p><span class="term">Notes:</span></p></td>
 <td><p>The first call to this function can be expensive 
-					for deeply nested namespaces, because the name needs to be properly composed from 
-					the base namespace names, which may 
-					lead to multiple string concatenations. Subsequent calls to this member function
-					for a concrete specialization of meta_namespace
-					are usually much faster.
-					</p></td>
+			for deeply nested namespaces, because the name needs to be properly composed from 
+			the base namespace names, which may 
+			lead to multiple string concatenations. Subsequent calls to this member function
+			for a concrete specialization of meta_namespace
+			are usually much faster.
+			</p></td>
 </tr></tbody>
 </table></div>
 <pre class="literallayout"><span class="bold"><strong>template</strong></span><<span class="bold"><strong>bool</strong></span> FullName, <span class="bold"><strong>typename</strong></span> CharT> 
   <span class="type"><span class="bold"><strong>const</strong></span> ::std::basic_string<CharT>&</span> 
-  <a name="id460792-bb"></a>get_name(::boost::mpl::bool_<FullName> full, ::std::char_traits<CharT> cht);</pre>
+  <a name="id494626-bb"></a>get_name(::boost::mpl::bool_<FullName> full, ::std::char_traits<CharT> cht);</pre>
 <p>This static member template function returns either the base name 
-					<span class="bold"><strong>without</strong></span> the nested name specifier 
-					or the full name <span class="bold"><strong>with</strong></span> the 
-					nested name specifier of the namespace reflected by this
-					<code class="computeroutput">meta_namespace</code>,
-					depending on the value of the template argument <code class="computeroutput">FullName</code>.
-					Furthermore it allows to choose whether the return value type is 
-					<code class="computeroutput">::std::string</code> or <code class="computeroutput">::std::wstring</code> based
-					on the type of the second argument.
-					For example:
-					</p>
+			<span class="bold"><strong>without</strong></span> the nested name specifier 
+			or the full name <span class="bold"><strong>with</strong></span> the 
+			nested name specifier of the namespace reflected by this
+			<code class="computeroutput">meta_namespace</code>,
+			depending on the value of the template argument <code class="computeroutput">FullName</code>.
+			Furthermore it allows to choose whether the return value type is 
+			<code class="computeroutput">::std::string</code> or <code class="computeroutput">::std::wstring</code> based
+			on the type of the second argument.
+			For example:
+			</p>
 <pre class="programlisting"><code class="computeroutput">BOOST_MIRRORED_NAMESPACE</code>(::boost::mirror) :: get_name(::boost::mpl::false_(), ::std::char_traits<char>())
-					</pre>
+			</pre>
 <p> is equivalent to calling the 
-					<code class="computeroutput">base_name</code> member function with the 
-					<code class="computeroutput">BOOST_CTS_USE_WIDE_CHARS</code> symbol undefined, 
-					which returns a <code class="computeroutput">::std::string</code> holding the string <code class="computeroutput">"mirror"</code> and calling
-					</p>
+			<code class="computeroutput">base_name</code> member function with the 
+			<code class="computeroutput">BOOST_CTS_USE_WIDE_CHARS</code> symbol undefined, 
+			which returns a <code class="computeroutput">::std::string</code> holding the string <code class="computeroutput">"mirror"</code> and calling
+			</p>
 <pre class="programlisting"><code class="computeroutput">BOOST_MIRRORED_NAMESPACE</code>(::boost::mirror) :: get_name(::boost::mpl::true_(), ::std::char_traits<wchar_t>())
-					</pre>
+			</pre>
 <p> is equivalent to calling the 
-					<code class="computeroutput">full_name</code> method with the 
-					<code class="computeroutput">BOOST_CTS_USE_WIDE_CHARS</code> symbol defined, 
-					which returns a <code class="computeroutput">::std::wstring</code> holding this string <code class="computeroutput">L"::boost::mirror"</code>.
-					</p>
+			<code class="computeroutput">full_name</code> method with the 
+			<code class="computeroutput">BOOST_CTS_USE_WIDE_CHARS</code> symbol defined, 
+			which returns a <code class="computeroutput">::std::wstring</code> holding this string <code class="computeroutput">L"::boost::mirror"</code>.
+			</p>
 </div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
@@ -369,7 +364,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../../mirror/reference.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../mirror/reference.html#header.boost.mirror.meta_namespace.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="meta_type.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="../../mirror/reference.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../mirror/reference.html#header.boost.mirror.meta_namespace.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_MIRROR_REG_NAMESPACE.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>
Modified: sandbox/mirror/doc/html/boost/mirror/meta_type.html
==============================================================================
--- sandbox/mirror/doc/html/boost/mirror/meta_type.html	(original)
+++ sandbox/mirror/doc/html/boost/mirror/meta_type.html	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
 <link rel="start" href="../../index.html" title="The Mirror library documentation">
 <link rel="up" href="../../mirror/reference.html#header.boost.mirror.meta_type.hpp" title="Header <boost/mirror/meta_type.hpp>">
-<link rel="prev" href="meta_namespace.html" title="Class template meta_namespace">
+<link rel="prev" href="../../BOOST_MIRRORED_GLOBAL_SCOPE.html" title="Macro BOOST_MIRRORED_GLOBAL_SCOPE">
 <link rel="next" href="meta_class.html" title="Class template meta_class">
 </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="meta_namespace.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../mirror/reference.html#header.boost.mirror.meta_type.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="meta_class.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="../../BOOST_MIRRORED_GLOBAL_SCOPE.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../mirror/reference.html#header.boost.mirror.meta_type.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="meta_class.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="refentry" lang="en">
 <a name="boost.mirror.meta_type"></a><div class="titlepage"></div>
@@ -44,17 +44,17 @@
 <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><<span class="bold"><strong>typename</strong></span> Type> 
 <span class="bold"><strong>class</strong></span> <a class="link" href="meta_type.html" title="Class template meta_type">meta_type</a> {
 <span class="bold"><strong>public</strong></span>:
-  <span class="emphasis"><em>// <a class="link" href="meta_type.html#id460402-bbtypes">types</a></em></span>
+  <span class="emphasis"><em>// <a class="link" href="meta_type.html#id670745-bbtypes">types</a></em></span>
   <span class="bold"><strong>typedef</strong></span> Type <a class="link" href="meta_type.html#boost.mirror.meta_type.reflected_type">reflected_type</a>;
   <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>unspecified</em></span> <a class="link" href="meta_type.html#boost.mirror.meta_type.scope">scope</a>;
-  <span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&</span> <a class="link" href="meta_type.html#id460341-bb">base_name</a>();
-  <span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&</span> <a class="link" href="meta_type.html#id460281-bb">full_name</a>();
+  <span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&</span> <a class="link" href="meta_type.html#id669385-bb">base_name</a>();
+  <span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&</span> <a class="link" href="meta_type.html#id671185-bb">full_name</a>();
   <span class="bold"><strong>template</strong></span><<span class="bold"><strong>bool</strong></span> FullName, <span class="bold"><strong>typename</strong></span> CharT> 
     <span class="type"><span class="bold"><strong>const</strong></span> ::std::basic_string<CharT>&</span> 
-    <a class="link" href="meta_type.html#id460216-bb">get_name</a>(::boost::mpl::bool_<FullName>, ::std::char_traits<CharT>);
+    <a class="link" href="meta_type.html#id670572-bb">get_name</a>(::boost::mpl::bool_<FullName>, ::std::char_traits<CharT>);
 };</pre></div>
 <div class="refsect1" lang="en">
-<a name="id695492"></a><h2>Description</h2>
+<a name="id740815"></a><h2>Description</h2>
 <p>The specializations of <code class="computeroutput">meta_type</code> can 
                                 be used to get meta-information about the reflected types, some at compile-time and some at run-time.
                                 The following examples show type reflection and basic 
@@ -65,17 +65,11 @@
                                 </p>
 <div class="section" lang="en">
 <div class="titlepage"></div>
-<div class="toc"><dl>
-<dt><span class="section">Example - Basic usage</span></dt>
-<dt><span class="section">Example - Using with typeof and getting scope-related information</span></dt>
-<dt><span class="section">Example - Reflection of typedef-ined types</span></dt>
-<dt><span class="section">Example - Generic typename getter</span></dt>
-</dl></div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h6 class="title">
 <a name="mirror.meta_type.reference.sample01"></a>Example - Basic usage</h6></div></div></div>
 <p>This sample code shows how to reflect a type and how to get its full type name.
-					Since various specializations of <code class="computeroutput">::std::pair</code> are reflected,
+					Since various instances of <code class="computeroutput">::std::pair</code> are reflected,
                                         the <code class="computeroutput">meta_type</code>s for this template need to be 
                                         included.
                                         </p>
@@ -248,7 +242,7 @@
                                         </p>
 <p>The first argument must be either <code class="computeroutput">mpl::true_</code> for full type name
                                         or <code class="computeroutput">mpl::false_</code> for base type name and the second argument must be
-					a specialization of the <code class="computeroutput">::std::char_traits</code> template with <code class="computeroutput">char</code>
+					an instance of the <code class="computeroutput">::std::char_traits</code> template with <code class="computeroutput">char</code>
                                         for <code class="computeroutput">::std::string</code> return value type or <code class="computeroutput">wchar_t</code> for
                                         <code class="computeroutput">::std::wstring</code> return value type.
                                         </p>
@@ -287,8 +281,8 @@
 </div>
 </div>
 <div class="refsect2" lang="en">
-<a name="id695701"></a><h3>
-<a name="id460402-bbtypes"></a><code class="computeroutput">meta_type</code> public types</h3>
+<a name="id741024"></a><h3>
+<a name="id670745-bbtypes"></a><code class="computeroutput">meta_type</code> public types</h3>
 <div class="orderedlist"><ol type="1">
 <li>
 <p>
@@ -307,7 +301,7 @@
 </li>
 </ol></div>
 </div>
-<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&</span> <a name="id460341-bb"></a>base_name();</pre>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&</span> <a name="id669385-bb"></a>base_name();</pre>
 <p>This static member function returns the base name of the 
                                         type reflected by <code class="computeroutput">meta_type</code>
                                         without the nested name specifier. For example:
@@ -337,7 +331,7 @@
                                         </p></td>
 </tr></tbody>
 </table></div>
-<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&</span> <a name="id460281-bb"></a>full_name();</pre>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&</span> <a name="id671185-bb"></a>full_name();</pre>
 <p>This static member function returns the full name of the 
                                         type reflected by <code class="computeroutput">meta_type</code>
                                         with the nested name specifier. For example:
@@ -369,7 +363,7 @@
 </table></div>
 <pre class="literallayout"><span class="bold"><strong>template</strong></span><<span class="bold"><strong>bool</strong></span> FullName, <span class="bold"><strong>typename</strong></span> CharT> 
   <span class="type"><span class="bold"><strong>const</strong></span> ::std::basic_string<CharT>&</span> 
-  <a name="id460216-bb"></a>get_name(::boost::mpl::bool_<FullName> full, ::std::char_traits<CharT> cht);</pre>
+  <a name="id670572-bb"></a>get_name(::boost::mpl::bool_<FullName> full, ::std::char_traits<CharT> cht);</pre>
 <p>This static member template function returns either the base name 
                                         <span class="bold"><strong>without</strong></span> the nested name specifier 
                                         or the full name <span class="bold"><strong>with</strong></span> the 
@@ -412,7 +406,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="meta_namespace.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../mirror/reference.html#header.boost.mirror.meta_type.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="meta_class.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="../../BOOST_MIRRORED_GLOBAL_SCOPE.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../mirror/reference.html#header.boost.mirror.meta_type.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="meta_class.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>
Added: sandbox/mirror/doc/html/boost/mirror/reflects_class.html
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/html/boost/mirror/reflects_class.html	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,78 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template reflects_class</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
+<link rel="start" href="../../index.html" title="The Mirror library documentation">
+<link rel="up" href="../../mirror/reference.html#header.boost.mirror.traits.reflects_class.hpp" title="Header <boost/mirror/traits/reflects_class.hpp>">
+<link rel="prev" href="reflects_type.html" title="Class template reflects_type">
+<link rel="next" href="reflects_inheritance.html" title="Class template reflects_inheritance">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="reflects_type.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../mirror/reference.html#header.boost.mirror.traits.reflects_class.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="reflects_inheritance.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boost.mirror.reflects_class"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template reflects_class</span></h2>
+<p>boost::mirror::reflects_class — If <code class="computeroutput">MetaObject</code> is an instantiation of 
+				<code class="computeroutput">meta_class</code>, then <code class="computeroutput">reflects_class</code>
+				inherits from <code class="computeroutput">::boost::true_type</code>. Otherwise it inherits from
+				<code class="computeroutput">::boost::false_type</code>.
+				</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><<span class="bold"><strong>typename</strong></span> MetaObject> 
+<span class="bold"><strong>class</strong></span> <a class="link" href="reflects_class.html" title="Class template reflects_class">reflects_class</a> : <span class="bold"><strong>public</strong></span> <span class="type">false_type-or-true_type</span> {
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id744410"></a><h2>Description</h2>
+<p>This template can be used to distinguish whether the opaque <code class="computeroutput">MetaObject</code> type reflects a class
+				and thus is an instantiation of <code class="computeroutput">meta_class</code>.
+				</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="mirror.reflects_class.reference.samples"></a>Examples</h6></div></div></div>
+<pre class="programlisting">
+BOOST_MPL_ASSERT_NOT((
+	reflects_class< BOOST_MIRRORED_TYPE(::std::string) >
+));
+</pre>
+<pre class="programlisting">
+BOOST_MPL_ASSERT((
+	reflects_class< BOOST_MIRRORED_CLASS(::std::string) >
+));
+</pre>
+<pre class="programlisting">
+BOOST_MPL_ASSERT_NOT((
+	reflects_class< BOOST_MIRRORED_CLASS(::std::string)::scope >
+));
+</pre>
+</div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 Matúš Chochlík<p>Use, modification and distribution is subject to the Boost
+			Software License, Version 1.0. (See accompanying file
+			<code class="filename">LICENSE_1_0.txt</code> or copy at http://www.boost.org/LICENSE_1_0.txt)
+			</p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="reflects_type.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../mirror/reference.html#header.boost.mirror.traits.reflects_class.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="reflects_inheritance.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/mirror/doc/html/boost/mirror/reflects_global_scope.html
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/html/boost/mirror/reflects_global_scope.html	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,94 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template reflects_global_scope</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
+<link rel="start" href="../../index.html" title="The Mirror library documentation">
+<link rel="up" href="../../mirror/reference.html#header.boost.mirror.traits.reflects_global_scope.hpp" title="Header <boost/mirror/traits/reflects_global_scope.hpp>">
+<link rel="prev" href="reflects_namespace.html" title="Class template reflects_namespace">
+<link rel="next" href="reflects_type.html" title="Class template reflects_type">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="reflects_namespace.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../mirror/reference.html#header.boost.mirror.traits.reflects_global_scope.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="reflects_type.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boost.mirror.reflects_global_scope"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template reflects_global_scope</span></h2>
+<p>boost::mirror::reflects_global_scope — If <code class="computeroutput">MetaObject</code> is the specialization of <code class="computeroutput">meta_namespace</code>,
+				reflecting the global scope,
+				then <code class="computeroutput">reflects_global_scope</code>
+				inherits from <code class="computeroutput">::boost::true_type</code>. Otherwise it inherits from
+				<code class="computeroutput">::boost::false_type</code>.
+				</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><<span class="bold"><strong>typename</strong></span> MetaObject> 
+<span class="bold"><strong>class</strong></span> <a class="link" href="reflects_global_scope.html" title="Class template reflects_global_scope">reflects_global_scope</a> : <span class="bold"><strong>public</strong></span> <span class="type">false_type-or-true_type</span> {
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id744065"></a><h2>Description</h2>
+<p>This template can be used to distinguish whether the opaque <code class="computeroutput">MetaObject</code> type reflects the global scope
+				and thus is an instantiation of <code class="computeroutput">meta_namespace</code> for the global scope.
+				</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="mirror.reflects_global_scope.reference.samples"></a>Examples</h6></div></div></div>
+<pre class="programlisting">
+BOOST_STATIC_ASSERT((
+	reflects_global_scope< BOOST_MIRRORED_GLOBAL_SCOPE() >::value
+));
+</pre>
+<pre class="programlisting">
+BOOST_STATIC_ASSERT((
+	!reflects_global_scope< BOOST_MIRRORED_NAMESPACE(::boost::mirror) >::value
+));
+</pre>
+<pre class="programlisting">
+BOOST_STATIC_ASSERT((
+	!reflects_global_scope< BOOST_MIRRORED_TYPE(::std::string) >::value
+));
+</pre>
+<pre class="programlisting">
+BOOST_MPL_ASSERT((
+	reflects_global_scope< BOOST_MIRRORED_TYPE(int)::scope >
+));
+</pre>
+<pre class="programlisting">
+BOOST_MPL_ASSERT((
+	reflects_global_scope< BOOST_MIRRORED_TYPE(::std::string)::scope::scope >
+));
+</pre>
+<pre class="programlisting">
+BOOST_MPL_ASSERT_NOT((
+	reflects_global_scope< BOOST_MIRRORED_TYPE(::std::string)::scope >
+));
+</pre>
+</div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 Matúš Chochlík<p>Use, modification and distribution is subject to the Boost
+			Software License, Version 1.0. (See accompanying file
+			<code class="filename">LICENSE_1_0.txt</code> or copy at http://www.boost.org/LICENSE_1_0.txt)
+			</p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="reflects_namespace.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../mirror/reference.html#header.boost.mirror.traits.reflects_global_scope.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="reflects_type.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/mirror/doc/html/boost/mirror/reflects_inheritance.html
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/html/boost/mirror/reflects_inheritance.html	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,53 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template reflects_inheritance</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
+<link rel="start" href="../../index.html" title="The Mirror library documentation">
+<link rel="up" href="../../mirror/reference.html#header.boost.mirror.traits.reflects_inheritance.hpp" title="Header <boost/mirror/traits/reflects_inheritance.hpp>">
+<link rel="prev" href="reflects_class.html" title="Class template reflects_class">
+<link rel="next" href="reflects_virtual_inheritance.html" title="Class template reflects_virtual_inheritance">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="reflects_class.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../mirror/reference.html#header.boost.mirror.traits.reflects_inheritance.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="reflects_virtual_inheritance.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boost.mirror.reflects_inheritance"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template reflects_inheritance</span></h2>
+<p>boost::mirror::reflects_inheritance — If <code class="computeroutput">MetaObject</code> is an instantiation of <code class="computeroutput">meta_inheritance</code>,
+				then <code class="computeroutput">reflects_inheritance</code>
+				inherits from <code class="computeroutput">::boost::true_type</code>. Otherwise it inherits from
+				<code class="computeroutput">::boost::false_type</code>.
+				</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><<span class="bold"><strong>typename</strong></span> MetaObject> 
+<span class="bold"><strong>class</strong></span> <a class="link" href="reflects_inheritance.html" title="Class template reflects_inheritance">reflects_inheritance</a> : <span class="bold"><strong>public</strong></span> <span class="type">false_type-or-true_type</span> {
+};</pre></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 Matúš Chochlík<p>Use, modification and distribution is subject to the Boost
+			Software License, Version 1.0. (See accompanying file
+			<code class="filename">LICENSE_1_0.txt</code> or copy at http://www.boost.org/LICENSE_1_0.txt)
+			</p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="reflects_class.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../mirror/reference.html#header.boost.mirror.traits.reflects_inheritance.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="reflects_virtual_inheritance.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/mirror/doc/html/boost/mirror/reflects_namespace.html
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/html/boost/mirror/reflects_namespace.html	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,93 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template reflects_namespace</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
+<link rel="start" href="../../index.html" title="The Mirror library documentation">
+<link rel="up" href="../../mirror/reference.html#header.boost.mirror.traits.reflects_namespace.hpp" title="Header <boost/mirror/traits/reflects_namespace.hpp>">
+<link rel="prev" href="meta_class.html" title="Class template meta_class">
+<link rel="next" href="reflects_global_scope.html" title="Class template reflects_global_scope">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="meta_class.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../mirror/reference.html#header.boost.mirror.traits.reflects_namespace.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="reflects_global_scope.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boost.mirror.reflects_namespace"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template reflects_namespace</span></h2>
+<p>boost::mirror::reflects_namespace — If <code class="computeroutput">MetaObject</code> is an instantiation of <code class="computeroutput">meta_namespace</code>,
+				then <code class="computeroutput">reflects_namespace</code>
+				inherits from <code class="computeroutput">::boost::true_type</code>. Otherwise it inherits from
+				<code class="computeroutput">::boost::false_type</code>.
+				</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><<span class="bold"><strong>typename</strong></span> MetaObject> 
+<span class="bold"><strong>class</strong></span> <a class="link" href="reflects_namespace.html" title="Class template reflects_namespace">reflects_namespace</a> : <span class="bold"><strong>public</strong></span> <span class="type">false_type-or-true_type</span> {
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id743893"></a><h2>Description</h2>
+<p>This template can be used to distinguish whether the opaque <code class="computeroutput">MetaObject</code> type reflects a namespace
+				and thus is an instantiation of <code class="computeroutput">meta_namespace</code>.
+				</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="mirror.reflects_namespace.reference.samples"></a>Examples</h6></div></div></div>
+<pre class="programlisting">
+BOOST_STATIC_ASSERT((
+	reflects_namespace< BOOST_MIRRORED_NAMESPACE(::boost::mirror) >::value
+));
+</pre>
+<pre class="programlisting">
+BOOST_STATIC_ASSERT((
+	reflects_namespace< BOOST_MIRRORED_TYPE(::std::string)::scope >::value
+));
+</pre>
+<pre class="programlisting">
+BOOST_STATIC_ASSERT((
+	!reflects_namespace< BOOST_MIRRORED_TYPE(::std::string) >::value
+));
+</pre>
+<pre class="programlisting">
+BOOST_MPL_ASSERT((
+	reflects_namespace< BOOST_MIRRORED_NAMESPACE(::boost::mirror) >
+));
+</pre>
+<pre class="programlisting">
+BOOST_MPL_ASSERT((
+	reflects_namespace< BOOST_MIRRORED_TYPE(::std::string)::scope >
+));
+</pre>
+<pre class="programlisting">
+BOOST_MPL_ASSERT_NOT((
+	reflects_namespace< BOOST_MIRRORED_TYPE(::std::string) >
+));
+</pre>
+</div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 Matúš Chochlík<p>Use, modification and distribution is subject to the Boost
+			Software License, Version 1.0. (See accompanying file
+			<code class="filename">LICENSE_1_0.txt</code> or copy at http://www.boost.org/LICENSE_1_0.txt)
+			</p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="meta_class.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../mirror/reference.html#header.boost.mirror.traits.reflects_namespace.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="reflects_global_scope.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/mirror/doc/html/boost/mirror/reflects_type.html
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/html/boost/mirror/reflects_type.html	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,93 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template reflects_type</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
+<link rel="start" href="../../index.html" title="The Mirror library documentation">
+<link rel="up" href="../../mirror/reference.html#header.boost.mirror.traits.reflects_type.hpp" title="Header <boost/mirror/traits/reflects_type.hpp>">
+<link rel="prev" href="reflects_global_scope.html" title="Class template reflects_global_scope">
+<link rel="next" href="reflects_class.html" title="Class template reflects_class">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="reflects_global_scope.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../mirror/reference.html#header.boost.mirror.traits.reflects_type.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="reflects_class.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boost.mirror.reflects_type"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template reflects_type</span></h2>
+<p>boost::mirror::reflects_type — If <code class="computeroutput">MetaObject</code> is either an instantiation of <code class="computeroutput">meta_type</code>
+				or <code class="computeroutput">meta_class</code>, then <code class="computeroutput">reflects_type</code>
+				inherits from <code class="computeroutput">::boost::true_type</code>. Otherwise it inherits from
+				<code class="computeroutput">::boost::false_type</code>.
+				</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><<span class="bold"><strong>typename</strong></span> MetaObject> 
+<span class="bold"><strong>class</strong></span> <a class="link" href="reflects_type.html" title="Class template reflects_type">reflects_type</a> : <span class="bold"><strong>public</strong></span> <span class="type">false_type-or-true_type</span> {
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id744240"></a><h2>Description</h2>
+<p>This template can be used to distinguish whether the opaque <code class="computeroutput">MetaObject</code> type reflects a type or a class
+				and thus is an instantiation of <code class="computeroutput">meta_type</code>.
+				</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="mirror.reflects_type.reference.samples"></a>Examples</h6></div></div></div>
+<pre class="programlisting">
+BOOST_STATIC_ASSERT((
+	reflects_type< BOOST_MIRRORED_TYPE(::std::string) >::value
+));
+</pre>
+<pre class="programlisting">
+BOOST_STATIC_ASSERT((
+	reflects_type< BOOST_MIRRORED_CLASS(::std::pair<int, ::std::string>) >::value
+));
+</pre>
+<pre class="programlisting">
+BOOST_STATIC_ASSERT((
+	!reflects_type< BOOST_MIRRORED_NAMESPACE(::boost::mirror) >::value
+));
+</pre>
+<pre class="programlisting">
+BOOST_STATIC_ASSERT((
+	!reflects_type< BOOST_MIRRORED_TYPE(::std::string)::scope >::value
+));
+</pre>
+<pre class="programlisting">
+BOOST_MPL_ASSERT((
+	reflects_type< BOOST_MIRRORED_TYPE(::std::string) >
+));
+</pre>
+<pre class="programlisting">
+BOOST_MPL_ASSERT_NOT((
+	reflects_type< BOOST_MIRRORED_NAMESPACE(::boost::mirror) >
+));
+</pre>
+</div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 Matúš Chochlík<p>Use, modification and distribution is subject to the Boost
+			Software License, Version 1.0. (See accompanying file
+			<code class="filename">LICENSE_1_0.txt</code> or copy at http://www.boost.org/LICENSE_1_0.txt)
+			</p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="reflects_global_scope.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../mirror/reference.html#header.boost.mirror.traits.reflects_type.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="reflects_class.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/mirror/doc/html/boost/mirror/reflects_type_meta_type_Type___id536867.html
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/html/boost/mirror/reflects_type_meta_type_Type___id536867.html	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template reflects_type<meta_type<Type>></title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
+<link rel="start" href="../../index.html" title="The Mirror library documentation">
+<link rel="up" href="../../mirror/reference.html#header.boost.mirror.traits.reflects_type.hpp" title="Header <boost/mirror/traits/reflects_type.hpp>">
+<link rel="prev" href="reflects_type.html" title="Class template reflects_type">
+<link rel="next" href="../../char_type_switch.html" title="Chapter 2. Char Type Switch">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="reflects_type.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../mirror/reference.html#header.boost.mirror.traits.reflects_type.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="../../char_type_switch.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boost.mirror.reflects_type<meta_type<Type>>_id536867"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template reflects_type<meta_type<Type>></span></h2>
+<p>boost::mirror::reflects_type<meta_type<Type>></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><<span class="bold"><strong>typename</strong></span> Type> 
+<span class="bold"><strong>class</strong></span> <a class="link" href="reflects_type_meta_type_Type___id536867.html" title="Class template reflects_type<meta_type<Type>>">reflects_type</a><meta_type<Type>> : <span class="bold"><strong>public</strong></span> <span class="type">::boost::true_type</span> {
+};</pre></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 Matúš Chochlík<p>Use, modification and distribution is subject to the Boost
+			Software License, Version 1.0. (See accompanying file
+			<code class="filename">LICENSE_1_0.txt</code> or copy at http://www.boost.org/LICENSE_1_0.txt)
+			</p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="reflects_type.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../mirror/reference.html#header.boost.mirror.traits.reflects_type.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="../../char_type_switch.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/mirror/doc/html/boost/mirror/reflects_virtual_inheritance.html
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/html/boost/mirror/reflects_virtual_inheritance.html	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,54 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template reflects_virtual_inheritance</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
+<link rel="start" href="../../index.html" title="The Mirror library documentation">
+<link rel="up" href="../../mirror/reference.html#header.boost.mirror.traits.reflects_virtual_inheritance.hpp" title="Header <boost/mirror/traits/reflects_virtual_inheritance.hpp>">
+<link rel="prev" href="reflects_inheritance.html" title="Class template reflects_inheritance">
+<link rel="next" href="../../char_type_switch.html" title="Chapter 2. Char Type Switch">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="reflects_inheritance.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../mirror/reference.html#header.boost.mirror.traits.reflects_virtual_inheritance.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="../../char_type_switch.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boost.mirror.reflects_virtual_inheritance"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template reflects_virtual_inheritance</span></h2>
+<p>boost::mirror::reflects_virtual_inheritance — If <code class="computeroutput">MetaInheritance</code> is a specialization of <code class="computeroutput">meta_inheritance</code>
+				reflecting virtual inheritance,
+				then <code class="computeroutput">reflects_virtual_inheritance</code>
+				inherits from <code class="computeroutput">::boost::true_type</code>. Otherwise it inherits from
+				<code class="computeroutput">::boost::false_type</code>.
+				</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><<span class="bold"><strong>typename</strong></span> MetaInheritance> 
+<span class="bold"><strong>class</strong></span> <a class="link" href="reflects_virtual_inheritance.html" title="Class template reflects_virtual_inheritance">reflects_virtual_inheritance</a> : <span class="bold"><strong>public</strong></span> <span class="type">false_type-or-true_type</span> {
+};</pre></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 Matúš Chochlík<p>Use, modification and distribution is subject to the Boost
+			Software License, Version 1.0. (See accompanying file
+			<code class="filename">LICENSE_1_0.txt</code> or copy at http://www.boost.org/LICENSE_1_0.txt)
+			</p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="reflects_inheritance.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../mirror/reference.html#header.boost.mirror.traits.reflects_virtual_inheritance.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="../../char_type_switch.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Modified: sandbox/mirror/doc/html/char_type_switch.html
==============================================================================
--- sandbox/mirror/doc/html/char_type_switch.html	(original)
+++ sandbox/mirror/doc/html/char_type_switch.html	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
 <link rel="start" href="index.html" title="The Mirror library documentation">
 <link rel="up" href="libraries.html" title="Part I. Libraries">
-<link rel="prev" href="boost/mirror/meta_class.html" title="Class template meta_class">
+<link rel="prev" href="boost/mirror/reflects_virtual_inheritance.html" title="Class template reflects_virtual_inheritance">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -19,7 +19,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="boost/mirror/meta_class.html"><img src="../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="p" href="boost/mirror/reflects_virtual_inheritance.html"><img src="../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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>
 </div>
 <div class="chapter" lang="en">
 <div class="titlepage"><div>
@@ -33,7 +33,7 @@
 </div></div>
 <div><p class="copyright">Copyright © 2008 Matúš Chochlík</p></div>
 <div><div class="legalnotice">
-<a name="id696308"></a><p>Use, modification and distribution is subject to the Boost
+<a name="id744723"></a><p>Use, modification and distribution is subject to the Boost
                         Software License, Version 1.0. (See accompanying file
                         <code class="filename">LICENSE_1_0.txt</code> or copy at http://www.boost.org/LICENSE_1_0.txt)
                         </p>
@@ -172,7 +172,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="boost/mirror/meta_class.html"><img src="../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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="p" href="boost/mirror/reflects_virtual_inheritance.html"><img src="../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.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>
 </div>
 </body>
 </html>
Modified: sandbox/mirror/doc/html/doc_HTML.manifest
==============================================================================
--- sandbox/mirror/doc/html/doc_HTML.manifest	(original)
+++ sandbox/mirror/doc/html/doc_HTML.manifest	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -5,6 +5,15 @@
 mirror/tutorial.html
 mirror/reference.html
 boost/mirror/meta_namespace.html
+BOOST_MIRROR_REG_NAMESPACE.html
+BOOST_MIRRORED_NAMESPACE.html
+BOOST_MIRRORED_GLOBAL_SCOPE.html
 boost/mirror/meta_type.html
 boost/mirror/meta_class.html
+boost/mirror/reflects_namespace.html
+boost/mirror/reflects_global_scope.html
+boost/mirror/reflects_type.html
+boost/mirror/reflects_class.html
+boost/mirror/reflects_inheritance.html
+boost/mirror/reflects_virtual_inheritance.html
 char_type_switch.html
Modified: sandbox/mirror/doc/html/index.html
==============================================================================
--- sandbox/mirror/doc/html/index.html	(original)
+++ sandbox/mirror/doc/html/index.html	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -21,7 +21,7 @@
 <div class="book" lang="en">
 <div class="titlepage">
 <div><div><h1 class="title">
-<a name="id592739"></a>The Mirror library documentation</h1></div></div>
+<a name="id637522"></a>The Mirror library documentation</h1></div></div>
 <hr>
 </div>
 <div class="toc">
Modified: sandbox/mirror/doc/html/mirror.html
==============================================================================
--- sandbox/mirror/doc/html/mirror.html	(original)
+++ sandbox/mirror/doc/html/mirror.html	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -34,7 +34,7 @@
 </div></div>
 <div><p class="copyright">Copyright © 2008 Matúš Chochlík</p></div>
 <div><div class="legalnotice">
-<a name="id694223"></a><p>Use, modification and distribution is subject to the Boost
+<a name="id739006"></a><p>Use, modification and distribution is subject to the Boost
                         Software License, Version 1.0. (See accompanying file
                         <code class="filename">LICENSE_1_0.txt</code> or copy at http://www.boost.org/LICENSE_1_0.txt)
                         </p>
@@ -51,9 +51,9 @@
 <dt><span class="section">Tutorial</span></dt>
 <dt><span class="section">Mirror Reference</span></dt>
 <dd><dl>
-<dt><span class="section">Header <boost/mirror/meta_namespace.hpp></span></dt>
-<dt><span class="section">Header <boost/mirror/meta_type.hpp></span></dt>
-<dt><span class="section">Header <boost/mirror/meta_class.hpp></span></dt>
+<dt><span class="section">Meta Objects</span></dt>
+<dt><span class="section">Traits</span></dt>
+<dt><span class="section">Header files</span></dt>
 </dl></dd>
 </dl>
 </div>
@@ -95,7 +95,7 @@
 </p>
 <p>
         <a class="link" href="mirror.html" title="Chapter 1. Mirror">Mirror</a> is designed with the principle of stratification
-	in mind and tries to be as less intrusive as possible. New classes do not need
+	in mind and tries to be as less intrusive as possible. New or existing classes do not need
         to be designed to directly support <a class="link" href="mirror.html" title="Chapter 1. Mirror">Mirror</a>
                and no <a class="link" href="mirror.html" title="Chapter 1. Mirror">Mirror</a> related code is necessary
         in the class' definition, as far as some general guidelines are followed
@@ -154,6 +154,9 @@
 </p>
 <div class="itemizedlist"><ul type="disc">
 <li>
+		Reflection of class' member functions and constructors.
+	</li>
+<li>
                 Facility for generating customizable object factories with a uniform interface.
         </li>
 <li>
Modified: sandbox/mirror/doc/html/mirror/reference.html
==============================================================================
--- sandbox/mirror/doc/html/mirror/reference.html	(original)
+++ sandbox/mirror/doc/html/mirror/reference.html	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -26,15 +26,38 @@
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
 <a name="mirror.reference"></a>Mirror Reference</h2></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section">Header <boost/mirror/meta_namespace.hpp></span></dt>
-<dt><span class="section">Header <boost/mirror/meta_type.hpp></span></dt>
-<dt><span class="section">Header <boost/mirror/meta_class.hpp></span></dt>
+<dt><span class="section">Meta Objects</span></dt>
+<dt><span class="section">Traits</span></dt>
+<dt><span class="section">Header files</span></dt>
 </dl></div>
 <p>
         </p>
+<div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title">
+<a name="id739386"></a>Meta Objects</h3></div></div></div></div>
+<div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title">
+<a name="id739393"></a>Traits</h3></div></div></div></div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="header.boost.mirror.meta_namespace.hpp"></a>Header <boost/mirror/meta_namespace.hpp></h3></div></div></div>
+<a name="id739400"></a>Header files</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Header <boost/mirror/meta_namespace.hpp></span></dt>
+<dt><span class="section">Header <boost/mirror/meta_type.hpp></span></dt>
+<dt><span class="section">Header <boost/mirror/meta_class.hpp></span></dt>
+<dt><span class="section">Header <boost/mirror/traits/reflects_namespace.hpp></span></dt>
+<dt><span class="section">Header <boost/mirror/traits/reflects_global_scope.hpp></span></dt>
+<dt><span class="section">Header <boost/mirror/traits/reflects_type.hpp></span></dt>
+<dt><span class="section">Header <boost/mirror/traits/reflects_class.hpp></span></dt>
+<dt><span class="section">Header <boost/mirror/traits/reflects_inheritance.hpp></span></dt>
+<dt><span class="section">Header <boost/mirror/traits/reflects_virtual_inheritance.hpp></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.mirror.meta_namespace.hpp"></a>Header <boost/mirror/meta_namespace.hpp></h4></div></div></div>
+<pre class="synopsis">
+
+<a class="link" href="../BOOST_MIRROR_REG_NAMESPACE.html" title="Macro BOOST_MIRROR_REG_NAMESPACE">BOOST_MIRROR_REG_NAMESPACE</a>(PP_SEQ)
+<a class="link" href="../BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(FULL_NAMESPACE_NAME)
+<a class="link" href="../BOOST_MIRRORED_GLOBAL_SCOPE.html" title="Macro BOOST_MIRRORED_GLOBAL_SCOPE">BOOST_MIRRORED_GLOBAL_SCOPE</a>()</pre>
 <pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
   <span class="bold"><strong>namespace</strong></span> mirror {
     <span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> NamespacePlaceholder> <span class="bold"><strong>class</strong></span> <a class="link" href="../boost/mirror/meta_namespace.html" title="Class template meta_namespace">meta_namespace</a>;
@@ -42,8 +65,8 @@
 }</pre>
 </div>
 <div class="section" lang="en">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="header.boost.mirror.meta_type.hpp"></a>Header <boost/mirror/meta_type.hpp></h3></div></div></div>
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.mirror.meta_type.hpp"></a>Header <boost/mirror/meta_type.hpp></h4></div></div></div>
 <pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
   <span class="bold"><strong>namespace</strong></span> mirror {
     <span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Type> <span class="bold"><strong>class</strong></span> <a class="link" href="../boost/mirror/meta_type.html" title="Class template meta_type">meta_type</a>;
@@ -51,14 +74,69 @@
 }</pre>
 </div>
 <div class="section" lang="en">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="header.boost.mirror.meta_class.hpp"></a>Header <boost/mirror/meta_class.hpp></h3></div></div></div>
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.mirror.meta_class.hpp"></a>Header <boost/mirror/meta_class.hpp></h4></div></div></div>
 <pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
   <span class="bold"><strong>namespace</strong></span> mirror {
     <span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Class> <span class="bold"><strong>class</strong></span> <a class="link" href="../boost/mirror/meta_class.html" title="Class template meta_class">meta_class</a>;
   }
 }</pre>
 </div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.mirror.traits.reflects_namespace.hpp"></a>Header <boost/mirror/traits/reflects_namespace.hpp></h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> mirror {
+    <span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> MetaObject> <span class="bold"><strong>class</strong></span> <a class="link" href="../boost/mirror/reflects_namespace.html" title="Class template reflects_namespace">reflects_namespace</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.mirror.traits.reflects_global_scope.hpp"></a>Header <boost/mirror/traits/reflects_global_scope.hpp></h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> mirror {
+    <span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> MetaObject> <span class="bold"><strong>class</strong></span> <a class="link" href="../boost/mirror/reflects_global_scope.html" title="Class template reflects_global_scope">reflects_global_scope</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.mirror.traits.reflects_type.hpp"></a>Header <boost/mirror/traits/reflects_type.hpp></h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> mirror {
+    <span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> MetaObject> <span class="bold"><strong>class</strong></span> <a class="link" href="../boost/mirror/reflects_type.html" title="Class template reflects_type">reflects_type</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.mirror.traits.reflects_class.hpp"></a>Header <boost/mirror/traits/reflects_class.hpp></h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> mirror {
+    <span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> MetaObject> <span class="bold"><strong>class</strong></span> <a class="link" href="../boost/mirror/reflects_class.html" title="Class template reflects_class">reflects_class</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.mirror.traits.reflects_inheritance.hpp"></a>Header <boost/mirror/traits/reflects_inheritance.hpp></h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> mirror {
+    <span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> MetaObject> <span class="bold"><strong>class</strong></span> <a class="link" href="../boost/mirror/reflects_inheritance.html" title="Class template reflects_inheritance">reflects_inheritance</a>;
+  }
+}</pre>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.mirror.traits.reflects_virtual_inheritance.hpp"></a>Header <boost/mirror/traits/reflects_virtual_inheritance.hpp></h4></div></div></div>
+<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
+  <span class="bold"><strong>namespace</strong></span> mirror {
+    <span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> MetaInheritance> <span class="bold"><strong>class</strong></span> <a class="link" href="../boost/mirror/reflects_virtual_inheritance.html" title="Class template reflects_virtual_inheritance">reflects_virtual_inheritance</a>;
+  }
+}</pre>
+</div>
+</div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
Modified: sandbox/mirror/libs/mirror/doc/introduction.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/introduction.xml	(original)
+++ sandbox/mirror/libs/mirror/doc/introduction.xml	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -29,7 +29,7 @@
 </para>
 <para>
         <libraryname>Mirror</libraryname> is designed with the principle of stratification
-	in mind and tries to be as less intrusive as possible. New classes do not need
+	in mind and tries to be as less intrusive as possible. New or existing classes do not need
         to be designed to directly support <libraryname>Mirror</libraryname>
                and no <libraryname>Mirror</libraryname> related code is necessary
         in the class' definition, as far as some general guidelines are followed
@@ -92,6 +92,9 @@
 
 <itemizedlist>
         <listitem>
+		Reflection of class' member functions and constructors.
+	</listitem>
+	<listitem>
                 Facility for generating customizable object factories with a uniform interface.
         </listitem>
         <listitem>
Modified: sandbox/mirror/libs/mirror/doc/reference.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/reference.xml	(original)
+++ sandbox/mirror/libs/mirror/doc/reference.xml	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -6,8 +6,25 @@
 
         <para>
         </para>
-	<xi:include href="reference/meta_namespace.xml"/>
-	<xi:include href="reference/meta_type.xml"/>
-	<xi:include href="reference/meta_class.xml"/>
+	<section>
+		<title>Meta Objects</title>
+	</section>
+	<section>
+		<title>Traits</title>
+	</section>
+	<section>
+		<title>Header files</title>
+		<xi:include href="reference/meta_namespace.xml"/>
+		<xi:include href="reference/meta_type.xml"/>
+		<xi:include href="reference/meta_class.xml"/>
+	
+		<xi:include href="reference/traits/reflects_namespace.xml"/>
+		<xi:include href="reference/traits/reflects_global_scope.xml"/>
+		<xi:include href="reference/traits/reflects_type.xml"/>
+		<xi:include href="reference/traits/reflects_class.xml"/>
+
+		<xi:include href="reference/traits/reflects_inheritance.xml"/>
+		<xi:include href="reference/traits/reflects_virtual_inheritance.xml"/>
+	</section>
 
 </library-reference>
Added: sandbox/mirror/libs/mirror/doc/reference/class_meta_namespace.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/libs/mirror/doc/reference/class_meta_namespace.xml	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE section PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+	"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
+<class name="meta_namespace">
+	<template>
+		<template-type-parameter name="NamespacePlaceholder"/>
+	</template>
+	<purpose>
+		<para>
+		This class template provides meta-data
+		about the reflected namespace, especially allows to get the 
+		base and full namespace name and to 
+		get information about the scope inside of which this namespace
+		has been defined.
+		</para>
+		<para>
+		To obtain a <code><classname>meta_namespace</classname></code> for a particular
+		namespace (with the exception of the global scope) use the reflection
+		macro <code><macroname>BOOST_MIRRORED_NAMESPACE</macroname>(FULL_NAMESPACE_NAME)</code>. To
+		get the <code><classname>meta_namespace</classname></code> specialization for
+		the global scope use the <code><macroname>BOOST_MIRRORED_GLOBAL_SCOPE</macroname>()</code>
+		macro.
+		</para>
+	</purpose>
+	<description>
+		<para>The specializations of <code><classname>meta_type</classname></code> can 
+		be used to get meta-information about the reflected types, some at compile-time and some at run-time.
+		The following examples show type reflection and basic 
+		<code><classname>meta_type</classname></code> usage. Mirror works with the native C++ types
+		and some of the very common types like <code>::std::string</code>, etc. out of the box.
+		Meta-types for many other types from the standard library and <libraryname>Boost</libraryname>
+		are also provided and can be <code>#include</code>d when necessary.
+		</para>
+		<section id="mirror.meta_namespace.reference.samples">
+		<section id="mirror.meta_namespace.reference.sample01">
+			<title>Example - Basic usage</title>
+			<para>This sample code shows how to reflect a namespace and how to get its 
+			base and full name. 
+			</para>
+			<xi:include href="../samples/usage_meta_namespace_01.xml"/>
+		</section>
+		<section id="mirror.meta_namespace.reference.sample02">
+			<title>Example - Scope and ancestors</title>
+			<para>The following example shows what can be done with the 
+			<code><classname>meta_namespace</classname></code>s <code>scope</code> and
+			<code>ancestors</code> <code>typedef</code>s. It also shows the usage
+			of the <code><classname>reflects_global_scope</classname></code> trait
+			template.
+			</para>
+			<xi:include href="../samples/usage_meta_namespace_02.xml"/>
+		</section>
+		<section id="mirror.meta_namespace.reference.sample03">
+			<title>Example - Generic namespace name getter</title>
+			<para>The <code><methodname>base_name</methodname></code> and the 
+			<code><methodname>full_name</methodname></code> methods
+			are convenient but not very generic. The <code><methodname>get_name</methodname></code> 
+			member function allows to specify the character type of the returned string and 
+			to specify wheter a full or just the base namespace name should be returned, based
+			on compile time arguments.
+			</para>
+			<para>The first argument must be either <code>mpl::true_</code> for full type name
+			or <code>mpl::false_</code> for base type name and the second argument must be
+			an instance of the <code>::std::char_traits</code> template with <code>char</code>
+			for <code>::std::string</code> return value type or <code>wchar_t</code> for
+			<code>::std::wstring</code> return value type.
+			</para>
+			<xi:include href="../samples/usage_meta_namespace_03.xml"/>
+		</section>
+		</section>
+	</description>
+
+	<access name="public">
+	<typedef name="scope">
+		<type><emphasis>unspecified</emphasis></type>
+		<purpose>Meta-namespace describing the scope where the reflected namespace is defined</purpose>
+		<description>
+			<para>A meta-object describing the scope in which the reflected namespace
+			is defined. It is a specialization of <code><classname>meta_namespace</classname></code>
+			with the exception of the meta-namespace reflecting the global scope where
+			this type is not defined.
+			</para>
+			<para>To find out whether a meta-namespace reflects the global scope
+			use the <code><classname>reflects_global_scope</classname></code> template meta-function.
+			</para>
+		</description>
+	</typedef>
+	<typedef name="ancestors">
+		<type><emphasis>unspecified</emphasis></type>
+		<purpose>mpl::vector containing the whole path to the reflected namespace</purpose>
+		<description>
+			<para>An <code>mpl::vector</code> containing the <code><classname>meta_namespace</classname></code>
+			specializations for all the namespaces in which the reflected namespace is
+			directly or indirectly nested (not-containing the <code><classname>meta_namespace</classname></code>
+			for the reflected namespace). The elements of this <code>mpl::vector</code> are
+			ordered from the <code><classname>meta_namespace</classname></code> reflecting
+			the global scope to the <code><classname>meta_namespace</classname></code>
+			reflecting the parent namespace. The following holds 
+			for <code><classname>meta_namespace</classname></code>s
+			reflecting any namespace with the exception of the global scope:
+			</para>
+			<xi:include href="../samples/meta_namespace_ancestors_01.xml"/>
+			<para>For the <code><classname>meta_namespace</classname></code>
+			reflecting the global scope the following holds true.
+			</para>
+			<xi:include href="../samples/meta_namespace_ancestors_02.xml"/>
+			<para>To find out whether a meta-namespace reflects the global scope
+			use the <code><classname>reflects_global_scope</classname></code> template meta-function.
+			</para>
+		</description>
+	</typedef>
+	<method name="base_name">
+		<type>const <classname>cts::bstring</classname>&</type>
+		<purpose>
+			<para>This static member function returns the base name of the 
+			namespace reflected by a <code><classname>meta_namespace</classname></code>.
+			For example the base namespace name "returned" by the invocation of 
+			<programlisting><macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::boost::mirror) :: base_name()
+			</programlisting>
+			is <code>"mirror"</code>. When a full namespace name 
+			<emphasis role="bold">with</emphasis> the nested name specifier
+			is needed use the <methodname>full_name</methodname> member function
+			instead.</para>
+		</purpose>
+	</method>
+	<method name="full_name">
+		<type>const <classname>cts::bstring</classname>&</type>
+		<purpose>
+			<para>This static member function returns the full name of the 
+			namespace reflected by a <code><classname>meta_namespace</classname></code>
+			with the nested name specifier. For example:
+			<programlisting><classname>BOOST_MIRRORED_NAMESPACE</classname>(::boost::mirror) :: full_name()
+			</programlisting>
+			returns <code>"::boost::mirror"</code>. When the base namespace name 
+			<emphasis role="bold">without</emphasis> the nested name specifier
+			is needed use the <methodname>base_name</methodname> member function
+			instead.</para>
+		</purpose>
+		<notes>
+			<para>The first call to this function can be expensive 
+			for deeply nested namespaces, because the name needs to be properly composed from 
+			the base namespace names, which may 
+			lead to multiple string concatenations. Subsequent calls to this member function
+			for a concrete specialization of <classname>meta_namespace</classname>
+			are usually much faster.
+			</para>
+		</notes>
+	</method>
+	<method name="get_name">
+		<template>
+			<template-nontype-parameter name="FullName">
+				<type>bool</type>
+			</template-nontype-parameter>
+			<template-type-parameter name="CharT"/>
+		</template>
+		<type>const <classname>::std::basic_string<CharT></classname>&</type>
+		<parameter name="full">
+			<paramtype>::boost::mpl::bool_<FullName></paramtype>
+		</parameter>
+		<parameter name="cht">
+			<paramtype>::std::char_traits<CharT></paramtype>
+		</parameter>
+		<purpose>
+			<para>This static member template function returns either the base name 
+			<emphasis role="bold">without</emphasis> the nested name specifier 
+			or the full name <emphasis role="bold">with</emphasis> the 
+			nested name specifier of the namespace reflected by this
+			<code><classname>meta_namespace</classname></code>,
+			depending on the value of the template argument <code>FullName</code>.
+			Furthermore it allows to choose whether the return value type is 
+			<code>::std::string</code> or <code>::std::wstring</code> based
+			on the type of the second argument.
+			For example:
+			<programlisting><classname>BOOST_MIRRORED_NAMESPACE</classname>(::boost::mirror) :: get_name(::boost::mpl::false_(), ::std::char_traits<char>())
+			</programlisting> is equivalent to calling the 
+			<code><methodname>base_name</methodname></code> member function with the 
+			<code><macroname>BOOST_CTS_USE_WIDE_CHARS</macroname></code> symbol undefined, 
+			which returns a <code>::std::string</code> holding the string <code>"mirror"</code> and calling
+			<programlisting><classname>BOOST_MIRRORED_NAMESPACE</classname>(::boost::mirror) :: get_name(::boost::mpl::true_(), ::std::char_traits<wchar_t>())
+			</programlisting> is equivalent to calling the 
+			<code><methodname>full_name</methodname></code> method with the 
+			<code><macroname>BOOST_CTS_USE_WIDE_CHARS</macroname></code> symbol defined, 
+			which returns a <code>::std::wstring</code> holding this string <code>L"::boost::mirror"</code>.
+			</para>
+		</purpose>
+	</method>
+	</access>
+</class>
+
Added: sandbox/mirror/libs/mirror/doc/reference/macro_REG_NAMESPACE.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/libs/mirror/doc/reference/macro_REG_NAMESPACE.xml	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE section PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+	"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
+<macro name="BOOST_MIRROR_REG_NAMESPACE" kind="functionlike">
+	<macro-parameter name="PP_SEQ">
+	</macro-parameter>
+	<purpose>
+		<para>This macro is used to register a namespace with <libraryname>Mirror</libraryname>.
+		After successful registration the namespace can be reflected and can be used 
+		as a scope when registering types, classes, etc.
+		</para>
+	</purpose>
+	<description>
+		<para>The <code><macroname>BOOST_MIRROR_REG_NAMESPACE</macroname></code> macro registers a namespace with 
+		the <libraryname>Mirror</libraryname> library. 
+		<note>The registering must be done in the <code>::boost::mirror</code> namespace.</note>
+		The only argument of this macro is a <libraryname>Preprocessor</libraryname> sequence, containing
+		the names of the namespaces from the topmost to the one being registered. For example to register
+		these namespaces,
+<programlisting>
+namespace ns_1 {
+  namespace ns_2 {
+    namespace ns_3 {
+      //...
+                namespace ns_N {
+                } // namespace ns_N
+      // ...
+    } // namespace ns_3
+  } // namespace ns_2
+} // namespace ns_1
+</programlisting>
+		use 
+<programlisting>
+// note that the registering must be done
+// in the boost::mirror namespace
+
+namespace boost {
+namespace mirror {
+
+// registers ::ns_1
+<macroname>BOOST_MIRROR_REG_NAMESPACE</macroname>((ns_1))
+// registers ::ns_1::ns_2
+<macroname>BOOST_MIRROR_REG_NAMESPACE</macroname>((ns_1)(ns_2))
+// registers ::ns_1::ns_2::ns_3
+<macroname>BOOST_MIRROR_REG_NAMESPACE</macroname>((ns_1)(ns_2)(ns_3))
+// registers ::ns_1::ns_2::ns_3::...::ns_N
+<macroname>BOOST_MIRROR_REG_NAMESPACE</macroname>((ns_1)(ns_2)(ns_3)...(ns_N))
+
+} //namespace mirror
+} //namespace boost
+</programlisting>
+	and afterwards the namespaces can be reflected with the 
+	<code><macroname>BOOST_MIRRORED_NAMESPACE</macroname></code> macro
+<programlisting>
+BOOST_MPL_ASSERT((
+	<classname>reflects_namespace</classname>< <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::ns_1) >
+));
+BOOST_MPL_ASSERT((
+	<classname>reflects_namespace</classname>< <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::ns_1::ns_2::ns_3) >
+));
+BOOST_MPL_ASSERT_NOT((
+	<classname>reflects_global_scope</classname>< <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::ns_1) >
+));
+BOOST_MPL_ASSERT_NOT((
+	<classname>reflects_global_scope</classname>< <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::ns_1::ns_2::ns_3) >
+));
+BOOST_MPL_ASSERT((
+	<classname>reflects_global_scope</classname>< <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::ns_1::ns_2)::scope::scope >
+));
+</programlisting>
+		and referenced in other registering macros. The <libraryname>Mirror</libraryname> has several namespaces preregistered: 
+<programlisting>
+namespace boost {
+namespace mirror {
+
+<macroname>BOOST_MIRROR_REG_NAMESPACE</macroname>((std))
+<macroname>BOOST_MIRROR_REG_NAMESPACE</macroname>((boost))
+<macroname>BOOST_MIRROR_REG_NAMESPACE</macroname>((boost)(mirror))
+
+} //namespace mirror
+} //namespace boost
+</programlisting>
+		</para>
+
+		<section id="mirror.REG_NAMESPACE.reference.samples">
+			<title>Examples</title>
+			<para>This example shows the registering and reflection of namespaces
+			and basic usage of the <code><classname>meta_namespace</classname></code>
+			template class and its members.
+			</para>
+			<xi:include href="../samples/usage_namespaces_01.xml"/>
+		</section>
+
+	</description>
+</macro>
Added: sandbox/mirror/libs/mirror/doc/reference/macro_RFL_GLOBAL_SCOPE.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/libs/mirror/doc/reference/macro_RFL_GLOBAL_SCOPE.xml	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE section PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+	"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
+<macro name="BOOST_MIRRORED_GLOBAL_SCOPE" kind="functionlike">
+	<purpose>
+		<para>This macro is used to reflect the global scope and expands into a specialization
+		of the <code><classname>meta_namespace</classname></code> template, which provides
+		meta-data about the global scope. 
+		To reflect a registered named namespace use the <code><macroname>BOOST_MIRRORED_NAMESPACE</macroname></code>.
+		</para>
+	</purpose>
+	<description>
+		<para>The <code><macroname>BOOST_MIRRORED_GLOBAL_SCOPE</macroname>()</code> macro can be used to get
+		the meta-data about the global scope, which is registered with the <libraryname>Mirror</libraryname> library by default.
+		</para>
+	<section id="mirror.RFL_GLOBAL_SCOPE.reference.samples">
+		<title>Examples</title>
+<programlisting>
+BOOST_STATIC_ASSERT((
+	reflects_global_scope< <macroname>BOOST_MIRRORED_GLOBAL_SCOPE</macroname>() >::value
+));
+</programlisting>
+<programlisting>
+BOOST_MPL_ASSERT((
+	reflects_global_scope< <macroname>BOOST_MIRRORED_GLOBAL_SCOPE</macroname>() >
+));
+</programlisting>
+<programlisting>
+BOOST_MPL_ASSERT((
+	::boost::is_same<
+		<macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::std)::scope,
+		<macroname>BOOST_MIRRORED_GLOBAL_SCOPE</macroname>() 
+	>
+));
+</programlisting>
+<programlisting>
+BOOST_MPL_ASSERT((
+	::boost::is_same<
+		<macroname>BOOST_MIRRORED_TYPE</macroname>(int)::scope,
+		<macroname>BOOST_MIRRORED_GLOBAL_SCOPE</macroname>() 
+	>
+));
+</programlisting>
+<programlisting>
+BOOST_MPL_ASSERT((
+	::boost::is_same<
+		<macroname>BOOST_MIRRORED_TYPE</macroname>(::std::wstring)::scope::scope,
+		<macroname>BOOST_MIRRORED_GLOBAL_SCOPE</macroname>() 
+	>
+));
+</programlisting>
+
+	</section>
+	</description>
+</macro>
Added: sandbox/mirror/libs/mirror/doc/reference/macro_RFL_NAMESPACE.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/libs/mirror/doc/reference/macro_RFL_NAMESPACE.xml	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE section PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+	"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
+<macro name="BOOST_MIRRORED_NAMESPACE" kind="functionlike">
+	<macro-parameter name="FULL_NAMESPACE_NAME"/>
+	<purpose>
+		<para>This macro is used to reflect a namespace and expands into a specialization
+		of the <code><classname>meta_namespace</classname></code> template, which provides
+		meta-data about the namespace. To reflect the global scope use the 
+		<code><macroname>BOOST_MIRRORED_GLOBAL_SCOPE</macroname></code> macro.
+		</para>
+	</purpose>
+	<description>
+		<para>The <code><macroname>BOOST_MIRRORED_NAMESPACE</macroname></code> macro reflects a namespace 
+		previously registered with the <libraryname>Mirror</libraryname> library by the means of 
+		the <code><macroname>BOOST_MIRROR_REG_NAMESPACE</macroname></code>. 
+		The only argument of this macro is the full namespace name including the leading double colon,
+		so this is ok
+		<programlisting><code>BOOST_MIRRORED_NAMESPACE(::boost::mirror) /* OK */</code></programlisting>
+		but, neither this
+		<programlisting><code>BOOST_MIRRORED_NAMESPACE(boost::mirror) /* Error */</code></programlisting>
+		nor this
+		<programlisting><code>BOOST_MIRRORED_NAMESPACE(mirror) /* Error */</code></programlisting>
+		will work.
+		</para>
+		<section id="mirror.RFL_NAMESPACE.reference.samples">
+			<title>Examples</title>
+			<para>This example shows the registering and reflection of namespaces
+			and basic usage of the <code><classname>meta_namespace</classname></code>
+			template class and its members.
+			</para>
+			<xi:include href="../samples/usage_namespaces_01.xml"/>
+		</section>
+	</description>
+</macro>
Modified: sandbox/mirror/libs/mirror/doc/reference/meta_namespace.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/reference/meta_namespace.xml	(original)
+++ sandbox/mirror/libs/mirror/doc/reference/meta_namespace.xml	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -4,190 +4,15 @@
 <header name="boost/mirror/meta_namespace.hpp">
         <namespace name="boost">
         <namespace name="mirror">
-		<class name="meta_namespace">
-			<template>
-				<template-type-parameter name="NamespacePlaceholder"/>
-			</template>
-			<purpose>
-				<para>
-				This class template provides meta-data
-				about the reflected namespace, especially allows to get the 
-				base and full namespace name and to 
-				get information about the scope inside of which this namespace
-				has been defined.
-				</para>
-				<para>
-				To obtain a <code><classname>meta_namespace</classname></code> for a particular
-				namespace (with the exception of the global scope) use the reflection
-				macro <code><macroname>BOOST_MIRRORED_NAMESPACE</macroname>(FULL_NAMESPACE_NAME)</code>. To
-				get the <code><classname>meta_namespace</classname></code> specialization for
-				the global scope use the <code><macroname>BOOST_MIRRORED_GLOBAL_SCOPE</macroname>()</code>
-				macro.
-				</para>
-			</purpose>
-			<description>
-				<para>The specializations of <code><classname>meta_type</classname></code> can 
-				be used to get meta-information about the reflected types, some at compile-time and some at run-time.
-				The following examples show type reflection and basic 
-				<code><classname>meta_type</classname></code> usage. Mirror works with the native C++ types
-				and some of the very common types like <code>::std::string</code>, etc. out of the box.
-				Meta-types for many other types from the standard library and <libraryname>Boost</libraryname>
-			       	are also provided and can be <code>#include</code>d when necessary.
-				</para>
-				<section id="mirror.meta_namespace.reference.samples">
-				<section id="mirror.meta_namespace.reference.sample01">
-					<title>Example - Basic usage</title>
-					<para>This sample code shows how to reflect a namespace and how to get its 
-					base and full name. 
-					</para>
-					<xi:include href="../samples/usage_meta_namespace_01.xml"/>
-				</section>
-				<section id="mirror.meta_namespace.reference.sample02">
-					<title>Example - Scope and ancestors</title>
-					<para>The following example shows what can be done with the 
-					<code><classname>meta_namespace</classname></code>s <code>scope</code> and
-					<code>ancestors</code> <code>typedef</code>s. It also shows the usage
-					of the <code><classname>reflects_global_scope</classname></code> trait
-					template.
-					</para>
-					<xi:include href="../samples/usage_meta_namespace_02.xml"/>
-				</section>
-				<section id="mirror.meta_namespace.reference.sample03">
-					<title>Example - Generic namespace name getter</title>
-					<para>The <code><methodname>base_name</methodname></code> and the 
-					<code><methodname>full_name</methodname></code> methods
-					are convenient but not very generic. The <code><methodname>get_name</methodname></code> 
-					member function allows to specify the character type of the returned string and 
-					to specify wheter a full or just the base namespace name should be returned, based
-					on compile time arguments.
-					</para>
-					<para>The first argument must be either <code>mpl::true_</code> for full type name
-					or <code>mpl::false_</code> for base type name and the second argument must be
-					an instance of the <code>::std::char_traits</code> template with <code>char</code>
-					for <code>::std::string</code> return value type or <code>wchar_t</code> for
-					<code>::std::wstring</code> return value type.
-					</para>
-					<xi:include href="../samples/usage_meta_namespace_03.xml"/>
-				</section>
-				</section>
-			</description>
+	
+		<xi:include href="class_meta_namespace.xml"/>
 
-			<access name="public">
-			<typedef name="scope">
-				<type><emphasis>unspecified</emphasis></type>
-				<purpose>Meta-namespace describing the scope where the reflected namespace is defined</purpose>
-				<description>
-					<para>A meta-object describing the scope in which the reflected namespace
-					is defined. It is a specialization of <code><classname>meta_namespace</classname></code>
-					with the exception of the meta-namespace reflecting the global scope where
-					this type is not defined.
-					</para>
-					<para>To find out whether a meta-namespace reflects the global scope
-					use the <code><classname>reflects_global_scope</classname></code> template meta-function.
-					</para>
-				</description>
-			</typedef>
-			<typedef name="ancestors">
-				<type><emphasis>unspecified</emphasis></type>
-				<purpose>mpl::vector containing the whole path to the reflected namespace</purpose>
-				<description>
-					<para>An <code>mpl::vector</code> containing the <code><classname>meta_namespace</classname></code>
-					specializations for all the namespaces in which the reflected namespace is
-					directly or indirectly nested (not-containing the <code><classname>meta_namespace</classname></code>
-					for the reflected namespace). The elements of this <code>mpl::vector</code> are
-					ordered from the <code><classname>meta_namespace</classname></code> reflecting
-					the global scope to the <code><classname>meta_namespace</classname></code>
-					reflecting the parent namespace. The following holds 
-					for <code><classname>meta_namespace</classname></code>s
-					reflecting any namespace with the exception of the global scope:
-					</para>
-					<xi:include href="../samples/meta_namespace_ancestors_01.xml"/>
-					<para>For the <code><classname>meta_namespace</classname></code>
-					reflecting the global scope the following holds true.
-					</para>
-					<xi:include href="../samples/meta_namespace_ancestors_02.xml"/>
-					<para>To find out whether a meta-namespace reflects the global scope
-					use the <code><classname>reflects_global_scope</classname></code> template meta-function.
-					</para>
-				</description>
-			</typedef>
-			<method name="base_name">
-				<type>const <classname>cts::bstring</classname>&</type>
-				<purpose>
-					<para>This static member function returns the base name of the 
-					namespace reflected by a <code><classname>meta_namespace</classname></code>.
-					For example the base namespace name "returned" by the invocation of 
-					<programlisting><macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::boost::mirror) :: base_name()
-					</programlisting>
-					is <code>"mirror"</code>. When a full namespace name 
-					<emphasis role="bold">with</emphasis> the nested name specifier
-					is needed use the <methodname>full_name</methodname> member function
-			       		instead.</para>
-				</purpose>
-			</method>
-			<method name="full_name">
-				<type>const <classname>cts::bstring</classname>&</type>
-				<purpose>
-					<para>This static member function returns the full name of the 
-					namespace reflected by a <code><classname>meta_namespace</classname></code>
-					with the nested name specifier. For example:
-					<programlisting><classname>BOOST_MIRRORED_NAMESPACE</classname>(::boost::mirror) :: full_name()
-					</programlisting>
-					returns <code>"::boost::mirror"</code>. When the base namespace name 
-					<emphasis role="bold">without</emphasis> the nested name specifier
-					is needed use the <methodname>base_name</methodname> member function
-			       		instead.</para>
-				</purpose>
-				<notes>
-					<para>The first call to this function can be expensive 
-					for deeply nested namespaces, because the name needs to be properly composed from 
-					the base namespace names, which may 
-					lead to multiple string concatenations. Subsequent calls to this member function
-					for a concrete specialization of <classname>meta_namespace</classname>
-					are usually much faster.
-					</para>
-				</notes>
-			</method>
-			<method name="get_name">
-				<template>
-					<template-nontype-parameter name="FullName">
-						<type>bool</type>
-					</template-nontype-parameter>
-					<template-type-parameter name="CharT"/>
-				</template>
-				<type>const <classname>::std::basic_string<CharT></classname>&</type>
-				<parameter name="full">
-					<paramtype>::boost::mpl::bool_<FullName></paramtype>
-				</parameter>
-				<parameter name="cht">
-					<paramtype>::std::char_traits<CharT></paramtype>
-				</parameter>
-				<purpose>
-					<para>This static member template function returns either the base name 
-					<emphasis role="bold">without</emphasis> the nested name specifier 
-					or the full name <emphasis role="bold">with</emphasis> the 
-					nested name specifier of the namespace reflected by this
-					<code><classname>meta_namespace</classname></code>,
-					depending on the value of the template argument <code>FullName</code>.
-					Furthermore it allows to choose whether the return value type is 
-					<code>::std::string</code> or <code>::std::wstring</code> based
-					on the type of the second argument.
-					For example:
-					<programlisting><classname>BOOST_MIRRORED_NAMESPACE</classname>(::boost::mirror) :: get_name(::boost::mpl::false_(), ::std::char_traits<char>())
-					</programlisting> is equivalent to calling the 
-					<code><methodname>base_name</methodname></code> member function with the 
-					<code><macroname>BOOST_CTS_USE_WIDE_CHARS</macroname></code> symbol undefined, 
-					which returns a <code>::std::string</code> holding the string <code>"mirror"</code> and calling
-					<programlisting><classname>BOOST_MIRRORED_NAMESPACE</classname>(::boost::mirror) :: get_name(::boost::mpl::true_(), ::std::char_traits<wchar_t>())
-					</programlisting> is equivalent to calling the 
-					<code><methodname>full_name</methodname></code> method with the 
-					<code><macroname>BOOST_CTS_USE_WIDE_CHARS</macroname></code> symbol defined, 
-					which returns a <code>::std::wstring</code> holding this string <code>L"::boost::mirror"</code>.
-					</para>
-				</purpose>
-			</method>
-			</access>
-		</class>
         </namespace><!-- mirror -->
         </namespace><!-- boost -->
+
+	<!-- macros -->
+	<xi:include href="macro_REG_NAMESPACE.xml"/>
+	<xi:include href="macro_RFL_NAMESPACE.xml"/>
+	<xi:include href="macro_RFL_GLOBAL_SCOPE.xml"/>
+
 </header>
Added: sandbox/mirror/libs/mirror/doc/reference/traits/reflects_class.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/libs/mirror/doc/reference/traits/reflects_class.xml	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE section PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+	"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
+<header name="boost/mirror/traits/reflects_class.hpp">
+	<namespace name="boost">
+	<namespace name="mirror">
+		<class name="reflects_class">
+			<template>
+				<template-type-parameter name="MetaObject"/>
+			</template>
+			<purpose>
+				<para>If <code>MetaObject</code> is an instantiation of 
+				<code><classname>meta_class</classname></code>, then <code><classname>reflects_class</classname></code>
+				inherits from <code><classname>::boost::true_type</classname></code>. Otherwise it inherits from
+				<code><classname>::boost::false_type</classname></code>.
+				</para>
+			</purpose>
+			<inherit access="public">
+				<type><classname>false_type</classname>-or-<classname>true_type</classname></type>
+			</inherit>
+			<description>
+				<para>This template can be used to distinguish whether the opaque <code>MetaObject</code> type reflects a class
+				and thus is an instantiation of <code><classname>meta_class</classname></code>.
+				</para>
+				<section id="mirror.reflects_class.reference.samples">
+					<title>Examples</title>
+<programlisting>
+BOOST_MPL_ASSERT_NOT((
+	reflects_class< BOOST_MIRRORED_TYPE(::std::string) >
+));
+</programlisting>
+<programlisting>
+BOOST_MPL_ASSERT((
+	reflects_class< BOOST_MIRRORED_CLASS(::std::string) >
+));
+</programlisting>
+<programlisting>
+BOOST_MPL_ASSERT_NOT((
+	reflects_class< BOOST_MIRRORED_CLASS(::std::string)::scope >
+));
+</programlisting>
+				</section>
+			</description>
+		</class>
+	</namespace><!-- mirror -->
+	</namespace><!-- boost -->
+</header>
Added: sandbox/mirror/libs/mirror/doc/reference/traits/reflects_global_scope.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/libs/mirror/doc/reference/traits/reflects_global_scope.xml	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE section PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+	"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
+<header name="boost/mirror/traits/reflects_global_scope.hpp">
+	<namespace name="boost">
+	<namespace name="mirror">
+		<class name="reflects_global_scope">
+			<template>
+				<template-type-parameter name="MetaObject"/>
+			</template>
+			<purpose>
+				<para>If <code>MetaObject</code> is the specialization of <code><classname>meta_namespace</classname></code>,
+				reflecting the global scope,
+				then <code><classname>reflects_global_scope</classname></code>
+				inherits from <code><classname>::boost::true_type</classname></code>. Otherwise it inherits from
+				<code><classname>::boost::false_type</classname></code>.
+				</para>
+			</purpose>
+			<inherit access="public">
+				<type><classname>false_type</classname>-or-<classname>true_type</classname></type>
+			</inherit>
+			<description>
+				<para>This template can be used to distinguish whether the opaque <code>MetaObject</code> type reflects the global scope
+				and thus is an instantiation of <code><classname>meta_namespace</classname></code> for the global scope.
+				</para>
+				<section id="mirror.reflects_global_scope.reference.samples">
+					<title>Examples</title>
+<programlisting>
+BOOST_STATIC_ASSERT((
+	reflects_global_scope< BOOST_MIRRORED_GLOBAL_SCOPE() >::value
+));
+</programlisting>
+<programlisting>
+BOOST_STATIC_ASSERT((
+	!reflects_global_scope< BOOST_MIRRORED_NAMESPACE(::boost::mirror) >::value
+));
+</programlisting>
+<programlisting>
+BOOST_STATIC_ASSERT((
+	!reflects_global_scope< BOOST_MIRRORED_TYPE(::std::string) >::value
+));
+</programlisting>
+<programlisting>
+BOOST_MPL_ASSERT((
+	reflects_global_scope< BOOST_MIRRORED_TYPE(int)::scope >
+));
+</programlisting>
+<programlisting>
+BOOST_MPL_ASSERT((
+	reflects_global_scope< BOOST_MIRRORED_TYPE(::std::string)::scope::scope >
+));
+</programlisting>
+<programlisting>
+BOOST_MPL_ASSERT_NOT((
+	reflects_global_scope< BOOST_MIRRORED_TYPE(::std::string)::scope >
+));
+</programlisting>
+				</section>
+			</description>
+		</class>
+	</namespace><!-- mirror -->
+	</namespace><!-- boost -->
+</header>
Added: sandbox/mirror/libs/mirror/doc/reference/traits/reflects_inheritance.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/libs/mirror/doc/reference/traits/reflects_inheritance.xml	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE section PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+	"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
+<header name="boost/mirror/traits/reflects_inheritance.hpp">
+	<namespace name="boost">
+	<namespace name="mirror">
+		<class name="reflects_inheritance">
+			<template>
+				<template-type-parameter name="MetaObject"/>
+			</template>
+			<purpose>
+				<para>If <code>MetaObject</code> is an instantiation of <code><classname>meta_inheritance</classname></code>,
+				then <code><classname>reflects_inheritance</classname></code>
+				inherits from <code><classname>::boost::true_type</classname></code>. Otherwise it inherits from
+				<code><classname>::boost::false_type</classname></code>.
+				</para>
+			</purpose>
+			<inherit access="public">
+				<type><classname>false_type</classname>-or-<classname>true_type</classname></type>
+			</inherit>
+		</class>
+	</namespace><!-- mirror -->
+	</namespace><!-- boost -->
+</header>
Added: sandbox/mirror/libs/mirror/doc/reference/traits/reflects_namespace.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/libs/mirror/doc/reference/traits/reflects_namespace.xml	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE section PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+	"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
+<header name="boost/mirror/traits/reflects_namespace.hpp">
+	<namespace name="boost">
+	<namespace name="mirror">
+		<class name="reflects_namespace">
+			<template>
+				<template-type-parameter name="MetaObject"/>
+			</template>
+			<purpose>
+				<para>If <code>MetaObject</code> is an instantiation of <code><classname>meta_namespace</classname></code>,
+				then <code><classname>reflects_namespace</classname></code>
+				inherits from <code><classname>::boost::true_type</classname></code>. Otherwise it inherits from
+				<code><classname>::boost::false_type</classname></code>.
+				</para>
+			</purpose>
+			<inherit access="public">
+				<type><classname>false_type</classname>-or-<classname>true_type</classname></type>
+			</inherit>
+			<description>
+				<para>This template can be used to distinguish whether the opaque <code>MetaObject</code> type reflects a namespace
+				and thus is an instantiation of <code><classname>meta_namespace</classname></code>.
+				</para>
+				<section id="mirror.reflects_namespace.reference.samples">
+					<title>Examples</title>
+<programlisting>
+BOOST_STATIC_ASSERT((
+	reflects_namespace< BOOST_MIRRORED_NAMESPACE(::boost::mirror) >::value
+));
+</programlisting>
+<programlisting>
+BOOST_STATIC_ASSERT((
+	reflects_namespace< BOOST_MIRRORED_TYPE(::std::string)::scope >::value
+));
+</programlisting>
+<programlisting>
+BOOST_STATIC_ASSERT((
+	!reflects_namespace< BOOST_MIRRORED_TYPE(::std::string) >::value
+));
+</programlisting>
+<programlisting>
+BOOST_MPL_ASSERT((
+	reflects_namespace< BOOST_MIRRORED_NAMESPACE(::boost::mirror) >
+));
+</programlisting>
+<programlisting>
+BOOST_MPL_ASSERT((
+	reflects_namespace< BOOST_MIRRORED_TYPE(::std::string)::scope >
+));
+</programlisting>
+<programlisting>
+BOOST_MPL_ASSERT_NOT((
+	reflects_namespace< BOOST_MIRRORED_TYPE(::std::string) >
+));
+</programlisting>
+				</section>
+			</description>
+		</class>
+	</namespace><!-- mirror -->
+	</namespace><!-- boost -->
+</header>
Added: sandbox/mirror/libs/mirror/doc/reference/traits/reflects_type.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/libs/mirror/doc/reference/traits/reflects_type.xml	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE section PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+	"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
+<header name="boost/mirror/traits/reflects_type.hpp">
+	<namespace name="boost">
+	<namespace name="mirror">
+		<class name="reflects_type">
+			<template>
+				<template-type-parameter name="MetaObject"/>
+			</template>
+			<purpose>
+				<para>If <code>MetaObject</code> is either an instantiation of <code><classname>meta_type</classname></code>
+				or <code><classname>meta_class</classname></code>, then <code><classname>reflects_type</classname></code>
+				inherits from <code><classname>::boost::true_type</classname></code>. Otherwise it inherits from
+				<code><classname>::boost::false_type</classname></code>.
+				</para>
+			</purpose>
+			<inherit access="public">
+				<type><classname>false_type</classname>-or-<classname>true_type</classname></type>
+			</inherit>
+			<description>
+				<para>This template can be used to distinguish whether the opaque <code>MetaObject</code> type reflects a type or a class
+				and thus is an instantiation of <code><classname>meta_type</classname></code>.
+				</para>
+				<section id="mirror.reflects_type.reference.samples">
+					<title>Examples</title>
+<programlisting>
+BOOST_STATIC_ASSERT((
+	reflects_type< BOOST_MIRRORED_TYPE(::std::string) >::value
+));
+</programlisting>
+<programlisting>
+BOOST_STATIC_ASSERT((
+	reflects_type< BOOST_MIRRORED_CLASS(::std::pair<int, ::std::string>) >::value
+));
+</programlisting>
+<programlisting>
+BOOST_STATIC_ASSERT((
+	!reflects_type< BOOST_MIRRORED_NAMESPACE(::boost::mirror) >::value
+));
+</programlisting>
+<programlisting>
+BOOST_STATIC_ASSERT((
+	!reflects_type< BOOST_MIRRORED_TYPE(::std::string)::scope >::value
+));
+</programlisting>
+<programlisting>
+BOOST_MPL_ASSERT((
+	reflects_type< BOOST_MIRRORED_TYPE(::std::string) >
+));
+</programlisting>
+<programlisting>
+BOOST_MPL_ASSERT_NOT((
+	reflects_type< BOOST_MIRRORED_NAMESPACE(::boost::mirror) >
+));
+</programlisting>
+				</section>
+			</description>
+		</class>
+	</namespace><!-- mirror -->
+	</namespace><!-- boost -->
+</header>
Added: sandbox/mirror/libs/mirror/doc/reference/traits/reflects_virtual_inheritance.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/libs/mirror/doc/reference/traits/reflects_virtual_inheritance.xml	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE section PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+	"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
+<header name="boost/mirror/traits/reflects_virtual_inheritance.hpp">
+	<namespace name="boost">
+	<namespace name="mirror">
+		<class name="reflects_virtual_inheritance">
+			<template>
+				<template-type-parameter name="MetaInheritance"/>
+			</template>
+			<purpose>
+				<para>If <code>MetaInheritance</code> is a specialization of <code><classname>meta_inheritance</classname></code>
+				reflecting virtual inheritance,
+				then <code><classname>reflects_virtual_inheritance</classname></code>
+				inherits from <code><classname>::boost::true_type</classname></code>. Otherwise it inherits from
+				<code><classname>::boost::false_type</classname></code>.
+				</para>
+			</purpose>
+			<inherit access="public">
+				<type><classname>false_type</classname>-or-<classname>true_type</classname></type>
+			</inherit>
+		</class>
+	</namespace><!-- mirror -->
+	</namespace><!-- boost -->
+</header>
Added: sandbox/mirror/libs/mirror/doc/samples/usage_namespaces_01.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/libs/mirror/doc/samples/usage_namespaces_01.xml	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE section PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+	"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
+<programlisting>
+#include <boost/char_type_switch/iostream.hpp>
+#include <boost/mirror/meta_namespace.hpp>
+#include <boost/mirror/traits/reflects_namespace.hpp>
+#include <boost/mirror/traits/reflects_global_scope.hpp>
+
+#include <boost/mpl/assert.hpp>
+
+namespace foo {
+namespace bar {
+namespace baz {
+
+} //namespace baz
+} //namespace bar
+} //namespace foo
+
+// the registering must be done in the boost::mirror namespace
+namespace boost {
+namespace mirror {
+
+// register foo
+<macroname>BOOST_MIRROR_REG_NAMESPACE</macroname>((foo))
+// register foo::bar
+<macroname>BOOST_MIRROR_REG_NAMESPACE</macroname>((foo)(bar))
+// register foo::bar::baz
+<macroname>BOOST_MIRROR_REG_NAMESPACE</macroname>((foo)(bar)(baz))
+
+} // namespace mirror
+} // namespace boost
+
+
+// prints meta-info about the global scope
+template < class MetaNamespace >
+void do_print_meta_data(::boost::true_type)
+{
+	using namespace ::std;
+	using namespace ::boost;
+	cts::bostream& bcout = cts::bcout();
+	bcout << 
+		<macroname>BOOST_CTS_LIT</macroname>("This is the global scope") << 
+	endl <<
+		<macroname>BOOST_CTS_LIT</macroname>("------------------------------------") << 
+	endl;
+}
+
+// prints meta-info about named namespaces
+template < class MetaNamespace >
+void do_print_meta_data(::boost::false_type)
+{
+	using namespace ::std;
+	using namespace ::boost;
+	using namespace ::boost::mirror;
+	cts::bostream& bcout = cts::bcout();
+
+	bcout << 
+		<macroname>BOOST_CTS_LIT</macroname>("Namespace '") << 
+		MetaNamespace::base_name() << 
+		<macroname>BOOST_CTS_LIT</macroname>("': ") << 
+	endl <<
+		<macroname>BOOST_CTS_LIT</macroname>(" - the full name is '") << 
+		MetaNamespace::full_name() << 
+		<macroname>BOOST_CTS_LIT</macroname>("'") << 
+	endl <<
+		<macroname>BOOST_CTS_LIT</macroname>(" - it's defined "); 
+
+	if(reflects_global_scope<typename MetaNamespace::scope>::value)
+		bcout << <macroname>BOOST_CTS_LIT</macroname>(" - on the global scope "); 
+	else
+		bcout << <macroname>BOOST_CTS_LIT</macroname>(" - in the '") <<
+			MetaNamespace::scope::full_name() <<
+			<macroname>BOOST_CTS_LIT</macroname>("' namespace"); 
+
+	bcout << endl <<
+		<macroname>BOOST_CTS_LIT</macroname>("------------------------------------") << 
+	endl;
+}
+
+
+
+template < class MetaNamespace >
+void print_meta_data(void)
+{
+	using namespace ::boost::mirror;
+	// check the template argument
+	BOOST_MPL_ASSERT((
+		<classname>reflects_namespace</classname>< MetaNamespace >	
+	));
+
+	// call the specialized printer based on whether
+	// the passed meta-namespace reflects the global
+	// scope or not
+	typename <classname>reflects_global_scope</classname><MetaNamespace>::type 
+		selector;
+
+	do_print_meta_data<MetaNamespace>(selector);
+}
+
+
+int main(void)
+{
+	// reflect and print meta-info about the pre-registered namespaces
+	print_meta_data< <macroname>BOOST_MIRRORED_GLOBAL_SCOPE</macroname>() >();
+	print_meta_data< <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::std) >();
+	print_meta_data< <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::boost) >();
+	print_meta_data< <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::boost::mirror) >();
+
+	// reflect and print meta-info about the namespaces registered here
+	print_meta_data< <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::foo) >();
+	print_meta_data< <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::foo::bar) >();
+	print_meta_data< <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::foo::bar::baz) >();
+	
+	return 0;
+}
+</programlisting>
+
Modified: sandbox/mirror/libs/mirror/example/registering/virtual_bases.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/example/registering/virtual_bases.cpp	(original)
+++ sandbox/mirror/libs/mirror/example/registering/virtual_bases.cpp	2008-07-18 09:41:20 EDT (Fri, 18 Jul 2008)
@@ -208,6 +208,8 @@
         //
         typedef BOOST_MIRRORED_CLASS(T) meta_T;
         //
+	//
+	//
         // Print some basic info about the reflected class
         //
         bcout << "The reflected class has " << endl;