Boost logo

Boost-Commit :

From: chochlik_at_[hidden]
Date: 2008-07-18 11:07:44


Author: matus.chochlik
Date: 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
New Revision: 47562
URL: http://svn.boost.org/trac/boost/changeset/47562

Log:
[mirror 0.2.x]
- Documentation update
Added:
   sandbox/mirror/doc/html/BOOST_MIRRORED_TYPE.html (contents, props changed)
   sandbox/mirror/doc/html/BOOST_MIRRORED_TYPEDEF.html (contents, props changed)
   sandbox/mirror/doc/html/BOOST_MIRRORED_TYPEOF.html (contents, props changed)
   sandbox/mirror/doc/html/BOOST_MIRRORED_TYPE_NS.html (contents, props changed)
   sandbox/mirror/libs/mirror/doc/reference/class_meta_type.xml (contents, props changed)
   sandbox/mirror/libs/mirror/doc/reference/macro_RFL_TYPE.xml (contents, props changed)
   sandbox/mirror/libs/mirror/doc/reference/macro_RFL_TYPEDEF.xml (contents, props changed)
   sandbox/mirror/libs/mirror/doc/reference/macro_RFL_TYPEOF.xml (contents, props changed)
   sandbox/mirror/libs/mirror/doc/reference/macro_RFL_TYPE_NS.xml (contents, props changed)
Text files modified:
   sandbox/mirror/doc/html/BOOST_MIRRORED_GLOBAL_SCOPE.html | 6
   sandbox/mirror/doc/html/BOOST_MIRRORED_NAMESPACE.html | 2
   sandbox/mirror/doc/html/BOOST_MIRROR_REG_NAMESPACE.html | 2
   sandbox/mirror/doc/html/boost/mirror/meta_class.html | 14 +-
   sandbox/mirror/doc/html/boost/mirror/meta_namespace.html | 56 ++++----
   sandbox/mirror/doc/html/boost/mirror/meta_type.html | 266 ++++++++++++++++++++--------------------
   sandbox/mirror/doc/html/boost/mirror/reflects_class.html | 2
   sandbox/mirror/doc/html/boost/mirror/reflects_global_scope.html | 2
   sandbox/mirror/doc/html/boost/mirror/reflects_namespace.html | 2
   sandbox/mirror/doc/html/boost/mirror/reflects_type.html | 2
   sandbox/mirror/doc/html/char_type_switch.html | 2
   sandbox/mirror/doc/html/doc_HTML.manifest | 4
   sandbox/mirror/doc/html/index.html | 2
   sandbox/mirror/doc/html/mirror.html | 10
   sandbox/mirror/doc/html/mirror/reference.html | 18 +
   sandbox/mirror/libs/mirror/doc/reference/class_meta_namespace.xml | 6
   sandbox/mirror/libs/mirror/doc/reference/meta_type.xml | 200 +----------------------------
   sandbox/mirror/libs/mirror/doc/samples/meta_namespace_ancestors_01.xml | 8
   sandbox/mirror/libs/mirror/doc/samples/meta_namespace_ancestors_02.xml | 2
   sandbox/mirror/libs/mirror/doc/samples/typenames_naive_mirror.xml | 2
   sandbox/mirror/libs/mirror/doc/samples/usage_meta_namespace_01.xml | 16 +-
   sandbox/mirror/libs/mirror/doc/samples/usage_meta_namespace_02.xml | 2
   sandbox/mirror/libs/mirror/doc/samples/usage_meta_namespace_03.xml | 2
   sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_01.xml | 2
   sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_02.xml | 12
   sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_03.xml | 8
   sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_04.xml | 2
   27 files changed, 239 insertions(+), 413 deletions(-)

Modified: sandbox/mirror/doc/html/BOOST_MIRRORED_GLOBAL_SCOPE.html
==============================================================================
--- sandbox/mirror/doc/html/BOOST_MIRRORED_GLOBAL_SCOPE.html (original)
+++ sandbox/mirror/doc/html/BOOST_MIRRORED_GLOBAL_SCOPE.html 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -35,7 +35,7 @@
 <h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
 <div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">BOOST_MIRRORED_GLOBAL_SCOPE()</pre></div>
 <div class="refsect1" lang="en">
-<a name="id671732"></a><h2>Description</h2>
+<a name="id706772"></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 with the <a class="link" href="mirror.html" title="Chapter 1. Mirror">Mirror</a> library by default.
                 </p>
@@ -63,7 +63,7 @@
 <pre class="programlisting">
 BOOST_MPL_ASSERT((
         ::boost::is_same&lt;
- BOOST_MIRRORED_TYPE(int)::scope,
+ <a class="link" href="BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a>(int)::scope,
                 <a class="link" href="BOOST_MIRRORED_GLOBAL_SCOPE.html" title="Macro BOOST_MIRRORED_GLOBAL_SCOPE">BOOST_MIRRORED_GLOBAL_SCOPE</a>()
         &gt;
 ));
@@ -71,7 +71,7 @@
 <pre class="programlisting">
 BOOST_MPL_ASSERT((
         ::boost::is_same&lt;
- BOOST_MIRRORED_TYPE(::std::wstring)::scope::scope,
+ <a class="link" href="BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a>(::std::wstring)::scope::scope,
                 <a class="link" href="BOOST_MIRRORED_GLOBAL_SCOPE.html" title="Macro BOOST_MIRRORED_GLOBAL_SCOPE">BOOST_MIRRORED_GLOBAL_SCOPE</a>()
         &gt;
 ));

Modified: sandbox/mirror/doc/html/BOOST_MIRRORED_NAMESPACE.html
==============================================================================
--- sandbox/mirror/doc/html/BOOST_MIRRORED_NAMESPACE.html (original)
+++ sandbox/mirror/doc/html/BOOST_MIRRORED_NAMESPACE.html 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -35,7 +35,7 @@
 <h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
 <div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">BOOST_MIRRORED_NAMESPACE(FULL_NAMESPACE_NAME)</pre></div>
 <div class="refsect1" lang="en">
-<a name="id671578"></a><h2>Description</h2>
+<a name="id706618"></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>.

