|
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<
- 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>()
>
));
@@ -71,7 +71,7 @@
<pre class="programlisting">
BOOST_MPL_ASSERT((
::boost::is_same<
- 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>()
>
));
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 <boost/mirror/meta_type.hpp>">
+<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 — 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<
+ <a class="link" href="BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a>(int)::scope
+ >
+));
+</pre>
+<pre class="programlisting">
+BOOST_MPL_ASSERT_NOT((
+ reflects_global_scope<
+ <a class="link" href="BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a>(::std::string)::scope
+ >
+));
+</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úš 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 <boost/mirror/meta_type.hpp>">
+<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 — 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<
+ <a class="link" href="BOOST_MIRRORED_TYPEDEF.html" title="Macro BOOST_MIRRORED_TYPEDEF">BOOST_MIRRORED_TYPEDEF</a>(::std, size_t)::scope::scope
+ >
+));
+</pre>
+<pre class="programlisting">
+BOOST_MPL_ASSERT_NOT((
+ reflects_global_scope<
+ <a class="link" href="BOOST_MIRRORED_TYPEDEF.html" title="Macro BOOST_MIRRORED_TYPEDEF">BOOST_MIRRORED_TYPEDEF</a>(::boost::cts, bstring)::scope
+ >
+));
+</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úš 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 <boost/mirror/meta_type.hpp>">
+<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 — 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<
+ <a class="link" href="BOOST_MIRRORED_TYPEOF.html" title="Macro BOOST_MIRRORED_TYPEOF">BOOST_MIRRORED_TYPEOF</a>(1.0+1.0)::scope
+ >
+));
+</pre>
+</div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 Matúš Chochlík<p>Use, modification and distribution is subject to the Boost
+ Software License, Version 1.0. (See accompanying file
+ <code class="filename">LICENSE_1_0.txt</code> or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="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 <boost/mirror/meta_type.hpp>">
+<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 — 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<
+ <a class="link" href="BOOST_MIRRORED_TYPE_NS.html" title="Macro BOOST_MIRRORED_TYPE_NS">BOOST_MIRRORED_TYPE_NS</a>(::std, string)::scope
+ >
+));
+</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úš 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 <boost/mirror/meta_class.hpp>">
-<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><<span class="bold"><strong>typename</strong></span> NamespacePlaceholder>
<span class="bold"><strong>class</strong></span> <a class="link" href="meta_namespace.html" title="Class template meta_namespace">meta_namespace</a> {
<span class="bold"><strong>public</strong></span>:
- <span class="emphasis"><em>// <a class="link" href="meta_namespace.html#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&</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&</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&</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&</span> <a class="link" href="meta_namespace.html#id438916-bb">full_name</a>();
<span class="bold"><strong>template</strong></span><<span class="bold"><strong>bool</strong></span> FullName, <span class="bold"><strong>typename</strong></span> CharT>
<span class="type"><span class="bold"><strong>const</strong></span> ::std::basic_string<CharT>&</span>
- <a class="link" href="meta_namespace.html#id449843-bb">get_name</a>(::boost::mpl::bool_<FullName>, ::std::char_traits<CharT>);
+ <a class="link" href="meta_namespace.html#id438863-bb">get_name</a>(::boost::mpl::bool_<FullName>, ::std::char_traits<CharT>);
};</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& bcout = cts::bcout();
// several namespaces are pre-registered
- bcout << BOOST_MIRRORED_GLOBAL_SCOPE() ::base_name() << endl;
- bcout << BOOST_MIRRORED_NAMESPACE(::std) ::base_name() << endl;
- bcout << BOOST_MIRRORED_NAMESPACE(::boost) ::base_name() << endl;
- bcout << BOOST_MIRRORED_NAMESPACE(::boost::mirror) ::base_name() << endl;
+ bcout << <a class="link" href="../../BOOST_MIRRORED_GLOBAL_SCOPE.html" title="Macro BOOST_MIRRORED_GLOBAL_SCOPE">BOOST_MIRRORED_GLOBAL_SCOPE</a>() ::base_name() << endl;
+ bcout << <a class="link" href="../../BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::std) ::base_name() << endl;
+ bcout << <a class="link" href="../../BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::boost) ::base_name() << endl;
+ bcout << <a class="link" href="../../BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::boost::mirror) ::base_name() << endl;
//
- bcout << BOOST_MIRRORED_GLOBAL_SCOPE() ::full_name() << endl;
- bcout << BOOST_MIRRORED_NAMESPACE(::std) ::full_name() << endl;
- bcout << BOOST_MIRRORED_NAMESPACE(::boost) ::full_name() << endl;
- bcout << BOOST_MIRRORED_NAMESPACE(::boost::mirror) ::full_name() << endl;
+ bcout << <a class="link" href="../../BOOST_MIRRORED_GLOBAL_SCOPE.html" title="Macro BOOST_MIRRORED_GLOBAL_SCOPE">BOOST_MIRRORED_GLOBAL_SCOPE</a>() ::full_name() << endl;
+ bcout << <a class="link" href="../../BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::std) ::full_name() << endl;
+ bcout << <a class="link" href="../../BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::boost) ::full_name() << endl;
+ bcout << <a class="link" href="../../BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::boost::mirror) ::full_name() << endl;
return 0;
}
@@ -143,7 +143,7 @@
using namespace ::boost::mirror;
cts::bostream& 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 << meta_boost_mirror::scope::full_name() << 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 << mns << 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 <
mpl::front <
- BOOST_MIRRORED_NAMESPACE(::std)::ancestors
+ <a class="link" href="../../BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::std)::ancestors
>
>
));
@@ -256,7 +256,7 @@
BOOST_MPL_ASSERT((
reflects_global_scope <
mpl::front <
- 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
>
>
));
@@ -264,9 +264,9 @@
BOOST_MPL_ASSERT((
is_same <
mpl::back <
- 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
>,
- 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
>
));
</pre>
@@ -276,7 +276,7 @@
<a name="mirror.reference.sample.meta_namespace.ancestors02"></a><pre class="programlisting">
BOOST_MPL_ASSERT((
mpl::empty <
- 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
>
));
@@ -287,7 +287,7 @@
</li>
</ol></div>
</div>
-<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&</span> <a name="id449938-bb"></a>base_name();</pre>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&</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&</span> <a name="id449896-bb"></a>full_name();</pre>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&</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><<span class="bold"><strong>bool</strong></span> FullName, <span class="bold"><strong>typename</strong></span> CharT>
<span class="type"><span class="bold"><strong>const</strong></span> ::std::basic_string<CharT>&</span>
- <a name="id449843-bb"></a>get_name(::boost::mpl::bool_<FullName> full, ::std::char_traits<CharT> cht);</pre>
+ <a name="id438863-bb"></a>get_name(::boost::mpl::bool_<FullName> full, ::std::char_traits<CharT> cht);</pre>
<p>This static member template function returns either the base name
<span class="bold"><strong>without</strong></span> the nested name specifier
or the full name <span class="bold"><strong>with</strong></span> the
@@ -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<char>())
+<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<char>())
</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<wchar_t>())
+<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<wchar_t>())
</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 <boost/mirror/meta_type.hpp>">
<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 — 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><<span class="bold"><strong>typename</strong></span> Type>
<span class="bold"><strong>class</strong></span> <a class="link" href="meta_type.html" title="Class template meta_type">meta_type</a> {
<span class="bold"><strong>public</strong></span>:
- <span class="emphasis"><em>// <a class="link" href="meta_type.html#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&</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&</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&</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&</span> <a class="link" href="meta_type.html#id492118-bb">full_name</a>();
<span class="bold"><strong>template</strong></span><<span class="bold"><strong>bool</strong></span> FullName, <span class="bold"><strong>typename</strong></span> CharT>
<span class="type"><span class="bold"><strong>const</strong></span> ::std::basic_string<CharT>&</span>
- <a class="link" href="meta_type.html#id625789-bb">get_name</a>(::boost::mpl::bool_<FullName>, ::std::char_traits<CharT>);
+ <a class="link" href="meta_type.html#id491912-bb">get_name</a>(::boost::mpl::bool_<FullName>, ::std::char_traits<CharT>);
};</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 <boost/char_type_switch/iostream.hpp>
#include <boost/mirror/meta_type.hpp>
@@ -92,7 +92,7 @@
typedef T4 (T)(const T1&, 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() <<
@@ -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 <string>
@@ -159,16 +159,16 @@
// reflect the type of an expression
// and print the meta-data
- print_meta_data< BOOST_MIRRORED_TYPEOF(1+2) >();
- print_meta_data< BOOST_MIRRORED_TYPEOF(1.0+2.0) >();
- print_meta_data< BOOST_MIRRORED_TYPEOF("1" "+" "2") >();
- print_meta_data< BOOST_MIRRORED_TYPEOF(string("1")+string("2")) >();
+ print_meta_data< <a class="link" href="../../BOOST_MIRRORED_TYPEOF.html" title="Macro BOOST_MIRRORED_TYPEOF">BOOST_MIRRORED_TYPEOF</a>(1+2) >();
+ print_meta_data< <a class="link" href="../../BOOST_MIRRORED_TYPEOF.html" title="Macro BOOST_MIRRORED_TYPEOF">BOOST_MIRRORED_TYPEOF</a>(1.0+2.0) >();
+ print_meta_data< <a class="link" href="../../BOOST_MIRRORED_TYPEOF.html" title="Macro BOOST_MIRRORED_TYPEOF">BOOST_MIRRORED_TYPEOF</a>("1" "+" "2") >();
+ print_meta_data< <a class="link" href="../../BOOST_MIRRORED_TYPEOF.html" title="Macro BOOST_MIRRORED_TYPEOF">BOOST_MIRRORED_TYPEOF</a>(string("1")+string("2")) >();
// BOOST_MIRRORED_TYPEOF is actually a shorter form of this:
- print_meta_data< BOOST_MIRRORED_TYPE(
+ print_meta_data< <a class="link" href="../../BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a>(
BOOST_TYPEOF(L"1" L"+" L"2")
) >();
- print_meta_data< BOOST_MIRRORED_TYPE(
+ print_meta_data< <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"))
) >();
@@ -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 <boost/char_type_switch/iostream.hpp>
@@ -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< meta_bstring_td >();
print_meta_data< meta_bstring >();
//
- print_meta_data< BOOST_MIRRORED_TYPEDEF(::std, size_t) >();
+ print_meta_data< <a class="link" href="../../BOOST_MIRRORED_TYPEDEF.html" title="Macro BOOST_MIRRORED_TYPEDEF">BOOST_MIRRORED_TYPEDEF</a>(::std, size_t) >();
// this is another version of the BOOST_MIRRORED_TYPE macro
// that gets the namespace and the type as two separate args
- print_meta_data< BOOST_MIRRORED_TYPE_NS(::std, size_t) >();
+ print_meta_data< <a class="link" href="../../BOOST_MIRRORED_TYPE_NS.html" title="Macro BOOST_MIRRORED_TYPE_NS">BOOST_MIRRORED_TYPE_NS</a>(::std, size_t) >();
//
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 <iostream>
#include <boost/mirror/meta_type.hpp>
@@ -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 << mt << 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&</span> <a name="id624602-bb"></a>base_name();</pre>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&</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> < ::std::string > :: 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&</span> <a name="id626402-bb"></a>full_name();</pre>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::bstring&</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> < ::std::string > :: 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><<span class="bold"><strong>bool</strong></span> FullName, <span class="bold"><strong>typename</strong></span> CharT>
<span class="type"><span class="bold"><strong>const</strong></span> ::std::basic_string<CharT>&</span>
- <a name="id625789-bb"></a>get_name(::boost::mpl::bool_<FullName> full, ::std::char_traits<CharT> cht);</pre>
+ <a name="id491912-bb"></a>get_name(::boost::mpl::bool_<FullName> full, ::std::char_traits<CharT> cht);</pre>
<p>This static member template function returns either the base name
- <span class="bold"><strong>without</strong></span> the nested name specifier
- or the full name <span class="bold"><strong>with</strong></span> the
- nested name specifier of the 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<char>())</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<char>())</pre>
<p> or
- </p>
+ </p>
<pre class="programlisting"><code class="computeroutput">meta_type</code> < ::std::string > :: get_name(::boost::mpl::false_(), ::std::char_traits<char>())</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<wchar_t>())</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<wchar_t>())</pre>
<p> or
- </p>
+ </p>
<pre class="programlisting"><code class="computeroutput">meta_type</code> < ::std::string > :: get_name( ::boost::mpl::true_(), ::std::char_traits<wchar_t>())</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úš 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úš 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 <boost/mirror/meta_type.hpp></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><<span class="bold"><strong>typename</strong></span> Type> <span class="bold"><strong>class</strong></span> <a class="link" href="../boost/mirror/meta_type.html" title="Class template meta_type">meta_type</a>;
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<char>())
+ <programlisting><macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::boost::mirror) :: get_name(::boost::mpl::false_(), ::std::char_traits<char>())
</programlisting> is equivalent to calling the
<code><methodname>base_name</methodname></code> member function with the
<code><macroname>BOOST_CTS_USE_WIDE_CHARS</macroname></code> symbol undefined,
which returns a <code>::std::string</code> holding the string <code>"mirror"</code> and calling
- <programlisting><classname>BOOST_MIRRORED_NAMESPACE</classname>(::boost::mirror) :: get_name(::boost::mpl::true_(), ::std::char_traits<wchar_t>())
+ <programlisting><macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::boost::mirror) :: get_name(::boost::mpl::true_(), ::std::char_traits<wchar_t>())
</programlisting> is equivalent to calling the
<code><methodname>full_name</methodname></code> method with the
<code><macroname>BOOST_CTS_USE_WIDE_CHARS</macroname></code> symbol defined,
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>&</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> < ::std::string > :: 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>&</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> < ::std::string > :: 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<CharT></classname>&</type>
+ <parameter name="full">
+ <paramtype>::boost::mpl::bool_<FullName></paramtype>
+ </parameter>
+ <parameter name="cht">
+ <paramtype>::std::char_traits<CharT></paramtype>
+ </parameter>
+ <purpose>
+ <para>This static member template function returns either the base name
+ <emphasis role="bold">without</emphasis> the nested name specifier
+ or the full name <emphasis role="bold">with</emphasis> the
+ nested name specifier of the 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<char>())</programlisting> or
+ <programlisting><classname>meta_type</classname> < ::std::string > :: get_name(::boost::mpl::false_(), ::std::char_traits<char>())</programlisting>
+ is equivalent to calling the
+ <code><methodname>base_name</methodname></code> member function with the
+ <code><macroname>BOOST_CTS_USE_WIDE_CHARS</macroname></code> symbol undefined,
+ which returns a <code>::std::string</code> containing <code>"string"</code> and calling
+ <programlisting><macroname>BOOST_MIRRORED_TYPE</macroname>(::std::string) :: get_name(::boost::mpl::true_(), ::std::char_traits<wchar_t>())</programlisting> or
+ <programlisting><classname>meta_type</classname> < ::std::string > :: get_name( ::boost::mpl::true_(), ::std::char_traits<wchar_t>())</programlisting> is equivalent to calling the
+ <code><methodname>full_name</methodname></code> method with the
+ <code><macroname>BOOST_CTS_USE_WIDE_CHARS</macroname></code> symbol defined,
+ which returns a <code>::std::wstring</code> 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><
+ <macroname>BOOST_MIRRORED_TYPE</macroname>(int)::scope
+ >
+));
+</programlisting>
+<programlisting>
+BOOST_MPL_ASSERT_NOT((
+ <classname>reflects_global_scope</classname><
+ <macroname>BOOST_MIRRORED_TYPE</macroname>(::std::string)::scope
+ >
+));
+</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><
+ <macroname>BOOST_MIRRORED_TYPEDEF</macroname>(::std, size_t)::scope::scope
+ >
+));
+</programlisting>
+<programlisting>
+BOOST_MPL_ASSERT_NOT((
+ <classname>reflects_global_scope</classname><
+ <macroname>BOOST_MIRRORED_TYPEDEF</macroname>(::boost::cts, bstring)::scope
+ >
+));
+</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><
+ <macroname>BOOST_MIRRORED_TYPEOF</macroname>(1.0+1.0)::scope
+ >
+));
+</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><
+ <macroname>BOOST_MIRRORED_TYPE_NS</macroname>(::std, string)::scope
+ >
+));
+</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>&</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> < ::std::string > :: 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>&</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> < ::std::string > :: 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<CharT></classname>&</type>
- <parameter name="full">
- <paramtype>::boost::mpl::bool_<FullName></paramtype>
- </parameter>
- <parameter name="cht">
- <paramtype>::std::char_traits<CharT></paramtype>
- </parameter>
- <purpose>
- <para>This static member template function returns either the base name
- <emphasis role="bold">without</emphasis> the nested name specifier
- or the full name <emphasis role="bold">with</emphasis> the
- nested name specifier of the 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<char>())</programlisting> or
- <programlisting><classname>meta_type</classname> < ::std::string > :: get_name(::boost::mpl::false_(), ::std::char_traits<char>())</programlisting>
- is equivalent to calling the
- <code><methodname>base_name</methodname></code> member function with the
- <code><macroname>BOOST_CTS_USE_WIDE_CHARS</macroname></code> symbol undefined,
- which returns a <code>::std::string</code> containing <code>"string"</code> and calling
- <programlisting><macroname>BOOST_MIRRORED_TYPE</macroname>(::std::string) :: get_name(::boost::mpl::true_(), ::std::char_traits<wchar_t>())</programlisting> or
- <programlisting><classname>meta_type</classname> < ::std::string > :: get_name( ::boost::mpl::true_(), ::std::char_traits<wchar_t>())</programlisting> is equivalent to calling the
- <code><methodname>full_name</methodname></code> method with the
- <code><macroname>BOOST_CTS_USE_WIDE_CHARS</macroname></code> symbol defined,
- which returns a <code>::std::wstring</code> 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 <
mpl::front <
- BOOST_MIRRORED_NAMESPACE(::std)::ancestors
+ <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::std)::ancestors
>
>
));
@@ -16,7 +16,7 @@
BOOST_MPL_ASSERT((
reflects_global_scope <
mpl::front <
- BOOST_MIRRORED_NAMESPACE(::boost::mirror)::ancestors
+ <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::boost::mirror)::ancestors
>
>
));
@@ -24,9 +24,9 @@
BOOST_MPL_ASSERT((
is_same <
mpl::back <
- BOOST_MIRRORED_NAMESPACE(::boost::mirror)::ancestors
+ <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::boost::mirror)::ancestors
>,
- BOOST_MIRRORED_NAMESPACE(::boost::mirror)::scope
+ <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::boost::mirror)::scope
>
));
</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 <
- BOOST_MIRRORED_GLOBAL_SCOPE()::ancestors
+ <macroname>BOOST_MIRRORED_GLOBAL_SCOPE</macroname>()::ancestors
>
));
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& bcout = cts::bcout();
// several namespaces are pre-registered
- bcout << BOOST_MIRRORED_GLOBAL_SCOPE() ::base_name() << endl;
- bcout << BOOST_MIRRORED_NAMESPACE(::std) ::base_name() << endl;
- bcout << BOOST_MIRRORED_NAMESPACE(::boost) ::base_name() << endl;
- bcout << BOOST_MIRRORED_NAMESPACE(::boost::mirror) ::base_name() << endl;
+ bcout << <macroname>BOOST_MIRRORED_GLOBAL_SCOPE</macroname>() ::base_name() << endl;
+ bcout << <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::std) ::base_name() << endl;
+ bcout << <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::boost) ::base_name() << endl;
+ bcout << <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::boost::mirror) ::base_name() << endl;
//
- bcout << BOOST_MIRRORED_GLOBAL_SCOPE() ::full_name() << endl;
- bcout << BOOST_MIRRORED_NAMESPACE(::std) ::full_name() << endl;
- bcout << BOOST_MIRRORED_NAMESPACE(::boost) ::full_name() << endl;
- bcout << BOOST_MIRRORED_NAMESPACE(::boost::mirror) ::full_name() << endl;
+ bcout << <macroname>BOOST_MIRRORED_GLOBAL_SCOPE</macroname>() ::full_name() << endl;
+ bcout << <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::std) ::full_name() << endl;
+ bcout << <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::boost) ::full_name() << endl;
+ bcout << <macroname>BOOST_MIRRORED_NAMESPACE</macroname>(::boost::mirror) ::full_name() << 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& 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 << meta_boost_mirror::scope::full_name() << 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 << mns << 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&, 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() <<
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< BOOST_MIRRORED_TYPEOF(1+2) >();
- print_meta_data< BOOST_MIRRORED_TYPEOF(1.0+2.0) >();
- print_meta_data< BOOST_MIRRORED_TYPEOF("1" "+" "2") >();
- print_meta_data< BOOST_MIRRORED_TYPEOF(string("1")+string("2")) >();
+ print_meta_data< <macroname>BOOST_MIRRORED_TYPEOF</macroname>(1+2) >();
+ print_meta_data< <macroname>BOOST_MIRRORED_TYPEOF</macroname>(1.0+2.0) >();
+ print_meta_data< <macroname>BOOST_MIRRORED_TYPEOF</macroname>("1" "+" "2") >();
+ print_meta_data< <macroname>BOOST_MIRRORED_TYPEOF</macroname>(string("1")+string("2")) >();
// BOOST_MIRRORED_TYPEOF is actually a shorter form of this:
- print_meta_data< BOOST_MIRRORED_TYPE(
+ print_meta_data< <macroname>BOOST_MIRRORED_TYPE</macroname>(
BOOST_TYPEOF(L"1" L"+" L"2")
) >();
- print_meta_data< BOOST_MIRRORED_TYPE(
+ print_meta_data< <macroname>BOOST_MIRRORED_TYPE</macroname>(
BOOST_TYPEOF(wstring(L"1")+wstring(L"2"))
) >();
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< meta_bstring_td >();
print_meta_data< meta_bstring >();
//
- print_meta_data< BOOST_MIRRORED_TYPEDEF(::std, size_t) >();
+ print_meta_data< <macroname>BOOST_MIRRORED_TYPEDEF</macroname>(::std, size_t) >();
// this is another version of the BOOST_MIRRORED_TYPE macro
// that gets the namespace and the type as two separate args
- print_meta_data< BOOST_MIRRORED_TYPE_NS(::std, size_t) >();
+ print_meta_data< <macroname>BOOST_MIRRORED_TYPE_NS</macroname>(::std, size_t) >();
//
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 << mt << 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