Added: sandbox/mirror/doc/html/BOOST_MIRRORED_TYPE.html
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/html/BOOST_MIRRORED_TYPE.html 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,89 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Macro BOOST_MIRRORED_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.meta_type.hpp" title="Header &lt;boost/mirror/meta_type.hpp&gt;">
+<link rel="prev" href="boost/mirror/meta_type.html" title="Class template meta_type">
+<link rel="next" href="BOOST_MIRRORED_TYPE_NS.html" title="Macro BOOST_MIRRORED_TYPE_NS">
+</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_type.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="BOOST_MIRRORED_TYPE_NS.html"><img src="../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="BOOST_MIRRORED_TYPE"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Macro BOOST_MIRRORED_TYPE</span></h2>
+<p>BOOST_MIRRORED_TYPE &#8212; This macro is used to reflect a type and expands into a specialization
+ of the <code class="computeroutput">meta_type</code> template, which provides
+ meta-data about the reflected type.
+ To reflect a <code class="computeroutput">typedef</code>-ined type use the
+ <code class="computeroutput"><a class="link" href="BOOST_MIRRORED_TYPEDEF.html" title="Macro BOOST_MIRRORED_TYPEDEF">BOOST_MIRRORED_TYPEDEF</a></code> macro.
+ To reflect the type of an expression use the
+ <code class="computeroutput"><a class="link" href="BOOST_MIRRORED_TYPEOF.html" title="Macro BOOST_MIRRORED_TYPEOF">BOOST_MIRRORED_TYPEOF</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_TYPE(TYPE)</pre></div>
+<div class="refsect1" lang="en">
+<a name="id710467"></a><h2>Description</h2>
+<p>The <code class="computeroutput"><a class="link" href="BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a></code> macro reflects a type
+ previously registered with the <a class="link" href="mirror.html" title="Chapter 1. Mirror">Mirror</a> library or a type derived
+ from a registered type. The argument of this macro is a type.
+ </p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="mirror.RFL_TYPE.reference.samples"></a>Examples</h6></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="mirror.RFL_TYPE.reference.samples.simple"></a>Basic usage</h6></div></div></div>
+<pre class="programlisting">
+<a class="link" href="BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a>(int)::base_name();
+</pre>
+<pre class="programlisting">
+BOOST_MPL_ASSERT((
+ reflects_global_scope&lt;
+ <a class="link" href="BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a>(int)::scope
+ &gt;
+));
+</pre>
+<pre class="programlisting">
+BOOST_MPL_ASSERT_NOT((
+ reflects_global_scope&lt;
+ <a class="link" href="BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a>(::std::string)::scope
+ &gt;
+));
+</pre>
+<pre class="programlisting">
+<a class="link" href="BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a>(::std::wstring)::scope::full_name();
+</pre>
+</div>
+</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ú&#353; 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_type.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="BOOST_MIRRORED_TYPE_NS.html"><img src="../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/mirror/doc/html/BOOST_MIRRORED_TYPEDEF.html
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/html/BOOST_MIRRORED_TYPEDEF.html 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,141 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Macro BOOST_MIRRORED_TYPEDEF</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_type.hpp" title="Header &lt;boost/mirror/meta_type.hpp&gt;">
+<link rel="prev" href="BOOST_MIRRORED_TYPE_NS.html" title="Macro BOOST_MIRRORED_TYPE_NS">
+<link rel="next" href="BOOST_MIRRORED_TYPEOF.html" title="Macro BOOST_MIRRORED_TYPEOF">
+</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_TYPE_NS.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="BOOST_MIRRORED_TYPEOF.html"><img src="../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="BOOST_MIRRORED_TYPEDEF"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Macro BOOST_MIRRORED_TYPEDEF</span></h2>
+<p>BOOST_MIRRORED_TYPEDEF &#8212; This macro is used to reflect a <code class="computeroutput">typedef</code>-ined type and expands into a specialization
+ of the <code class="computeroutput">meta_type</code> template, which provides
+ meta-data about the reflected type.
+ To reflect a base type (not a <code class="computeroutput">typedef</code>-ined) use the
+ <code class="computeroutput"><a class="link" href="BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a></code> macro.
+ To reflect the type of an expression use the
+ <code class="computeroutput"><a class="link" href="BOOST_MIRRORED_TYPEOF.html" title="Macro BOOST_MIRRORED_TYPEOF">BOOST_MIRRORED_TYPEOF</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_TYPEDEF(FULL_NAMESPACE_NAME, TYPEDEF)</pre></div>
+<div class="refsect1" lang="en">
+<a name="id710702"></a><h2>Description</h2>
+<p>The <code class="computeroutput"><a class="link" href="BOOST_MIRRORED_TYPEDEF.html" title="Macro BOOST_MIRRORED_TYPEDEF">BOOST_MIRRORED_TYPEDEF</a></code> macro reflects a type
+ that is registered with the <a class="link" href="mirror.html" title="Chapter 1. Mirror">Mirror</a> library as a <code class="computeroutput">typedef</code>-ined
+ type.
+ The difference between this macro and the <code class="computeroutput"><a class="link" href="BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a></code> macro
+ is, that <code class="computeroutput"><a class="link" href="BOOST_MIRRORED_TYPEDEF.html" title="Macro BOOST_MIRRORED_TYPEDEF">BOOST_MIRRORED_TYPEDEF</a></code> returns a <code class="computeroutput">meta_type</code>
+ specialization which is aware of the <code class="computeroutput">typedef</code>-ined name and the scope in which the type is
+ <code class="computeroutput">typedef</code>'d. For example the <code class="computeroutput">size_t</code> is a <code class="computeroutput">typedef</code> from the <code class="computeroutput">::std</code> namespace
+ and is usually defined as
+</p>
+<pre class="programlisting">
+namespace std {
+typedef unsigned int size_t;
+} // namespace std
+</pre>
+<p>
+ or
+</p>
+<pre class="programlisting">
+namespace std {
+typedef unsigned long size_t;
+} // namespace std
+</pre>
+<p>
+ the <code class="computeroutput">full_name</code> function called on meta_type
+ expanded from <a class="link" href="BOOST_MIRRORED_TYPEDEF.html" title="Macro BOOST_MIRRORED_TYPEDEF">BOOST_MIRRORED_TYPEDEF</a>
+</p>
+<pre class="programlisting">
+ <a class="link" href="BOOST_MIRRORED_TYPEDEF.html" title="Macro BOOST_MIRRORED_TYPEDEF">BOOST_MIRRORED_TYPEDEF</a>(::std, size_t)::full_name()
+</pre>
+<p>
+ returns <code class="computeroutput">"::std::size_t"</code>, while calling
+</p>
+<pre class="programlisting">
+ <a class="link" href="BOOST_MIRRORED_TYPE_NS.html" title="Macro BOOST_MIRRORED_TYPE_NS">BOOST_MIRRORED_TYPE_NS</a>(::std, size_t)::full_name()
+</pre>
+<p>
+ or
+</p>
+<pre class="programlisting">
+ <a class="link" href="BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a>(::std::size_t)::full_name()
+</pre>
+<p>
+ returns <code class="computeroutput">"unsigned int"</code> or <code class="computeroutput">"unsigned long"</code>.
+ </p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="mirror.RFL_TYPEDEF.reference.samples"></a>Examples</h6></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="mirror.RFL_TYPEDEF.reference.samples.simple"></a>Basic usage</h6></div></div></div>
+<pre class="programlisting">
+<a class="link" href="BOOST_MIRRORED_TYPEDEF.html" title="Macro BOOST_MIRRORED_TYPEDEF">BOOST_MIRRORED_TYPEDEF</a>(::boost::cts, bstring)::base_name();
+</pre>
+<pre class="programlisting">
+BOOST_MPL_ASSERT((
+ reflects_global_scope&lt;
+ <a class="link" href="BOOST_MIRRORED_TYPEDEF.html" title="Macro BOOST_MIRRORED_TYPEDEF">BOOST_MIRRORED_TYPEDEF</a>(::std, size_t)::scope::scope
+ &gt;
+));
+</pre>
+<pre class="programlisting">
+BOOST_MPL_ASSERT_NOT((
+ reflects_global_scope&lt;
+ <a class="link" href="BOOST_MIRRORED_TYPEDEF.html" title="Macro BOOST_MIRRORED_TYPEDEF">BOOST_MIRRORED_TYPEDEF</a>(::boost::cts, bstring)::scope
+ &gt;
+));
+</pre>
+<pre class="programlisting">
+<a class="link" href="BOOST_MIRRORED_TYPEDEF.html" title="Macro BOOST_MIRRORED_TYPEDEF">BOOST_MIRRORED_TYPEDEF</a>(::boost::cts, bstring)::scope::full_name();
+</pre>
+<pre class="programlisting">
+assert(
+ <a class="link" href="BOOST_MIRRORED_TYPEDEF.html" title="Macro BOOST_MIRRORED_TYPEDEF">BOOST_MIRRORED_TYPEDEF</a>(::std, size_t)::full_name() !=
+ <a class="link" href="BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a>(::std::size_t)::full_name()
+);
+</pre>
+<pre class="programlisting">
+assert(
+ <a class="link" href="BOOST_MIRRORED_TYPEDEF.html" title="Macro BOOST_MIRRORED_TYPEDEF">BOOST_MIRRORED_TYPEDEF</a>(::boost::cts, bstring)::full_name() !=
+ <a class="link" href="BOOST_MIRRORED_TYPE_NS.html" title="Macro BOOST_MIRRORED_TYPE_NS">BOOST_MIRRORED_TYPE_NS</a>(::boost::cts, bstring)::full_name()
+);
+</pre>
+</div>
+</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ú&#353; 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_TYPE_NS.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="BOOST_MIRRORED_TYPEOF.html"><img src="../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/mirror/doc/html/BOOST_MIRRORED_TYPEOF.html
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/html/BOOST_MIRRORED_TYPEOF.html 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,69 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Macro BOOST_MIRRORED_TYPEOF</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_type.hpp" title="Header &lt;boost/mirror/meta_type.hpp&gt;">
+<link rel="prev" href="BOOST_MIRRORED_TYPEDEF.html" title="Macro BOOST_MIRRORED_TYPEDEF">
+<link rel="next" href="boost/mirror/meta_class.html" title="Class template meta_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="BOOST_MIRRORED_TYPEDEF.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="boost/mirror/meta_class.html"><img src="../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="BOOST_MIRRORED_TYPEOF"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Macro BOOST_MIRRORED_TYPEOF</span></h2>
+<p>BOOST_MIRRORED_TYPEOF &#8212; This macro is used to reflect the type of an expression.
+ </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_TYPEOF(EXPRESSION)</pre></div>
+<div class="refsect1" lang="en">
+<a name="id710940"></a><h2>Description</h2>
+ This macro is basically just a shorter form of
+<pre class="programlisting">
+ <a class="link" href="BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a>(BOOST_TYPEOF(EXPRESSION))
+</pre>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="mirror.RFL_TYPEOF.reference.samples"></a>Examples</h6></div></div></div>
+<pre class="programlisting">
+ <a class="link" href="BOOST_MIRRORED_TYPEOF.html" title="Macro BOOST_MIRRORED_TYPEOF">BOOST_MIRRORED_TYPEOF</a>(1+1)::base_name();
+</pre>
+<pre class="programlisting">
+BOOST_MPL_ASSERT((
+ reflects_global_scope&lt;
+ <a class="link" href="BOOST_MIRRORED_TYPEOF.html" title="Macro BOOST_MIRRORED_TYPEOF">BOOST_MIRRORED_TYPEOF</a>(1.0+1.0)::scope
+ &gt;
+));
+</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ú&#353; 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_TYPEDEF.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="boost/mirror/meta_class.html"><img src="../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/mirror/doc/html/BOOST_MIRRORED_TYPE_NS.html
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/html/BOOST_MIRRORED_TYPE_NS.html 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,83 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Macro BOOST_MIRRORED_TYPE_NS</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_type.hpp" title="Header &lt;boost/mirror/meta_type.hpp&gt;">
+<link rel="prev" href="BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">
+<link rel="next" href="BOOST_MIRRORED_TYPEDEF.html" title="Macro BOOST_MIRRORED_TYPEDEF">
+</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_TYPE.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="BOOST_MIRRORED_TYPEDEF.html"><img src="../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="BOOST_MIRRORED_TYPE_NS"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Macro BOOST_MIRRORED_TYPE_NS</span></h2>
+<p>BOOST_MIRRORED_TYPE_NS &#8212; This macro is a variation of the
+ <code class="computeroutput"><a class="link" href="BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a></code> macro, which
+ takes the name of the type split into two arguments the full namespace
+ name and the base type name.
+ </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_TYPE_NS(FULL_NAMESPACE_NAME, TYPE)</pre></div>
+<div class="refsect1" lang="en">
+<a name="id710572"></a><h2>Description</h2>
+<p><code class="computeroutput"><a class="link" href="BOOST_MIRRORED_TYPE_NS.html" title="Macro BOOST_MIRRORED_TYPE_NS">BOOST_MIRRORED_TYPE_NS</a>(NAMESPACE, TYPE)</code>
+ is equivalent to <code class="computeroutput"><a class="link" href="BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a>(NAMESPACE :: TYPE)</code>.
+ </p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="mirror.RFL_TYPE_NS.reference.samples"></a>Examples</h6></div></div></div>
+<pre class="programlisting">
+<a class="link" href="BOOST_MIRRORED_TYPE_NS.html" title="Macro BOOST_MIRRORED_TYPE_NS">BOOST_MIRRORED_TYPE_NS</a>(::std, string)::base_name();
+</pre>
+<pre class="programlisting">
+BOOST_MPL_ASSERT_NOT((
+ reflects_global_scope&lt;
+ <a class="link" href="BOOST_MIRRORED_TYPE_NS.html" title="Macro BOOST_MIRRORED_TYPE_NS">BOOST_MIRRORED_TYPE_NS</a>(::std, string)::scope
+ &gt;
+));
+</pre>
+<pre class="programlisting">
+assert(
+ <a class="link" href="BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a>(::std::wstring)::full_name() ==
+ <a class="link" href="BOOST_MIRRORED_TYPE_NS.html" title="Macro BOOST_MIRRORED_TYPE_NS">BOOST_MIRRORED_TYPE_NS</a>(::std, wstring)::full_name()
+);
+</pre>
+<pre class="programlisting">
+assert(
+ <a class="link" href="BOOST_MIRRORED_TYPEDEF.html" title="Macro BOOST_MIRRORED_TYPEDEF">BOOST_MIRRORED_TYPEDEF</a>(::boost::cts, bstring)::full_name() !=
+ <a class="link" href="BOOST_MIRRORED_TYPE_NS.html" title="Macro BOOST_MIRRORED_TYPE_NS">BOOST_MIRRORED_TYPE_NS</a>(::boost::cts, bstring)::full_name()
+);
+</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ú&#353; 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_TYPE.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="BOOST_MIRRORED_TYPEDEF.html"><img src="../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Modified: sandbox/mirror/doc/html/BOOST_MIRROR_REG_NAMESPACE.html
==============================================================================
--- sandbox/mirror/doc/html/BOOST_MIRROR_REG_NAMESPACE.html (original)
+++ sandbox/mirror/doc/html/BOOST_MIRROR_REG_NAMESPACE.html 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -34,7 +34,7 @@
 <h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
 <div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">BOOST_MIRROR_REG_NAMESPACE(PP_SEQ)</pre></div>
 <div class="refsect1" lang="en">
-<a name="id671352"></a><h2>Description</h2>
+<a name="id706392"></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>

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 11:07:40 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_class.hpp" title="Header &lt;boost/mirror/meta_class.hpp&gt;">
-<link rel="prev" href="meta_type.html" title="Class template meta_type">
+<link rel="prev" href="../../BOOST_MIRRORED_TYPEOF.html" title="Macro BOOST_MIRRORED_TYPEOF">
 <link rel="next" href="reflects_namespace.html" title="Class template reflects_namespace">
 </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_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>
+<a accesskey="p" href="../../BOOST_MIRRORED_TYPEOF.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#id625649-bbtypes">types</a></em></span>
+ <span class="emphasis"><em>// <a class="link" href="meta_class.html#id491918-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="id674888"></a><h2>Description</h2>
+<a name="id711139"></a><h2>Description</h2>
 <div class="refsect2" lang="en">
-<a name="id674892"></a><h3>
-<a name="id625649-bbtypes"></a><code class="computeroutput">meta_class</code> public types</h3>
+<a name="id711143"></a><h3>
+<a name="id491918-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="reflects_namespace.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="../../BOOST_MIRRORED_TYPEOF.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 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -45,17 +45,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>&lt;<span class="bold"><strong>typename</strong></span> NamespacePlaceholder&gt;
 <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#id450062-bbtypes">types</a></em></span>
+ <span class="emphasis"><em>// <a class="link" href="meta_namespace.html#id439099-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&amp;</span> <a class="link" href="meta_namespace.html#id449938-bb">base_name</a>();
- <span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&amp;</span> <a class="link" href="meta_namespace.html#id449896-bb">full_name</a>();
+ <span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&amp;</span> <a class="link" href="meta_namespace.html#id438958-bb">base_name</a>();
+ <span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&amp;</span> <a class="link" href="meta_namespace.html#id438916-bb">full_name</a>();
   <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>bool</strong></span> FullName, <span class="bold"><strong>typename</strong></span> CharT&gt;
     <span class="type"><span class="bold"><strong>const</strong></span> ::std::basic_string&lt;CharT&gt;&amp;</span>
- <a class="link" href="meta_namespace.html#id449843-bb">get_name</a>(::boost::mpl::bool_&lt;FullName&gt;, ::std::char_traits&lt;CharT&gt;);
+ <a class="link" href="meta_namespace.html#id438863-bb">get_name</a>(::boost::mpl::bool_&lt;FullName&gt;, ::std::char_traits&lt;CharT&gt;);
 };</pre></div>
 <div class="refsect1" lang="en">
-<a name="id670806"></a><h2>Description</h2>
+<a name="id705766"></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
@@ -84,15 +84,15 @@
         cts::bostream&amp; bcout = cts::bcout();
 
         // several namespaces are pre-registered
- bcout &lt;&lt; BOOST_MIRRORED_GLOBAL_SCOPE() ::base_name() &lt;&lt; endl;
- bcout &lt;&lt; BOOST_MIRRORED_NAMESPACE(::std) ::base_name() &lt;&lt; endl;
- bcout &lt;&lt; BOOST_MIRRORED_NAMESPACE(::boost) ::base_name() &lt;&lt; endl;
- bcout &lt;&lt; BOOST_MIRRORED_NAMESPACE(::boost::mirror) ::base_name() &lt;&lt; endl;
+ bcout &lt;&lt; <a class="link" href="../../BOOST_MIRRORED_GLOBAL_SCOPE.html" title="Macro BOOST_MIRRORED_GLOBAL_SCOPE">BOOST_MIRRORED_GLOBAL_SCOPE</a>() ::base_name() &lt;&lt; endl;
+ bcout &lt;&lt; <a class="link" href="../../BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::std) ::base_name() &lt;&lt; endl;
+ bcout &lt;&lt; <a class="link" href="../../BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::boost) ::base_name() &lt;&lt; endl;
+ bcout &lt;&lt; <a class="link" href="../../BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::boost::mirror) ::base_name() &lt;&lt; endl;
         //
- bcout &lt;&lt; BOOST_MIRRORED_GLOBAL_SCOPE() ::full_name() &lt;&lt; endl;
- bcout &lt;&lt; BOOST_MIRRORED_NAMESPACE(::std) ::full_name() &lt;&lt; endl;
- bcout &lt;&lt; BOOST_MIRRORED_NAMESPACE(::boost) ::full_name() &lt;&lt; endl;
- bcout &lt;&lt; BOOST_MIRRORED_NAMESPACE(::boost::mirror) ::full_name() &lt;&lt; endl;
+ bcout &lt;&lt; <a class="link" href="../../BOOST_MIRRORED_GLOBAL_SCOPE.html" title="Macro BOOST_MIRRORED_GLOBAL_SCOPE">BOOST_MIRRORED_GLOBAL_SCOPE</a>() ::full_name() &lt;&lt; endl;
+ bcout &lt;&lt; <a class="link" href="../../BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::std) ::full_name() &lt;&lt; endl;
+ bcout &lt;&lt; <a class="link" href="../../BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::boost) ::full_name() &lt;&lt; endl;
+ bcout &lt;&lt; <a class="link" href="../../BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::boost::mirror) ::full_name() &lt;&lt; endl;
 
         return 0;
 }
@@ -143,7 +143,7 @@
         using namespace ::boost::mirror;
         cts::bostream&amp; bcout = cts::bcout();
         //
- typedef BOOST_MIRRORED_NAMESPACE(::boost::mirror) meta_boost_mirror;
+ typedef <a class="link" href="../../BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::boost::mirror) meta_boost_mirror;
         //
         // get the full name of the parent scope of the reflected namespace
         bcout &lt;&lt; meta_boost_mirror::scope::full_name() &lt;&lt; endl;
@@ -201,7 +201,7 @@
 {
         using namespace ::std;
         //
- typedef BOOST_MIRRORED_NAMESPACE(::boost::mirror) meta_Ns;
+ typedef <a class="link" href="../../BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::boost::mirror) meta_Ns;
         meta_Ns mns;
         //
         cout &lt;&lt; mns &lt;&lt; endl;
@@ -213,8 +213,8 @@
 </div>
 </div>
 <div class="refsect2" lang="en">
-<a name="id670973"></a><h3>
-<a name="id450062-bbtypes"></a><code class="computeroutput">meta_namespace</code> public types</h3>
+<a name="id705980"></a><h3>
+<a name="id439099-bbtypes"></a><code class="computeroutput">meta_namespace</code> public types</h3>
 <div class="orderedlist"><ol type="1">
 <li>
 <p>
@@ -248,7 +248,7 @@
 BOOST_MPL_ASSERT((
         reflects_global_scope &lt;
                 mpl::front &lt;
- BOOST_MIRRORED_NAMESPACE(::std)::ancestors
+ <a class="link" href="../../BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::std)::ancestors
                 &gt;
         &gt;
 ));
@@ -256,7 +256,7 @@
 BOOST_MPL_ASSERT((
         reflects_global_scope &lt;
                 mpl::front &lt;
- BOOST_MIRRORED_NAMESPACE(::boost::mirror)::ancestors
+ <a class="link" href="../../BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::boost::mirror)::ancestors
                 &gt;
         &gt;
 ));
@@ -264,9 +264,9 @@
 BOOST_MPL_ASSERT((
         is_same &lt;
                 mpl::back &lt;
- BOOST_MIRRORED_NAMESPACE(::boost::mirror)::ancestors
+ <a class="link" href="../../BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::boost::mirror)::ancestors
                 &gt;,
- BOOST_MIRRORED_NAMESPACE(::boost::mirror)::scope
+ <a class="link" href="../../BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::boost::mirror)::scope
         &gt;
 ));
 </pre>
@@ -276,7 +276,7 @@
 <a name="mirror.reference.sample.meta_namespace.ancestors02"></a><pre class="programlisting">
 BOOST_MPL_ASSERT((
         mpl::empty &lt;
- BOOST_MIRRORED_GLOBAL_SCOPE()::ancestors
+ <a class="link" href="../../BOOST_MIRRORED_GLOBAL_SCOPE.html" title="Macro BOOST_MIRRORED_GLOBAL_SCOPE">BOOST_MIRRORED_GLOBAL_SCOPE</a>()::ancestors
         &gt;
 ));
 
@@ -287,7 +287,7 @@
 </li>
 </ol></div>
 </div>
-<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&amp;</span> <a name="id449938-bb"></a>base_name();</pre>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&amp;</span> <a name="id438958-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
@@ -299,12 +299,12 @@
                         <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&amp;</span> <a name="id449896-bb"></a>full_name();</pre>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&amp;</span> <a name="id438916-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>
-<pre class="programlisting"><code class="computeroutput">BOOST_MIRRORED_NAMESPACE</code>(::boost::mirror) :: full_name()
+<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) :: full_name()
                         </pre>
 <p>
                         returns <code class="computeroutput">"::boost::mirror"</code>. When the base namespace name
@@ -326,7 +326,7 @@
 </table></div>
 <pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>bool</strong></span> FullName, <span class="bold"><strong>typename</strong></span> CharT&gt;
   <span class="type"><span class="bold"><strong>const</strong></span> ::std::basic_string&lt;CharT&gt;&amp;</span>
- <a name="id449843-bb"></a>get_name(::boost::mpl::bool_&lt;FullName&gt; full, ::std::char_traits&lt;CharT&gt; cht);</pre>
+ <a name="id438863-bb"></a>get_name(::boost::mpl::bool_&lt;FullName&gt; full, ::std::char_traits&lt;CharT&gt; 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
@@ -338,14 +338,14 @@
                         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&lt;char&gt;())
+<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) :: get_name(::boost::mpl::false_(), ::std::char_traits&lt;char&gt;())
                         </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>
-<pre class="programlisting"><code class="computeroutput">BOOST_MIRRORED_NAMESPACE</code>(::boost::mirror) :: get_name(::boost::mpl::true_(), ::std::char_traits&lt;wchar_t&gt;())
+<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) :: get_name(::boost::mpl::true_(), ::std::char_traits&lt;wchar_t&gt;())
                         </pre>
 <p> is equivalent to calling the
                         <code class="computeroutput">full_name</code> method with the

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 11:07:40 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_type.hpp" title="Header &lt;boost/mirror/meta_type.hpp&gt;">
 <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">
+<link rel="next" href="../../BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -20,59 +20,59 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<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>
+<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="../../BOOST_MIRRORED_TYPE.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>
 <div class="refnamediv">
 <h2><span class="refentrytitle">Class template meta_type</span></h2>
 <p>boost::mirror::meta_type &#8212; The purpose of this class template is to provide meta-data
- about the reflected type, especially to allow to get the
- base and full type name of the reflected type and to
- get information about the scope inside of which this type
- has been declared.
- Although the specializations of <code class="computeroutput">meta_type</code>
- template can be used directly to get the meta data about a particular type,
- it is recomended to use the reflection macros like
- <code class="computeroutput">BOOST_MIRRORED_TYPE(TYPE)</code> or
- <code class="computeroutput">BOOST_MIRRORED_TYPEOF(EXPR)</code>
- instead, to get the proper specializations of
- <code class="computeroutput">meta_type</code>.
- </p>
+ about the reflected type, especially to allow to get the
+ base and full type name of the reflected type and to
+ get information about the scope inside of which this type
+ has been declared.
+ Although the specializations of <code class="computeroutput">meta_type</code>
+ template can be used directly to get the meta data about a particular type,
+ it is recomended to use the reflection macros like
+ <code class="computeroutput"><a class="link" href="../../BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a>(TYPE)</code> or
+ <code class="computeroutput"><a class="link" href="../../BOOST_MIRRORED_TYPEOF.html" title="Macro BOOST_MIRRORED_TYPEOF">BOOST_MIRRORED_TYPEOF</a>(EXPR)</code>
+ instead, to get the proper specializations of
+ <code class="computeroutput">meta_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>&lt;<span class="bold"><strong>typename</strong></span> Type&gt;
 <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#id625962-bbtypes">types</a></em></span>
+ <span class="emphasis"><em>// <a class="link" href="meta_type.html#id491750-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&amp;</span> <a class="link" href="meta_type.html#id624602-bb">base_name</a>();
- <span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&amp;</span> <a class="link" href="meta_type.html#id626402-bb">full_name</a>();
+ <span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&amp;</span> <a class="link" href="meta_type.html#id490450-bb">base_name</a>();
+ <span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&amp;</span> <a class="link" href="meta_type.html#id492118-bb">full_name</a>();
   <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>bool</strong></span> FullName, <span class="bold"><strong>typename</strong></span> CharT&gt;
     <span class="type"><span class="bold"><strong>const</strong></span> ::std::basic_string&lt;CharT&gt;&amp;</span>
- <a class="link" href="meta_type.html#id625789-bb">get_name</a>(::boost::mpl::bool_&lt;FullName&gt;, ::std::char_traits&lt;CharT&gt;);
+ <a class="link" href="meta_type.html#id491912-bb">get_name</a>(::boost::mpl::bool_&lt;FullName&gt;, ::std::char_traits&lt;CharT&gt;);
 };</pre></div>
 <div class="refsect1" lang="en">
-<a name="id672002"></a><h2>Description</h2>
+<a name="id707081"></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="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 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>
+ 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>
 <a name="mirror.reference.sample.meta_type.usage01"></a><pre class="programlisting">
 #include &lt;boost/char_type_switch/iostream.hpp&gt;
 #include &lt;boost/mirror/meta_type.hpp&gt;
@@ -92,7 +92,7 @@
         typedef T4 (T)(const T1&amp;, T2, volatile T3*);
         
         // reflect it using mirror
- typedef BOOST_MIRRORED_TYPE(T) meta_T;
+ typedef <a class="link" href="../../BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a>(T) meta_T;
 
         // print out the full type name
         cts::bcout() &lt;&lt;
@@ -108,8 +108,8 @@
 <div class="titlepage"><div><div><h6 class="title">
 <a name="mirror.meta_type.reference.sample02"></a>Example - Using with typeof and getting scope-related information</h6></div></div></div>
 <p>The following example shows cooperation with the Typeof
- library and scope-related operations.
- </p>
+ library and scope-related operations.
+ </p>
 <a name="mirror.reference.sample.meta_type.usage02"></a><pre class="programlisting">
 
 #include &lt;string&gt;
@@ -159,16 +159,16 @@
 
         // reflect the type of an expression
         // and print the meta-data
- print_meta_data&lt; BOOST_MIRRORED_TYPEOF(1+2) &gt;();
- print_meta_data&lt; BOOST_MIRRORED_TYPEOF(1.0+2.0) &gt;();
- print_meta_data&lt; BOOST_MIRRORED_TYPEOF("1" "+" "2") &gt;();
- print_meta_data&lt; BOOST_MIRRORED_TYPEOF(string("1")+string("2")) &gt;();
+ print_meta_data&lt; <a class="link" href="../../BOOST_MIRRORED_TYPEOF.html" title="Macro BOOST_MIRRORED_TYPEOF">BOOST_MIRRORED_TYPEOF</a>(1+2) &gt;();
+ print_meta_data&lt; <a class="link" href="../../BOOST_MIRRORED_TYPEOF.html" title="Macro BOOST_MIRRORED_TYPEOF">BOOST_MIRRORED_TYPEOF</a>(1.0+2.0) &gt;();
+ print_meta_data&lt; <a class="link" href="../../BOOST_MIRRORED_TYPEOF.html" title="Macro BOOST_MIRRORED_TYPEOF">BOOST_MIRRORED_TYPEOF</a>("1" "+" "2") &gt;();
+ print_meta_data&lt; <a class="link" href="../../BOOST_MIRRORED_TYPEOF.html" title="Macro BOOST_MIRRORED_TYPEOF">BOOST_MIRRORED_TYPEOF</a>(string("1")+string("2")) &gt;();
 
         // BOOST_MIRRORED_TYPEOF is actually a shorter form of this:
- print_meta_data&lt; BOOST_MIRRORED_TYPE(
+ print_meta_data&lt; <a class="link" href="../../BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a>(
                 BOOST_TYPEOF(L"1" L"+" L"2")
         ) &gt;();
- print_meta_data&lt; BOOST_MIRRORED_TYPE(
+ print_meta_data&lt; <a class="link" href="../../BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a>(
                 BOOST_TYPEOF(wstring(L"1")+wstring(L"2"))
         ) &gt;();
 
@@ -180,15 +180,15 @@
 <div class="titlepage"><div><div><h6 class="title">
 <a name="mirror.meta_type.reference.sample03"></a>Example - Reflection of <code class="computeroutput">typedef</code>-ined types</h6></div></div></div>
 <p>The next example shows how to reflect <code class="computeroutput">typedef</code>-ined
- types. This is useful when the info about the name and the scope of the <code class="computeroutput">typedef</code>
- is required instead of the meta-information about the "source" type.
- However, the usage shown in this example is not very common. The full utility becomes obvious
- only when the <code class="computeroutput">meta_type</code> is part of
- some other meta-structure like for example with <code class="computeroutput">typedef</code>'d class member attributes.
- </p>
+ types. This is useful when the info about the name and the scope of the <code class="computeroutput">typedef</code>
+ is required instead of the meta-information about the "source" type.
+ However, the usage shown in this example is not very common. The full utility becomes obvious
+ only when the <code class="computeroutput">meta_type</code> is part of
+ some other meta-structure like for example with <code class="computeroutput">typedef</code>'d class member attributes.
+ </p>
 <p>Mirror comes with several pre-registered <code class="computeroutput">typedef</code>s. If user-defined
- <code class="computeroutput">typedef</code>s are to be reflected they need to be registered first.
- </p>
+ <code class="computeroutput">typedef</code>s are to be reflected they need to be registered first.
+ </p>
 <a name="mirror.reference.sample.meta_type.usage03"></a><pre class="programlisting">
 
 #include &lt;boost/char_type_switch/iostream.hpp&gt;
@@ -213,17 +213,17 @@
         using namespace ::boost::mirror;
         //
         // the first arg is the namespace the second the typedefined type
- typedef BOOST_MIRRORED_TYPEDEF(::boost::cts, bstring) meta_bstring_td;
+ typedef <a class="link" href="../../BOOST_MIRRORED_TYPEDEF.html" title="Macro BOOST_MIRRORED_TYPEDEF">BOOST_MIRRORED_TYPEDEF</a>(::boost::cts, bstring) meta_bstring_td;
         // reflection of the "source" type
- typedef BOOST_MIRRORED_TYPE(::boost::cts::bstring) meta_bstring;
+ typedef <a class="link" href="../../BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a>(::boost::cts::bstring) meta_bstring;
         //
         print_meta_data&lt; meta_bstring_td &gt;();
         print_meta_data&lt; meta_bstring &gt;();
         //
- print_meta_data&lt; BOOST_MIRRORED_TYPEDEF(::std, size_t) &gt;();
+ print_meta_data&lt; <a class="link" href="../../BOOST_MIRRORED_TYPEDEF.html" title="Macro BOOST_MIRRORED_TYPEDEF">BOOST_MIRRORED_TYPEDEF</a>(::std, size_t) &gt;();
         // this is another version of the BOOST_MIRRORED_TYPE macro
         // that gets the namespace and the type as two separate args
- print_meta_data&lt; BOOST_MIRRORED_TYPE_NS(::std, size_t) &gt;();
+ print_meta_data&lt; <a class="link" href="../../BOOST_MIRRORED_TYPE_NS.html" title="Macro BOOST_MIRRORED_TYPE_NS">BOOST_MIRRORED_TYPE_NS</a>(::std, size_t) &gt;();
         //
 
         return 0;
@@ -234,18 +234,18 @@
 <div class="titlepage"><div><div><h6 class="title">
 <a name="mirror.meta_type.reference.sample04"></a>Example - Generic typename getter</h6></div></div></div>
 <p>The <code class="computeroutput">base_name</code> and the
- <code class="computeroutput">full_name</code> member functions
- are convenient but not very generic. The <code class="computeroutput">get_name</code>
- method allows to specify the character type of the returned string and
- to specify wheter a full or just the base name should be returned, based
- on compile time arguments.
- </p>
+ <code class="computeroutput">full_name</code> member functions
+ are convenient but not very generic. The <code class="computeroutput">get_name</code>
+ method allows to specify the character type of the returned string and
+ to specify wheter a full or just the base 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
- 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>
+ 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_type.usage04"></a><pre class="programlisting">
 #include &lt;iostream&gt;
 #include &lt;boost/mirror/meta_type.hpp&gt;
@@ -269,7 +269,7 @@
 {
         using namespace ::std;
         //
- typedef BOOST_MIRRORED_TYPEDEF(::boost::cts, bstring) meta_T;
+ typedef <a class="link" href="../../BOOST_MIRRORED_TYPEDEF.html" title="Macro BOOST_MIRRORED_TYPEDEF">BOOST_MIRRORED_TYPEDEF</a>(::boost::cts, bstring) meta_T;
         meta_T mt;
         //
         cout &lt;&lt; mt &lt;&lt; endl;
@@ -281,119 +281,119 @@
 </div>
 </div>
 <div class="refsect2" lang="en">
-<a name="id672211"></a><h3>
-<a name="id625962-bbtypes"></a><code class="computeroutput">meta_type</code> public types</h3>
+<a name="id710080"></a><h3>
+<a name="id491750-bbtypes"></a><code class="computeroutput">meta_type</code> public types</h3>
 <div class="orderedlist"><ol type="1">
 <li>
 <p>
 <span class="bold"><strong>typedef</strong></span> Type <a name="boost.mirror.meta_type.reflected_type"></a>reflected_type;</p>
 <p>The type reflected by this overload of <code class="computeroutput">meta_type</code>.
- </p>
+ </p>
 </li>
 <li>
 <p>
 <span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>unspecified</em></span> <a name="boost.mirror.meta_type.scope"></a>scope;</p>
 <p>A meta-object describing the scope in which the reflected type
- is defined. Depending on where the type has been defined <code class="computeroutput">scope</code>
- can be either a specialization of <code class="computeroutput">meta_namespace</code>
- or a specialization of <code class="computeroutput">meta_class</code>.
- </p>
+ is defined. Depending on where the type has been defined <code class="computeroutput">scope</code>
+ can be either a specialization of <code class="computeroutput">meta_namespace</code>
+ or a specialization of <code class="computeroutput">meta_class</code>.
+ </p>
 </li>
 </ol></div>
 </div>
-<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&amp;</span> <a name="id624602-bb"></a>base_name();</pre>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&amp;</span> <a name="id490450-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:
- </p>
-<pre class="programlisting"><code class="computeroutput">BOOST_MIRRORED_TYPE</code>(::std::string) :: base_name()
- </pre>
+ type reflected by <code class="computeroutput">meta_type</code>
+ without the nested name specifier. For example:
+ </p>
+<pre class="programlisting"><code class="computeroutput"><a class="link" href="../../BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a></code>(::std::string) :: base_name()
+ </pre>
 <p> or
- </p>
+ </p>
 <pre class="programlisting"><code class="computeroutput">meta_type</code> &lt; ::std::string &gt; :: base_name()
- </pre>
+ </pre>
 <p>
- returns simply <code class="computeroutput">"string"</code>. When a full type 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>
+ returns simply <code class="computeroutput">"string"</code>. When a full type 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>
 <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 derived types like pointers, references, cv-qualified
- types, arrays etc. because the type name needs to be properly composed from
- the base type name, which may depending on the complexity of the type
- lead to multiple string concatenations. Subsequent calls to this member function
- for a concrete specialization of meta_type
- are usually much faster.
- </p></td>
+ for derived types like pointers, references, cv-qualified
+ types, arrays etc. because the type name needs to be properly composed from
+ the base type name, which may depending on the complexity of the type
+ lead to multiple string concatenations. Subsequent calls to this member function
+ for a concrete specialization of meta_type
+ are usually much faster.
+ </p></td>
 </tr></tbody>
 </table></div>
-<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&amp;</span> <a name="id626402-bb"></a>full_name();</pre>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&amp;</span> <a name="id492118-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:
- </p>
-<pre class="programlisting"><code class="computeroutput">BOOST_MIRRORED_TYPE</code>(::std::string) :: full_name()
- </pre>
+ type reflected by <code class="computeroutput">meta_type</code>
+ with the nested name specifier. For example:
+ </p>
+<pre class="programlisting"><code class="computeroutput"><a class="link" href="../../BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a></code>(::std::string) :: full_name()
+ </pre>
 <p> or
- </p>
+ </p>
 <pre class="programlisting"><code class="computeroutput">meta_type</code> &lt; ::std::string &gt; :: full_name()
- </pre>
+ </pre>
 <p>
- returns <code class="computeroutput">"::std::string"</code>. When the base type 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">"::std::string"</code>. When the base type 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 derived types like pointers, references, cv-qualified
- types, arrays etc. because the type name needs to be properly composed from
- the base type name, which may depending on the complexity of the type
- lead to multiple string concatenations. Subsequent calls to this member function
- for a concrete specialization of meta_type
- are usually much faster.
- </p></td>
+ for derived types like pointers, references, cv-qualified
+ types, arrays etc. because the type name needs to be properly composed from
+ the base type name, which may depending on the complexity of the type
+ lead to multiple string concatenations. Subsequent calls to this member function
+ for a concrete specialization of meta_type
+ are usually much faster.
+ </p></td>
 </tr></tbody>
 </table></div>
 <pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>bool</strong></span> FullName, <span class="bold"><strong>typename</strong></span> CharT&gt;
   <span class="type"><span class="bold"><strong>const</strong></span> ::std::basic_string&lt;CharT&gt;&amp;</span>
- <a name="id625789-bb"></a>get_name(::boost::mpl::bool_&lt;FullName&gt; full, ::std::char_traits&lt;CharT&gt; cht);</pre>
+ <a name="id491912-bb"></a>get_name(::boost::mpl::bool_&lt;FullName&gt; full, ::std::char_traits&lt;CharT&gt; 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 type reflected by this
- <code class="computeroutput">meta_type</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_TYPE</code>(::std::string) :: get_name(::boost::mpl::false_(), ::std::char_traits&lt;char&gt;())</pre>
+ <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 type reflected by this
+ <code class="computeroutput">meta_type</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"><a class="link" href="../../BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a></code>(::std::string) :: get_name(::boost::mpl::false_(), ::std::char_traits&lt;char&gt;())</pre>
 <p> or
- </p>
+ </p>
 <pre class="programlisting"><code class="computeroutput">meta_type</code> &lt; ::std::string &gt; :: get_name(::boost::mpl::false_(), ::std::char_traits&lt;char&gt;())</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> containing <code class="computeroutput">"string"</code> and calling
- </p>
-<pre class="programlisting"><code class="computeroutput">BOOST_MIRRORED_TYPE</code>(::std::string) :: get_name(::boost::mpl::true_(), ::std::char_traits&lt;wchar_t&gt;())</pre>
+ 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> containing <code class="computeroutput">"string"</code> and calling
+ </p>
+<pre class="programlisting"><code class="computeroutput"><a class="link" href="../../BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a></code>(::std::string) :: get_name(::boost::mpl::true_(), ::std::char_traits&lt;wchar_t&gt;())</pre>
 <p> or
- </p>
+ </p>
 <pre class="programlisting"><code class="computeroutput">meta_type</code> &lt; ::std::string &gt; :: get_name( ::boost::mpl::true_(), ::std::char_traits&lt;wchar_t&gt;())</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> containing <code class="computeroutput">L"::std::string"</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> containing <code class="computeroutput">L"::std::string"</code>.
+ </p>
 </div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
@@ -406,7 +406,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<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>
+<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="../../BOOST_MIRRORED_TYPE.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/mirror/doc/html/boost/mirror/reflects_class.html
==============================================================================
--- sandbox/mirror/doc/html/boost/mirror/reflects_class.html (original)
+++ sandbox/mirror/doc/html/boost/mirror/reflects_class.html 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -37,7 +37,7 @@
 <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="id675597"></a><h2>Description</h2>
+<a name="id711848"></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>

Modified: sandbox/mirror/doc/html/boost/mirror/reflects_global_scope.html
==============================================================================
--- sandbox/mirror/doc/html/boost/mirror/reflects_global_scope.html (original)
+++ sandbox/mirror/doc/html/boost/mirror/reflects_global_scope.html 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -38,7 +38,7 @@
 <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="id675252"></a><h2>Description</h2>
+<a name="id711503"></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>

Modified: sandbox/mirror/doc/html/boost/mirror/reflects_namespace.html
==============================================================================
--- sandbox/mirror/doc/html/boost/mirror/reflects_namespace.html (original)
+++ sandbox/mirror/doc/html/boost/mirror/reflects_namespace.html 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -37,7 +37,7 @@
 <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="id675080"></a><h2>Description</h2>
+<a name="id711331"></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>

Modified: sandbox/mirror/doc/html/boost/mirror/reflects_type.html
==============================================================================
--- sandbox/mirror/doc/html/boost/mirror/reflects_type.html (original)
+++ sandbox/mirror/doc/html/boost/mirror/reflects_type.html 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -37,7 +37,7 @@
 <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="id675427"></a><h2>Description</h2>
+<a name="id711678"></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>

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 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -33,7 +33,7 @@
 </div></div>
 <div><p class="copyright">Copyright © 2008 Matú&#353; Chochlík</p></div>
 <div><div class="legalnotice">
-<a name="id675911"></a><p>Use, modification and distribution is subject to the Boost
+<a name="id712162"></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>

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 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -9,6 +9,10 @@
 BOOST_MIRRORED_NAMESPACE.html
 BOOST_MIRRORED_GLOBAL_SCOPE.html
 boost/mirror/meta_type.html
+BOOST_MIRRORED_TYPE.html
+BOOST_MIRRORED_TYPE_NS.html
+BOOST_MIRRORED_TYPEDEF.html
+BOOST_MIRRORED_TYPEOF.html
 boost/mirror/meta_class.html
 boost/mirror/reflects_namespace.html
 boost/mirror/reflects_global_scope.html

Modified: sandbox/mirror/doc/html/index.html
==============================================================================
--- sandbox/mirror/doc/html/index.html (original)
+++ sandbox/mirror/doc/html/index.html 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -21,7 +21,7 @@
 <div class="book" lang="en">
 <div class="titlepage">
 <div><div><h1 class="title">
-<a name="id568709"></a>The Mirror library documentation</h1></div></div>
+<a name="id603662"></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 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -34,7 +34,7 @@
 </div></div>
 <div><p class="copyright">Copyright © 2008 Matú&#353; Chochlík</p></div>
 <div><div class="legalnotice">
-<a name="id670193"></a><p>Use, modification and distribution is subject to the Boost
+<a name="id705145"></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">Meta Objects</span></dt>
-<dt><span class="section">Traits</span></dt>
-<dt><span class="section">Header files</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>
@@ -313,7 +313,7 @@
         // The BOOST_MIRRORED_TYPE macro expands into
         // the proper specialization of meta_type
         // reflecting the passed type
- return BOOST_MIRRORED_TYPE(T)::full_name().c_str();
+ return <code class="computeroutput"><a class="link" href="BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a></code>(T)::full_name().c_str();
 }
 
 </pre>

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 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -26,19 +26,19 @@
 <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">Meta Objects</span></dt>
-<dt><span class="section">Traits</span></dt>
-<dt><span class="section">Header files</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="id670573"></a>Meta Objects</h3></div></div></div></div>
+<a name="id705533"></a>Meta Objects</h3></div></div></div></div>
 <div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="id670580"></a>Traits</h3></div></div></div></div>
+<a name="id705540"></a>Traits</h3></div></div></div></div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="id670588"></a>Header files</h3></div></div></div>
+<a name="id705547"></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>
@@ -67,6 +67,12 @@
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="header.boost.mirror.meta_type.hpp"></a>Header &lt;boost/mirror/meta_type.hpp&gt;</h4></div></div></div>
+<pre class="synopsis">
+
+<a class="link" href="../BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a>(TYPE)
+<a class="link" href="../BOOST_MIRRORED_TYPE_NS.html" title="Macro BOOST_MIRRORED_TYPE_NS">BOOST_MIRRORED_TYPE_NS</a>(FULL_NAMESPACE_NAME, TYPE)
+<a class="link" href="../BOOST_MIRRORED_TYPEDEF.html" title="Macro BOOST_MIRRORED_TYPEDEF">BOOST_MIRRORED_TYPEDEF</a>(FULL_NAMESPACE_NAME, TYPEDEF)
+<a class="link" href="../BOOST_MIRRORED_TYPEOF.html" title="Macro BOOST_MIRRORED_TYPEOF">BOOST_MIRRORED_TYPEOF</a>(EXPRESSION)</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>&lt;<span class="bold"><strong>typename</strong></span> Type&gt; <span class="bold"><strong>class</strong></span> <a class="link" href="../boost/mirror/meta_type.html" title="Class template meta_type">meta_type</a>;

Modified: sandbox/mirror/libs/mirror/doc/reference/class_meta_namespace.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/reference/class_meta_namespace.xml (original)
+++ sandbox/mirror/libs/mirror/doc/reference/class_meta_namespace.xml 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -128,7 +128,7 @@
                         <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><macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::boost::mirror) :: full_name()
                         </programlisting>
                         returns <code>"::boost::mirror"</code>. When the base namespace name
                         <emphasis role="bold">without</emphasis> the nested name specifier
@@ -170,12 +170,12 @@
                         <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&lt;char&gt;())
+ <programlisting><macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::boost::mirror) :: get_name(::boost::mpl::false_(), ::std::char_traits&lt;char&gt;())
                         </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&lt;wchar_t&gt;())
+ <programlisting><macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::boost::mirror) :: get_name(::boost::mpl::true_(), ::std::char_traits&lt;wchar_t&gt;())
                         </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,

Added: sandbox/mirror/libs/mirror/doc/reference/class_meta_type.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/libs/mirror/doc/reference/class_meta_type.xml 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,196 @@
+<?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_type">
+ <template>
+ <template-type-parameter name="Type"/>
+ </template>
+ <purpose>
+ <para>The purpose of this class template is to provide meta-data
+ about the reflected type, especially to allow to get the
+ base and full type name of the reflected type and to
+ get information about the scope inside of which this type
+ has been declared.
+ </para>
+ <para>Although the specializations of <code><classname>meta_type</classname></code>
+ template can be used directly to get the meta data about a particular type,
+ it is recomended to use the reflection macros like
+ <code><macroname>BOOST_MIRRORED_TYPE</macroname>(TYPE)</code> or
+ <code><macroname>BOOST_MIRRORED_TYPEOF</macroname>(EXPR)</code>
+ instead, to get the proper specializations of
+ <code><classname>meta_type</classname></code>.
+ </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_type.reference.samples">
+ <section id="mirror.meta_type.reference.sample01">
+ <title>Example - Basic usage</title>
+ <para>This sample code shows how to reflect a type and how to get its full type name.
+ Since various instances of <code>::std::pair</code> are reflected,
+ the <code><classname>meta_type</classname></code>s for this template need to be
+ included.
+ </para>
+ <xi:include href="../samples/usage_meta_type_01.xml"/>
+ </section>
+ <section id="mirror.meta_type.reference.sample02">
+ <title>Example - Using with typeof and getting scope-related information</title>
+ <para>The following example shows cooperation with the <libraryname>Typeof</libraryname>
+ library and scope-related operations.
+ </para>
+ <xi:include href="../samples/usage_meta_type_02.xml"/>
+ </section>
+ <section id="mirror.meta_type.reference.sample03">
+ <title>Example - Reflection of <code>typedef</code>-ined types</title>
+ <para>The next example shows how to reflect <code>typedef</code>-ined
+ types. This is useful when the info about the name and the scope of the <code>typedef</code>
+ is required instead of the meta-information about the "source" type.
+ However, the usage shown in this example is not very common. The full utility becomes obvious
+ only when the <code><classname>meta_type</classname></code> is part of
+ some other meta-structure like for example with <code>typedef</code>'d class member attributes.
+ </para>
+ <para>Mirror comes with several pre-registered <code>typedef</code>s. If user-defined
+ <code>typedef</code>s are to be reflected they need to be registered first.
+ </para>
+ <xi:include href="../samples/usage_meta_type_03.xml"/>
+ </section>
+ <section id="mirror.meta_type.reference.sample04">
+ <title>Example - Generic typename getter</title>
+ <para>The <code><methodname>base_name</methodname></code> and the
+ <code><methodname>full_name</methodname></code> member functions
+ are convenient but not very generic. The <code><methodname>get_name</methodname></code>
+ method allows to specify the character type of the returned string and
+ to specify wheter a full or just the base 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_type_04.xml"/>
+ </section>
+ </section>
+ </description>
+
+ <access name="public">
+ <typedef name="reflected_type">
+ <type>Type</type>
+ <purpose>The reflected type</purpose>
+ <description>
+ <para>The type reflected by this overload of <code><classname>meta_type</classname></code>.
+ </para>
+ </description>
+ </typedef>
+ <typedef name="scope">
+ <type><emphasis>unspecified</emphasis></type>
+ <purpose>Meta-object describing the scope where Type is defined</purpose>
+ <description>
+ <para>A meta-object describing the scope in which the reflected type
+ is defined. Depending on where the type has been defined <code>scope</code>
+ can be either a specialization of <code><classname>meta_namespace</classname></code>
+ or a specialization of <code><classname>meta_class</classname></code>.
+ </para>
+ </description>
+ </typedef>
+ <method name="base_name">
+ <type>const <classname>cts::bstring</classname>&amp;</type>
+ <purpose>
+ <para>This static member function returns the base name of the
+ type reflected by <code><classname>meta_type</classname></code>
+ without the nested name specifier. For example:
+ <programlisting><macroname>BOOST_MIRRORED_TYPE</macroname>(::std::string) :: base_name()
+ </programlisting> or
+ <programlisting><classname>meta_type</classname> &lt; ::std::string &gt; :: base_name()
+ </programlisting>
+ returns simply <code>"string"</code>. When a full type name
+ <emphasis role="bold">with</emphasis> the nested name specifier
+ is needed use the <methodname>full_name</methodname> member function
+ instead.</para>
+ </purpose>
+ <notes>
+ <para>The first call to this function can be expensive
+ for derived types like pointers, references, cv-qualified
+ types, arrays etc. because the type name needs to be properly composed from
+ the base type name, which may depending on the complexity of the type
+ lead to multiple string concatenations. Subsequent calls to this member function
+ for a concrete specialization of <classname>meta_type</classname>
+ are usually much faster.
+ </para>
+ </notes>
+ </method>
+ <method name="full_name">
+ <type>const <classname>cts::bstring</classname>&amp;</type>
+ <purpose>
+ <para>This static member function returns the full name of the
+ type reflected by <code><classname>meta_type</classname></code>
+ with the nested name specifier. For example:
+ <programlisting><macroname>BOOST_MIRRORED_TYPE</macroname>(::std::string) :: full_name()
+ </programlisting> or
+ <programlisting><classname>meta_type</classname> &lt; ::std::string &gt; :: full_name()
+ </programlisting>
+ returns <code>"::std::string"</code>. When the base type 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 derived types like pointers, references, cv-qualified
+ types, arrays etc. because the type name needs to be properly composed from
+ the base type name, which may depending on the complexity of the type
+ lead to multiple string concatenations. Subsequent calls to this member function
+ for a concrete specialization of <classname>meta_type</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&lt;CharT&gt;</classname>&amp;</type>
+ <parameter name="full">
+ <paramtype>::boost::mpl::bool_&lt;FullName&gt;</paramtype>
+ </parameter>
+ <parameter name="cht">
+ <paramtype>::std::char_traits&lt;CharT&gt;</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 type reflected by this
+ <code><classname>meta_type</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><macroname>BOOST_MIRRORED_TYPE</macroname>(::std::string) :: get_name(::boost::mpl::false_(), ::std::char_traits&lt;char&gt;())</programlisting> or
+ <programlisting><classname>meta_type</classname> &lt; ::std::string &gt; :: get_name(::boost::mpl::false_(), ::std::char_traits&lt;char&gt;())</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> containing <code>"string"</code> and calling
+ <programlisting><macroname>BOOST_MIRRORED_TYPE</macroname>(::std::string) :: get_name(::boost::mpl::true_(), ::std::char_traits&lt;wchar_t&gt;())</programlisting> or
+ <programlisting><classname>meta_type</classname> &lt; ::std::string &gt; :: get_name( ::boost::mpl::true_(), ::std::char_traits&lt;wchar_t&gt;())</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> containing <code>L"::std::string"</code>.
+ </para>
+ </purpose>
+ </method>
+ </access>
+</class>

Added: sandbox/mirror/libs/mirror/doc/reference/macro_RFL_TYPE.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/libs/mirror/doc/reference/macro_RFL_TYPE.xml 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,49 @@
+<?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_TYPE" kind="functionlike">
+ <macro-parameter name="TYPE"/>
+ <purpose>
+ <para>This macro is used to reflect a type and expands into a specialization
+ of the <code><classname>meta_type</classname></code> template, which provides
+ meta-data about the reflected type.
+ To reflect a <code>typedef</code>-ined type use the
+ <code><macroname>BOOST_MIRRORED_TYPEDEF</macroname></code> macro.
+ To reflect the type of an expression use the
+ <code><macroname>BOOST_MIRRORED_TYPEOF</macroname></code> macro.
+ </para>
+ </purpose>
+ <description>
+ <para>The <code><macroname>BOOST_MIRRORED_TYPE</macroname></code> macro reflects a type
+ previously registered with the <libraryname>Mirror</libraryname> library or a type derived
+ from a registered type. The argument of this macro is a type.
+ </para>
+ <section id="mirror.RFL_TYPE.reference.samples">
+ <title>Examples</title>
+ <section id="mirror.RFL_TYPE.reference.samples.simple">
+ <title>Basic usage</title>
+<programlisting>
+<macroname>BOOST_MIRRORED_TYPE</macroname>(int)::base_name();
+</programlisting>
+<programlisting>
+BOOST_MPL_ASSERT((
+ <classname>reflects_global_scope</classname>&lt;
+ <macroname>BOOST_MIRRORED_TYPE</macroname>(int)::scope
+ &gt;
+));
+</programlisting>
+<programlisting>
+BOOST_MPL_ASSERT_NOT((
+ <classname>reflects_global_scope</classname>&lt;
+ <macroname>BOOST_MIRRORED_TYPE</macroname>(::std::string)::scope
+ &gt;
+));
+</programlisting>
+<programlisting>
+<macroname>BOOST_MIRRORED_TYPE</macroname>(::std::wstring)::scope::full_name();
+</programlisting>
+ </section>
+
+ </section>
+ </description>
+</macro>

Added: sandbox/mirror/libs/mirror/doc/reference/macro_RFL_TYPEDEF.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/libs/mirror/doc/reference/macro_RFL_TYPEDEF.xml 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,92 @@
+<?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_TYPEDEF" kind="functionlike">
+ <macro-parameter name="FULL_NAMESPACE_NAME"/>
+ <macro-parameter name="TYPEDEF"/>
+ <purpose>
+ <para>This macro is used to reflect a <code>typedef</code>-ined type and expands into a specialization
+ of the <code><classname>meta_type</classname></code> template, which provides
+ meta-data about the reflected type.
+ To reflect a base type (not a <code>typedef</code>-ined) use the
+ <code><macroname>BOOST_MIRRORED_TYPE</macroname></code> macro.
+ To reflect the type of an expression use the
+ <code><macroname>BOOST_MIRRORED_TYPEOF</macroname></code> macro.
+ </para>
+ </purpose>
+ <description>
+ <para>The <code><macroname>BOOST_MIRRORED_TYPEDEF</macroname></code> macro reflects a type
+ that is registered with the <libraryname>Mirror</libraryname> library as a <code>typedef</code>-ined
+ type.
+ The difference between this macro and the <code><macroname>BOOST_MIRRORED_TYPE</macroname></code> macro
+ is, that <code><macroname>BOOST_MIRRORED_TYPEDEF</macroname></code> returns a <code><classname>meta_type</classname></code>
+ specialization which is aware of the <code>typedef</code>-ined name and the scope in which the type is
+ <code>typedef</code>'d. For example the <code>size_t</code> is a <code>typedef</code> from the <code>::std</code> namespace
+ and is usually defined as
+<programlisting>
+namespace std {
+typedef unsigned int size_t;
+} // namespace std
+</programlisting>
+ or
+<programlisting>
+namespace std {
+typedef unsigned long size_t;
+} // namespace std
+</programlisting>
+ the <code><methodname>full_name</methodname></code> function called on <classname>meta_type</classname>
+ expanded from <macroname>BOOST_MIRRORED_TYPEDEF</macroname>
+<programlisting>
+ <macroname>BOOST_MIRRORED_TYPEDEF</macroname>(::std, size_t)::full_name()
+</programlisting>
+ returns <code>"::std::size_t"</code>, while calling
+<programlisting>
+ <macroname>BOOST_MIRRORED_TYPE_NS</macroname>(::std, size_t)::full_name()
+</programlisting>
+ or
+<programlisting>
+ <macroname>BOOST_MIRRORED_TYPE</macroname>(::std::size_t)::full_name()
+</programlisting>
+ returns <code>"unsigned int"</code> or <code>"unsigned long"</code>.
+ </para>
+ <section id="mirror.RFL_TYPEDEF.reference.samples">
+ <title>Examples</title>
+ <section id="mirror.RFL_TYPEDEF.reference.samples.simple">
+ <title>Basic usage</title>
+<programlisting>
+<macroname>BOOST_MIRRORED_TYPEDEF</macroname>(::boost::cts, bstring)::base_name();
+</programlisting>
+<programlisting>
+BOOST_MPL_ASSERT((
+ <classname>reflects_global_scope</classname>&lt;
+ <macroname>BOOST_MIRRORED_TYPEDEF</macroname>(::std, size_t)::scope::scope
+ &gt;
+));
+</programlisting>
+<programlisting>
+BOOST_MPL_ASSERT_NOT((
+ <classname>reflects_global_scope</classname>&lt;
+ <macroname>BOOST_MIRRORED_TYPEDEF</macroname>(::boost::cts, bstring)::scope
+ &gt;
+));
+</programlisting>
+<programlisting>
+<macroname>BOOST_MIRRORED_TYPEDEF</macroname>(::boost::cts, bstring)::scope::full_name();
+</programlisting>
+<programlisting>
+assert(
+ <macroname>BOOST_MIRRORED_TYPEDEF</macroname>(::std, size_t)::full_name() !=
+ <macroname>BOOST_MIRRORED_TYPE</macroname>(::std::size_t)::full_name()
+);
+</programlisting>
+<programlisting>
+assert(
+ <macroname>BOOST_MIRRORED_TYPEDEF</macroname>(::boost::cts, bstring)::full_name() !=
+ <macroname>BOOST_MIRRORED_TYPE_NS</macroname>(::boost::cts, bstring)::full_name()
+);
+</programlisting>
+ </section>
+
+ </section>
+ </description>
+</macro>

Added: sandbox/mirror/libs/mirror/doc/reference/macro_RFL_TYPEOF.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/libs/mirror/doc/reference/macro_RFL_TYPEOF.xml 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,29 @@
+<?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_TYPEOF" kind="functionlike">
+ <macro-parameter name="EXPRESSION"/>
+ <purpose>
+ <para>This macro is used to reflect the type of an expression.
+ </para>
+ </purpose>
+ <description>
+ This macro is basically just a shorter form of
+<programlisting>
+ <macroname>BOOST_MIRRORED_TYPE</macroname>(BOOST_TYPEOF(EXPRESSION))
+</programlisting>
+ <section id="mirror.RFL_TYPEOF.reference.samples">
+ <title>Examples</title>
+<programlisting>
+ <macroname>BOOST_MIRRORED_TYPEOF</macroname>(1+1)::base_name();
+</programlisting>
+<programlisting>
+BOOST_MPL_ASSERT((
+ <classname>reflects_global_scope</classname>&lt;
+ <macroname>BOOST_MIRRORED_TYPEOF</macroname>(1.0+1.0)::scope
+ &gt;
+));
+</programlisting>
+ </section>
+ </description>
+</macro>

Added: sandbox/mirror/libs/mirror/doc/reference/macro_RFL_TYPE_NS.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/libs/mirror/doc/reference/macro_RFL_TYPE_NS.xml 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -0,0 +1,44 @@
+<?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_TYPE_NS" kind="functionlike">
+ <macro-parameter name="FULL_NAMESPACE_NAME"/>
+ <macro-parameter name="TYPE"/>
+ <purpose>
+ <para>This macro is a variation of the
+ <code><macroname>BOOST_MIRRORED_TYPE</macroname></code> macro, which
+ takes the name of the type split into two arguments the full namespace
+ name and the base type name.
+ </para>
+ </purpose>
+ <description>
+ <para><code><macroname>BOOST_MIRRORED_TYPE_NS</macroname>(NAMESPACE, TYPE)</code>
+ is equivalent to <code><macroname>BOOST_MIRRORED_TYPE</macroname>(NAMESPACE :: TYPE)</code>.
+ </para>
+ <section id="mirror.RFL_TYPE_NS.reference.samples">
+ <title>Examples</title>
+<programlisting>
+<macroname>BOOST_MIRRORED_TYPE_NS</macroname>(::std, string)::base_name();
+</programlisting>
+<programlisting>
+BOOST_MPL_ASSERT_NOT((
+ <classname>reflects_global_scope</classname>&lt;
+ <macroname>BOOST_MIRRORED_TYPE_NS</macroname>(::std, string)::scope
+ &gt;
+));
+</programlisting>
+<programlisting>
+assert(
+ <macroname>BOOST_MIRRORED_TYPE</macroname>(::std::wstring)::full_name() ==
+ <macroname>BOOST_MIRRORED_TYPE_NS</macroname>(::std, wstring)::full_name()
+);
+</programlisting>
+<programlisting>
+assert(
+ <macroname>BOOST_MIRRORED_TYPEDEF</macroname>(::boost::cts, bstring)::full_name() !=
+ <macroname>BOOST_MIRRORED_TYPE_NS</macroname>(::boost::cts, bstring)::full_name()
+);
+</programlisting>
+ </section>
+ </description>
+</macro>

Modified: sandbox/mirror/libs/mirror/doc/reference/meta_type.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/reference/meta_type.xml (original)
+++ sandbox/mirror/libs/mirror/doc/reference/meta_type.xml 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -4,199 +4,15 @@
 <header name="boost/mirror/meta_type.hpp">
         <namespace name="boost">
         <namespace name="mirror">
- <class name="meta_type">
- <template>
- <template-type-parameter name="Type"/>
- </template>
- <purpose>
- <para>The purpose of this class template is to provide meta-data
- about the reflected type, especially to allow to get the
- base and full type name of the reflected type and to
- get information about the scope inside of which this type
- has been declared.
- </para>
- <para>Although the specializations of <code><classname>meta_type</classname></code>
- template can be used directly to get the meta data about a particular type,
- it is recomended to use the reflection macros like
- <code><macroname>BOOST_MIRRORED_TYPE</macroname>(TYPE)</code> or
- <code><macroname>BOOST_MIRRORED_TYPEOF</macroname>(EXPR)</code>
- instead, to get the proper specializations of
- <code><classname>meta_type</classname></code>.
- </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_type.reference.samples">
- <section id="mirror.meta_type.reference.sample01">
- <title>Example - Basic usage</title>
- <para>This sample code shows how to reflect a type and how to get its full type name.
- Since various instances of <code>::std::pair</code> are reflected,
- the <code><classname>meta_type</classname></code>s for this template need to be
- included.
- </para>
- <xi:include href="../samples/usage_meta_type_01.xml"/>
- </section>
- <section id="mirror.meta_type.reference.sample02">
- <title>Example - Using with typeof and getting scope-related information</title>
- <para>The following example shows cooperation with the <libraryname>Typeof</libraryname>
- library and scope-related operations.
- </para>
- <xi:include href="../samples/usage_meta_type_02.xml"/>
- </section>
- <section id="mirror.meta_type.reference.sample03">
- <title>Example - Reflection of <code>typedef</code>-ined types</title>
- <para>The next example shows how to reflect <code>typedef</code>-ined
- types. This is useful when the info about the name and the scope of the <code>typedef</code>
- is required instead of the meta-information about the "source" type.
- However, the usage shown in this example is not very common. The full utility becomes obvious
- only when the <code><classname>meta_type</classname></code> is part of
- some other meta-structure like for example with <code>typedef</code>'d class member attributes.
- </para>
- <para>Mirror comes with several pre-registered <code>typedef</code>s. If user-defined
- <code>typedef</code>s are to be reflected they need to be registered first.
- </para>
- <xi:include href="../samples/usage_meta_type_03.xml"/>
- </section>
- <section id="mirror.meta_type.reference.sample04">
- <title>Example - Generic typename getter</title>
- <para>The <code><methodname>base_name</methodname></code> and the
- <code><methodname>full_name</methodname></code> member functions
- are convenient but not very generic. The <code><methodname>get_name</methodname></code>
- method allows to specify the character type of the returned string and
- to specify wheter a full or just the base 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_type_04.xml"/>
- </section>
- </section>
- </description>
 
- <access name="public">
- <typedef name="reflected_type">
- <type>Type</type>
- <purpose>The reflected type</purpose>
- <description>
- <para>The type reflected by this overload of <code><classname>meta_type</classname></code>.
- </para>
- </description>
- </typedef>
- <typedef name="scope">
- <type><emphasis>unspecified</emphasis></type>
- <purpose>Meta-object describing the scope where Type is defined</purpose>
- <description>
- <para>A meta-object describing the scope in which the reflected type
- is defined. Depending on where the type has been defined <code>scope</code>
- can be either a specialization of <code><classname>meta_namespace</classname></code>
- or a specialization of <code><classname>meta_class</classname></code>.
- </para>
- </description>
- </typedef>
- <method name="base_name">
- <type>const <classname>cts::bstring</classname>&amp;</type>
- <purpose>
- <para>This static member function returns the base name of the
- type reflected by <code><classname>meta_type</classname></code>
- without the nested name specifier. For example:
- <programlisting><macroname>BOOST_MIRRORED_TYPE</macroname>(::std::string) :: base_name()
- </programlisting> or
- <programlisting><classname>meta_type</classname> &lt; ::std::string &gt; :: base_name()
- </programlisting>
- returns simply <code>"string"</code>. When a full type name
- <emphasis role="bold">with</emphasis> the nested name specifier
- is needed use the <methodname>full_name</methodname> member function
- instead.</para>
- </purpose>
- <notes>
- <para>The first call to this function can be expensive
- for derived types like pointers, references, cv-qualified
- types, arrays etc. because the type name needs to be properly composed from
- the base type name, which may depending on the complexity of the type
- lead to multiple string concatenations. Subsequent calls to this member function
- for a concrete specialization of <classname>meta_type</classname>
- are usually much faster.
- </para>
- </notes>
- </method>
- <method name="full_name">
- <type>const <classname>cts::bstring</classname>&amp;</type>
- <purpose>
- <para>This static member function returns the full name of the
- type reflected by <code><classname>meta_type</classname></code>
- with the nested name specifier. For example:
- <programlisting><macroname>BOOST_MIRRORED_TYPE</macroname>(::std::string) :: full_name()
- </programlisting> or
- <programlisting><classname>meta_type</classname> &lt; ::std::string &gt; :: full_name()
- </programlisting>
- returns <code>"::std::string"</code>. When the base type 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 derived types like pointers, references, cv-qualified
- types, arrays etc. because the type name needs to be properly composed from
- the base type name, which may depending on the complexity of the type
- lead to multiple string concatenations. Subsequent calls to this member function
- for a concrete specialization of <classname>meta_type</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&lt;CharT&gt;</classname>&amp;</type>
- <parameter name="full">
- <paramtype>::boost::mpl::bool_&lt;FullName&gt;</paramtype>
- </parameter>
- <parameter name="cht">
- <paramtype>::std::char_traits&lt;CharT&gt;</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 type reflected by this
- <code><classname>meta_type</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><macroname>BOOST_MIRRORED_TYPE</macroname>(::std::string) :: get_name(::boost::mpl::false_(), ::std::char_traits&lt;char&gt;())</programlisting> or
- <programlisting><classname>meta_type</classname> &lt; ::std::string &gt; :: get_name(::boost::mpl::false_(), ::std::char_traits&lt;char&gt;())</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> containing <code>"string"</code> and calling
- <programlisting><macroname>BOOST_MIRRORED_TYPE</macroname>(::std::string) :: get_name(::boost::mpl::true_(), ::std::char_traits&lt;wchar_t&gt;())</programlisting> or
- <programlisting><classname>meta_type</classname> &lt; ::std::string &gt; :: get_name( ::boost::mpl::true_(), ::std::char_traits&lt;wchar_t&gt;())</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> containing <code>L"::std::string"</code>.
- </para>
- </purpose>
- </method>
- </access>
- </class>
+ <xi:include href="class_meta_type.xml"/>
+
         </namespace><!-- mirror -->
         </namespace><!-- boost -->
+
+ <!-- macros -->
+ <xi:include href="macro_RFL_TYPE.xml"/>
+ <xi:include href="macro_RFL_TYPE_NS.xml"/>
+ <xi:include href="macro_RFL_TYPEDEF.xml"/>
+ <xi:include href="macro_RFL_TYPEOF.xml"/>
 </header>

Modified: sandbox/mirror/libs/mirror/doc/samples/meta_namespace_ancestors_01.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/samples/meta_namespace_ancestors_01.xml (original)
+++ sandbox/mirror/libs/mirror/doc/samples/meta_namespace_ancestors_01.xml 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -8,7 +8,7 @@
 BOOST_MPL_ASSERT((
         reflects_global_scope &lt;
                 mpl::front &lt;
- BOOST_MIRRORED_NAMESPACE(::std)::ancestors
+ <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::std)::ancestors
                 &gt;
         &gt;
 ));
@@ -16,7 +16,7 @@
 BOOST_MPL_ASSERT((
         reflects_global_scope &lt;
                 mpl::front &lt;
- BOOST_MIRRORED_NAMESPACE(::boost::mirror)::ancestors
+ <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::boost::mirror)::ancestors
                 &gt;
         &gt;
 ));
@@ -24,9 +24,9 @@
 BOOST_MPL_ASSERT((
         is_same &lt;
                 mpl::back &lt;
- BOOST_MIRRORED_NAMESPACE(::boost::mirror)::ancestors
+ <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::boost::mirror)::ancestors
                 &gt;,
- BOOST_MIRRORED_NAMESPACE(::boost::mirror)::scope
+ <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::boost::mirror)::scope
         &gt;
 ));
 </programlisting>

Modified: sandbox/mirror/libs/mirror/doc/samples/meta_namespace_ancestors_02.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/samples/meta_namespace_ancestors_02.xml (original)
+++ sandbox/mirror/libs/mirror/doc/samples/meta_namespace_ancestors_02.xml 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -4,7 +4,7 @@
 <programlisting id="mirror.reference.sample.meta_namespace.ancestors02">
 BOOST_MPL_ASSERT((
         mpl::empty &lt;
- BOOST_MIRRORED_GLOBAL_SCOPE()::ancestors
+ <macroname>BOOST_MIRRORED_GLOBAL_SCOPE</macroname>()::ancestors
         &gt;
 ));
 

Modified: sandbox/mirror/libs/mirror/doc/samples/typenames_naive_mirror.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/samples/typenames_naive_mirror.xml (original)
+++ sandbox/mirror/libs/mirror/doc/samples/typenames_naive_mirror.xml 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -10,7 +10,7 @@
         // The BOOST_MIRRORED_TYPE macro expands into
         // the proper specialization of meta_type
         // reflecting the passed type
- return BOOST_MIRRORED_TYPE(T)::full_name().c_str();
+ return <macroname>BOOST_MIRRORED_TYPE</macroname>(T)::full_name().c_str();
 }
 
 </programlisting>

Modified: sandbox/mirror/libs/mirror/doc/samples/usage_meta_namespace_01.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/samples/usage_meta_namespace_01.xml (original)
+++ sandbox/mirror/libs/mirror/doc/samples/usage_meta_namespace_01.xml 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -13,15 +13,15 @@
         cts::bostream&amp; bcout = cts::bcout();
 
         // several namespaces are pre-registered
- bcout &lt;&lt; BOOST_MIRRORED_GLOBAL_SCOPE() ::base_name() &lt;&lt; endl;
- bcout &lt;&lt; BOOST_MIRRORED_NAMESPACE(::std) ::base_name() &lt;&lt; endl;
- bcout &lt;&lt; BOOST_MIRRORED_NAMESPACE(::boost) ::base_name() &lt;&lt; endl;
- bcout &lt;&lt; BOOST_MIRRORED_NAMESPACE(::boost::mirror) ::base_name() &lt;&lt; endl;
+ bcout &lt;&lt; <macroname>BOOST_MIRRORED_GLOBAL_SCOPE</macroname>() ::base_name() &lt;&lt; endl;
+ bcout &lt;&lt; <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::std) ::base_name() &lt;&lt; endl;
+ bcout &lt;&lt; <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::boost) ::base_name() &lt;&lt; endl;
+ bcout &lt;&lt; <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::boost::mirror) ::base_name() &lt;&lt; endl;
         //
- bcout &lt;&lt; BOOST_MIRRORED_GLOBAL_SCOPE() ::full_name() &lt;&lt; endl;
- bcout &lt;&lt; BOOST_MIRRORED_NAMESPACE(::std) ::full_name() &lt;&lt; endl;
- bcout &lt;&lt; BOOST_MIRRORED_NAMESPACE(::boost) ::full_name() &lt;&lt; endl;
- bcout &lt;&lt; BOOST_MIRRORED_NAMESPACE(::boost::mirror) ::full_name() &lt;&lt; endl;
+ bcout &lt;&lt; <macroname>BOOST_MIRRORED_GLOBAL_SCOPE</macroname>() ::full_name() &lt;&lt; endl;
+ bcout &lt;&lt; <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::std) ::full_name() &lt;&lt; endl;
+ bcout &lt;&lt; <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::boost) ::full_name() &lt;&lt; endl;
+ bcout &lt;&lt; <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::boost::mirror) ::full_name() &lt;&lt; endl;
 
         return 0;
 }

Modified: sandbox/mirror/libs/mirror/doc/samples/usage_meta_namespace_02.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/samples/usage_meta_namespace_02.xml (original)
+++ sandbox/mirror/libs/mirror/doc/samples/usage_meta_namespace_02.xml 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -37,7 +37,7 @@
         using namespace ::boost::mirror;
         cts::bostream&amp; bcout = cts::bcout();
         //
- typedef BOOST_MIRRORED_NAMESPACE(::boost::mirror) meta_boost_mirror;
+ typedef <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::boost::mirror) meta_boost_mirror;
         //
         // get the full name of the parent scope of the reflected namespace
         bcout &lt;&lt; meta_boost_mirror::scope::full_name() &lt;&lt; endl;

Modified: sandbox/mirror/libs/mirror/doc/samples/usage_meta_namespace_03.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/samples/usage_meta_namespace_03.xml (original)
+++ sandbox/mirror/libs/mirror/doc/samples/usage_meta_namespace_03.xml 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -24,7 +24,7 @@
 {
         using namespace ::std;
         //
- typedef BOOST_MIRRORED_NAMESPACE(::boost::mirror) meta_Ns;
+ typedef <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::boost::mirror) meta_Ns;
         meta_Ns mns;
         //
         cout &lt;&lt; mns &lt;&lt; endl;

Modified: sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_01.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_01.xml (original)
+++ sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_01.xml 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -20,7 +20,7 @@
         typedef T4 (T)(const T1&amp;, T2, volatile T3*);
         
         // reflect it using mirror
- typedef BOOST_MIRRORED_TYPE(T) meta_T;
+ typedef <macroname>BOOST_MIRRORED_TYPE</macroname>(T) meta_T;
 
         // print out the full type name
         cts::bcout() &lt;&lt;

Modified: sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_02.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_02.xml (original)
+++ sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_02.xml 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -50,16 +50,16 @@
 
         // reflect the type of an expression
         // and print the meta-data
- print_meta_data&lt; BOOST_MIRRORED_TYPEOF(1+2) &gt;();
- print_meta_data&lt; BOOST_MIRRORED_TYPEOF(1.0+2.0) &gt;();
- print_meta_data&lt; BOOST_MIRRORED_TYPEOF("1" "+" "2") &gt;();
- print_meta_data&lt; BOOST_MIRRORED_TYPEOF(string("1")+string("2")) &gt;();
+ print_meta_data&lt; <macroname>BOOST_MIRRORED_TYPEOF</macroname>(1+2) &gt;();
+ print_meta_data&lt; <macroname>BOOST_MIRRORED_TYPEOF</macroname>(1.0+2.0) &gt;();
+ print_meta_data&lt; <macroname>BOOST_MIRRORED_TYPEOF</macroname>("1" "+" "2") &gt;();
+ print_meta_data&lt; <macroname>BOOST_MIRRORED_TYPEOF</macroname>(string("1")+string("2")) &gt;();
 
         // BOOST_MIRRORED_TYPEOF is actually a shorter form of this:
- print_meta_data&lt; BOOST_MIRRORED_TYPE(
+ print_meta_data&lt; <macroname>BOOST_MIRRORED_TYPE</macroname>(
                 BOOST_TYPEOF(L"1" L"+" L"2")
         ) &gt;();
- print_meta_data&lt; BOOST_MIRRORED_TYPE(
+ print_meta_data&lt; <macroname>BOOST_MIRRORED_TYPE</macroname>(
                 BOOST_TYPEOF(wstring(L"1")+wstring(L"2"))
         ) &gt;();
 

Modified: sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_03.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_03.xml (original)
+++ sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_03.xml 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -25,17 +25,17 @@
         using namespace ::boost::mirror;
         //
         // the first arg is the namespace the second the typedefined type
- typedef BOOST_MIRRORED_TYPEDEF(::boost::cts, bstring) meta_bstring_td;
+ typedef <macroname>BOOST_MIRRORED_TYPEDEF</macroname>(::boost::cts, bstring) meta_bstring_td;
         // reflection of the "source" type
- typedef BOOST_MIRRORED_TYPE(::boost::cts::bstring) meta_bstring;
+ typedef <macroname>BOOST_MIRRORED_TYPE</macroname>(::boost::cts::bstring) meta_bstring;
         //
         print_meta_data&lt; meta_bstring_td &gt;();
         print_meta_data&lt; meta_bstring &gt;();
         //
- print_meta_data&lt; BOOST_MIRRORED_TYPEDEF(::std, size_t) &gt;();
+ print_meta_data&lt; <macroname>BOOST_MIRRORED_TYPEDEF</macroname>(::std, size_t) &gt;();
         // this is another version of the BOOST_MIRRORED_TYPE macro
         // that gets the namespace and the type as two separate args
- print_meta_data&lt; BOOST_MIRRORED_TYPE_NS(::std, size_t) &gt;();
+ print_meta_data&lt; <macroname>BOOST_MIRRORED_TYPE_NS</macroname>(::std, size_t) &gt;();
         //
 
         return 0;

Modified: sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_04.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_04.xml (original)
+++ sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_04.xml 2008-07-18 11:07:40 EDT (Fri, 18 Jul 2008)
@@ -24,7 +24,7 @@
 {
         using namespace ::std;
         //
- typedef BOOST_MIRRORED_TYPEDEF(::boost::cts, bstring) meta_T;
+ typedef <macroname>BOOST_MIRRORED_TYPEDEF</macroname>(::boost::cts, bstring) meta_T;
         meta_T mt;
         //
         cout &lt;&lt; mt &lt;&lt; endl;


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk