|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r75417 - in trunk/libs/parameter: doc doc/html test/literate
From: daniel_at_[hidden]
Date: 2011-11-08 17:00:18
Author: danielw
Date: 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
New Revision: 75417
URL: http://svn.boost.org/trac/boost/changeset/75417
Log:
Fix Boost.Parameter documentation bugs. Properly test type requirements example.
Text files modified:
trunk/libs/parameter/doc/html/index.html | 419 +++++++++++++++++++++------------------
trunk/libs/parameter/doc/html/python.html | 140 ++++++------
trunk/libs/parameter/doc/html/reference.html | 318 +++++++++++++++---------------
trunk/libs/parameter/doc/index.rst | 107 ++++++---
trunk/libs/parameter/test/literate/building-argumentpacks0.cpp | 12
trunk/libs/parameter/test/literate/class-template-skeleton0.cpp | 4
trunk/libs/parameter/test/literate/deduced-parameters0.cpp | 12
trunk/libs/parameter/test/literate/deduced-template-parameters0.cpp | 16
trunk/libs/parameter/test/literate/default-expression-evaluation0.cpp | 4
trunk/libs/parameter/test/literate/defining-the-keywords0.cpp | 2
trunk/libs/parameter/test/literate/defining-the-keywords1.cpp | 4
trunk/libs/parameter/test/literate/exercising-the-code-so-far0.cpp | 10
trunk/libs/parameter/test/literate/extracting-parameter-types0.cpp | 6
trunk/libs/parameter/test/literate/extracting-parameter-types1.cpp | 6
trunk/libs/parameter/test/literate/fine-grained-name-control0.cpp | 6
trunk/libs/parameter/test/literate/handling-out-parameters0.cpp | 6
trunk/libs/parameter/test/literate/headers-and-namespaces0.cpp | 4
trunk/libs/parameter/test/literate/lazy-default-computation0.cpp | 6
trunk/libs/parameter/test/literate/lazy-default-computation1.cpp | 6
trunk/libs/parameter/test/literate/namespaces0.cpp | 10
trunk/libs/parameter/test/literate/namespaces1.cpp | 10
trunk/libs/parameter/test/literate/namespaces2.cpp | 10
trunk/libs/parameter/test/literate/namespaces3.cpp | 8
trunk/libs/parameter/test/literate/optional-parameters0.cpp | 6
trunk/libs/parameter/test/literate/parameter-enabled-constructors0.cpp | 12
trunk/libs/parameter/test/literate/parameter-enabled-member-functions0.cpp | 4
trunk/libs/parameter/test/literate/parameter-enabled-member-functions1.cpp | 4
trunk/libs/parameter/test/literate/predicate-requirements0.cpp | 94 +++++---
trunk/libs/parameter/test/literate/required-parameters0.cpp | 6
trunk/libs/parameter/test/literate/static-member-functions0.cpp | 4
trunk/libs/parameter/test/literate/template-keywords0.cpp | 4
trunk/libs/parameter/test/literate/template-keywords1.cpp | 4
trunk/libs/parameter/test/literate/top-level0.cpp | 2
trunk/libs/parameter/test/literate/writing-the-function0.cpp | 4
34 files changed, 677 insertions(+), 593 deletions(-)
Modified: trunk/libs/parameter/doc/html/index.html
==============================================================================
--- trunk/libs/parameter/doc/html/index.html (original)
+++ trunk/libs/parameter/doc/html/index.html 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -3,7 +3,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.6: http://docutils.sourceforge.net/" />
+<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The Boost Parameter Library</title>
<link rel="stylesheet" href="rst.css" type="text/css" />
</head>
@@ -122,7 +122,7 @@
</li>
<li><a class="reference internal" href="#portability-considerations" id="id38">5 Portability Considerations</a><ul class="auto-toc">
<li><a class="reference internal" href="#no-sfinae-support" id="id39">5.1 No SFINAE Support</a></li>
-<li><a class="reference internal" href="#no-support-for-result-of" id="id40">5.2 No Support for <tt class="docutils literal"><span class="pre">result_of</span></tt></a></li>
+<li><a class="reference internal" href="#no-support-for-result-of" id="id40">5.2 No Support for <tt class="docutils literal">result_of</tt></a></li>
<li><a class="reference internal" href="#compiler-can-t-see-references-in-unnamed-namespace" id="id41">5.3 Compiler Can't See References In Unnamed Namespace</a></li>
</ul>
</li>
@@ -158,8 +158,8 @@
window* w = new_window("alert box", movability);
</pre>
<p class="compound-middle">In the example above we wanted to make an unmoveable window
-with a default <tt class="docutils literal"><span class="pre">border_width</span></tt>, but instead we got a moveable
-window with a <tt class="docutils literal"><span class="pre">border_width</span></tt> of zero. To get the desired
+with a default <tt class="docutils literal">border_width</tt>, but instead we got a moveable
+window with a <tt class="docutils literal">border_width</tt> of zero. To get the desired
effect, we'd need to write:</p>
<pre class="compound-last literal-block">
window* w = new_window(
@@ -201,9 +201,9 @@
<p class="compound-first">A <strong>deduced parameter</strong> can be passed in any position <em>without</em>
supplying an explicit parameter name. It's not uncommon for a
function to have parameters that can be uniquely identified based
-on the types of arguments passed. The <tt class="docutils literal"><span class="pre">name</span></tt> parameter to
-<tt class="docutils literal"><span class="pre">new_window</span></tt> is one such example. None of the other arguments,
-if valid, can reasonably be converted to a <tt class="docutils literal"><span class="pre">char</span> <span class="pre">const*</span></tt>. With
+on the types of arguments passed. The <tt class="docutils literal">name</tt> parameter to
+<tt class="docutils literal">new_window</tt> is one such example. None of the other arguments,
+if valid, can reasonably be converted to a <tt class="docutils literal">char const*</tt>. With
a deduced parameter interface, we could pass the window name in
<em>any</em> argument position without causing ambiguity:</p>
<pre class="compound-middle literal-block">
@@ -222,8 +222,8 @@
<p class="compound-first">The reasoning we've given for named and deduced parameter
interfaces applies equally well to class templates as it does to
functions. Using the Parameter library, we can create interfaces
-that allow template arguments (in this case <tt class="docutils literal"><span class="pre">shared</span></tt> and
-<tt class="docutils literal"><span class="pre">Client</span></tt>) to be explicitly named, like this:</p>
+that allow template arguments (in this case <tt class="docutils literal">shared</tt> and
+<tt class="docutils literal">Client</tt>) to be explicitly named, like this:</p>
<pre class="compound-middle literal-block">
smart_ptr<<strong>ownership<shared></strong>, <strong>value_type<Client></strong> > p;
</pre>
@@ -251,7 +251,7 @@
<h2><a class="toc-backref" href="#id27">2.1 Parameter-Enabled Functions</a></h2>
<p>In this section we'll show how the Parameter library can be used to
build an expressive interface to the <a class="reference external" href="../../../graph/index.html">Boost Graph library</a>'s
-<a class="reference external" href="../../../graph/doc/depth_first_search.html"><tt class="docutils literal"><span class="pre">depth_first_search</span></tt></a> algorithm.<a class="footnote-reference" href="#old-interface" id="id3"><sup>1</sup></a></p>
+<a class="reference external" href="../../../graph/doc/depth_first_search.html"><tt class="docutils literal">depth_first_search</tt></a> algorithm.<a class="footnote-reference" href="#old-interface" id="id3"><sup>1</sup></a></p>
<!-- Revisit this
After laying some groundwork
@@ -271,10 +271,10 @@
</pre>
<p>will ensure <tt class="docutils literal"><span class="pre">boost::parameter::keyword</span></tt> is known to the
compiler. There is also a combined header,
-<tt class="docutils literal"><span class="pre">boost/parameter.hpp</span></tt>, that includes most of the library's
+<tt class="docutils literal">boost/parameter.hpp</tt>, that includes most of the library's
components. For the the rest of this tutorial, unless we say
otherwise, you can use the rule above to figure out which header
-to <tt class="docutils literal"><span class="pre">#include</span></tt> to access any given component of the library.</p>
+to <tt class="docutils literal">#include</tt> to access any given component of the library.</p>
<!-- @example.append('''
using boost::parameter::keyword;
''') -->
@@ -289,8 +289,8 @@
<tt class="docutils literal"><span class="pre">boost::parameter::xxx</span></tt>.</p>
</div>
<div class="section" id="the-abstract-interface-to-dfs">
-<h3>2.1.2 The Abstract Interface to <tt class="docutils literal"><span class="pre">depth_first_search</span></tt></h3>
-<p>The Graph library's <tt class="docutils literal"><span class="pre">depth_first_search</span></tt> algorithm is a generic function accepting
+<h3>2.1.2 The Abstract Interface to <tt class="docutils literal">depth_first_search</tt></h3>
+<p>The Graph library's <tt class="docutils literal">depth_first_search</tt> algorithm is a generic function accepting
from one to four arguments by reference. If all arguments were
required, its signature might be as follows:</p>
<pre class="literal-block">
@@ -308,7 +308,7 @@
<p>However, most of the parameters have a useful default value, as
shown in the table below.</p>
<table border="1" class="docutils" id="default-expressions">
-<span id="parameter-table"></span><caption><tt class="docutils literal"><span class="pre">depth_first_search</span></tt> Parameters</caption>
+<span id="parameter-table"></span><caption><tt class="docutils literal">depth_first_search</tt> Parameters</caption>
<colgroup>
<col width="17%" />
<col width="11%" />
@@ -323,41 +323,41 @@
</tr>
</thead>
<tbody valign="top">
-<tr><td><tt class="docutils literal"><span class="pre">graph</span></tt></td>
+<tr><td><tt class="docutils literal">graph</tt></td>
<td>in</td>
<td>Model of <a class="reference external" href="../../../graph/doc/IncidenceGraph.html"><span class="concept">Incidence Graph</span></a> and
<a class="reference external" href="../../../graph/doc/VertexListGraph.html"><span class="concept">Vertex List Graph</span></a></td>
<td>none - this argument is required.</td>
</tr>
-<tr><td><tt class="docutils literal"><span class="pre">visitor</span></tt></td>
+<tr><td><tt class="docutils literal">visitor</tt></td>
<td>in</td>
<td>Model of <a class="reference external" href="../../../graph/doc/DFSVisitor.html"><span class="concept">DFS Visitor</span></a></td>
<td><tt class="docutils literal"><span class="pre">boost::dfs_visitor<>()</span></tt></td>
</tr>
-<tr><td><tt class="docutils literal"><span class="pre">root_vertex</span></tt></td>
+<tr><td><tt class="docutils literal">root_vertex</tt></td>
<td>in</td>
-<td><tt class="docutils literal"><span class="pre">graph</span></tt>'s vertex descriptor
+<td><tt class="docutils literal">graph</tt>'s vertex descriptor
type.</td>
<td><tt class="docutils literal"><span class="pre">*vertices(graph).first</span></tt></td>
</tr>
-<tr><td><tt class="docutils literal"><span class="pre">index_map</span></tt></td>
+<tr><td><tt class="docutils literal">index_map</tt></td>
<td>in</td>
<td>Model of <a class="reference external" href="../../../property_map/doc/ReadablePropertyMap.html"><span class="concept">Readable Property Map</span></a>
-with key type := <tt class="docutils literal"><span class="pre">graph</span></tt>'s
+with key type := <tt class="docutils literal">graph</tt>'s
vertex descriptor and value type
an integer type.</td>
<td><tt class="docutils literal"><span class="pre">get(boost::vertex_index,graph)</span></tt></td>
</tr>
-<tr><td><tt class="docutils literal"><span class="pre">color_map</span></tt></td>
+<tr><td><tt class="docutils literal">color_map</tt></td>
<td>in/out</td>
<td>Model of <a class="reference external" href="../../../property_map/doc/ReadWritePropertyMap.html"><span class="concept">Read/Write Property Map</span></a>
-with key type := <tt class="docutils literal"><span class="pre">graph</span></tt>'s
+with key type := <tt class="docutils literal">graph</tt>'s
vertex descriptor type.</td>
-<td>an <tt class="docutils literal"><span class="pre">iterator_property_map</span></tt>
+<td>an <tt class="docutils literal">iterator_property_map</tt>
created from a <tt class="docutils literal"><span class="pre">std::vector</span></tt> of
-<tt class="docutils literal"><span class="pre">default_color_type</span></tt> of size
-<tt class="docutils literal"><span class="pre">num_vertices(graph)</span></tt> and using
-<tt class="docutils literal"><span class="pre">index_map</span></tt> for the index map.</td>
+<tt class="docutils literal">default_color_type</tt> of size
+<tt class="docutils literal">num_vertices(graph)</tt> and using
+<tt class="docutils literal">index_map</tt> for the index map.</td>
</tr>
</tbody>
</table>
@@ -368,15 +368,15 @@
<div class="section" id="defining-the-keywords">
<h3>2.1.3 Defining the Keywords</h3>
<p>The point of this exercise is to make it possible to call
-<tt class="docutils literal"><span class="pre">depth_first_search</span></tt> with named arguments, leaving out any
+<tt class="docutils literal">depth_first_search</tt> with named arguments, leaving out any
arguments for which the default is appropriate:</p>
<pre class="literal-block">
graphs::depth_first_search(g, <strong>color_map_=my_color_map</strong>);
</pre>
<!-- @ignore() -->
<p>To make that syntax legal, there needs to be an object called
-â<tt class="docutils literal"><span class="pre">color_map_</span></tt>â whose assignment operator can accept a
-<tt class="docutils literal"><span class="pre">my_color_map</span></tt> argument. In this step we'll create one such
+â<tt class="docutils literal">color_map_</tt>â whose assignment operator can accept a
+<tt class="docutils literal">my_color_map</tt> argument. In this step we'll create one such
<strong>keyword object</strong> for each parameter. Each keyword object will be
identified by a unique <strong>keyword tag type</strong>.</p>
<!-- Revisit this
@@ -387,7 +387,7 @@
``graphs``, and we'll hide the tag types away in a nested
namespace, ``graphs::tag``. The library provides a convenient
macro for that purpose. -->
-<p>We're going to define our interface in namespace <tt class="docutils literal"><span class="pre">graphs</span></tt>. The
+<p>We're going to define our interface in namespace <tt class="docutils literal">graphs</tt>. The
library provides a convenient macro for defining keyword objects:</p>
<pre class="literal-block">
#include <boost/parameter/name.hpp>
@@ -402,7 +402,7 @@
}
</pre>
<!-- @test('compile') -->
-<p>The declaration of the <tt class="docutils literal"><span class="pre">graph</span></tt> keyword you see here is
+<p>The declaration of the <tt class="docutils literal">graph</tt> keyword you see here is
equivalent to:</p>
<pre class="literal-block">
namespace graphs
@@ -420,7 +420,7 @@
<!-- @example.prepend('#include <boost/parameter/keyword.hpp>') -->
<!-- @test('compile') -->
<p>It defines a <em>keyword tag type</em> named <tt class="docutils literal"><span class="pre">tag::graph</span></tt> and a <em>keyword
-object</em> reference named <tt class="docutils literal"><span class="pre">_graph</span></tt>.</p>
+object</em> reference named <tt class="docutils literal">_graph</tt>.</p>
<p>This âfancy danceâ involving an unnamed namespace and references
is all done to avoid violating the One Definition Rule (ODR)<a class="footnote-reference" href="#odr" id="id5"><sup>2</sup></a> when the named parameter interface is used by function
templates that are instantiated in multiple translation
@@ -430,7 +430,7 @@
<h3>2.1.4 Writing the Function</h3>
<p>Now that we have our keywords defined, the function template
definition follows a simple pattern using the
-<tt class="docutils literal"><span class="pre">BOOST_PARAMETER_FUNCTION</span></tt> macro:</p>
+<tt class="docutils literal">BOOST_PARAMETER_FUNCTION</tt> macro:</p>
<pre class="literal-block">
#include <boost/parameter/preprocessor.hpp>
@@ -477,7 +477,7 @@
}''') -->
<!-- @test('compile') -->
-<p>The arguments to <tt class="docutils literal"><span class="pre">BOOST_PARAMETER_FUNCTION</span></tt> are:</p>
+<p>The arguments to <tt class="docutils literal">BOOST_PARAMETER_FUNCTION</tt> are:</p>
<ol class="arabic simple">
<li>The return type of the resulting function template. Parentheses
around the return type prevent any commas it might contain from
@@ -494,12 +494,12 @@
parenthesized terms (a <a class="reference external" href="../../../preprocessor/index.html">Boost.Preprocessor</a> <a class="reference external" href="http://boost-consulting.com/mplbook/preprocessor.html#sequences">sequence</a>) describing
the function's parameters in the order in which they'd be expected
if passed positionally. Any required parameters must come first,
-but the <tt class="docutils literal"><span class="pre">(required</span> <span class="pre">â¦</span> <span class="pre">)</span></tt> clause can be omitted when all the
+but the <tt class="docutils literal">(required ⦠)</tt> clause can be omitted when all the
parameters are optional.</p>
<div class="section" id="required-parameters">
<h4>2.1.5.1 Required Parameters</h4>
<div class="compound">
-<p class="compound-first">Required parameters are given firstânested in a <tt class="docutils literal"><span class="pre">(required</span> <span class="pre">â¦</span> <span class="pre">)</span></tt>
+<p class="compound-first">Required parameters are given firstânested in a <tt class="docutils literal">(required ⦠)</tt>
clauseâas a series of two-element tuples describing each parameter
name and any requirements on the argument type. In this case there
is only a single required parameter, so there's just a single
@@ -507,11 +507,11 @@
<pre class="compound-middle literal-block">
(required <strong>(graph, *)</strong> )
</pre>
-<p class="compound-last">Since <tt class="docutils literal"><span class="pre">depth_first_search</span></tt> doesn't require any particular type
-for its <tt class="docutils literal"><span class="pre">graph</span></tt> parameter, we use an asterisk to indicate that
+<p class="compound-last">Since <tt class="docutils literal">depth_first_search</tt> doesn't require any particular type
+for its <tt class="docutils literal">graph</tt> parameter, we use an asterix to indicate that
any type is allowed. Required parameters must always precede any
optional parameters in a signature, but if there are <em>no</em>
-required parameters, the <tt class="docutils literal"><span class="pre">(required</span> <span class="pre">â¦</span> <span class="pre">)</span></tt> clause can be omitted
+required parameters, the <tt class="docutils literal">(required ⦠)</tt> clause can be omitted
entirely.</p>
</div>
<!-- @example.prepend('''
@@ -527,7 +527,7 @@
<div class="section" id="optional-parameters">
<h4>2.1.5.2 Optional Parameters</h4>
<div class="compound">
-<p class="compound-first">Optional parametersânested in an <tt class="docutils literal"><span class="pre">(optional</span> <span class="pre">â¦</span> <span class="pre">)</span></tt> clauseâare given
+<p class="compound-first">Optional parametersânested in an <tt class="docutils literal">(optional ⦠)</tt> clauseâare given
as a series of adjacent <em>three</em>-element tuples describing the
parameter name, any requirements on the argument type, <em>and</em> and an
expression representing the parameter's default value:</p>
@@ -567,13 +567,13 @@
<div class="section" id="handling-out-parameters">
<h4>2.1.5.3 Handling âOutâ Parameters</h4>
<div class="compound">
-<p class="compound-first">Within the function body, a parameter name such as <tt class="docutils literal"><span class="pre">visitor</span></tt> is
+<p class="compound-first">Within the function body, a parameter name such as <tt class="docutils literal">visitor</tt> is
a <em>C++ reference</em>, bound either to an actual argument passed by
the caller or to the result of evaluating a default expression.
-In most cases, parameter types are of the form <tt class="docutils literal"><span class="pre">T</span> <span class="pre">const&</span></tt> for
-some <tt class="docutils literal"><span class="pre">T</span></tt>. Parameters whose values are expected to be modified,
-however, must be passed by reference to <em>non</em>-<tt class="docutils literal"><span class="pre">const</span></tt>. To
-indicate that <tt class="docutils literal"><span class="pre">color_map</span></tt> is both read and written, we wrap
+In most cases, parameter types are of the form <tt class="docutils literal">T const&</tt> for
+some <tt class="docutils literal">T</tt>. Parameters whose values are expected to be modified,
+however, must be passed by reference to <em>non</em>-<tt class="docutils literal">const</tt>. To
+indicate that <tt class="docutils literal">color_map</tt> is both read and written, we wrap
its name in <tt class="docutils literal"><span class="pre">in_out(â¦)</span></tt>:</p>
<pre class="compound-last literal-block">
(optional
@@ -609,9 +609,9 @@
''') -->
<!-- @example.append(') {}') -->
<!-- @test('compile') -->
-<p>If <tt class="docutils literal"><span class="pre">color_map</span></tt> were strictly going to be modified but not examined,
-we could have written <tt class="docutils literal"><span class="pre">out(color_map)</span></tt>. There is no functional
-difference between <tt class="docutils literal"><span class="pre">out</span></tt> and <tt class="docutils literal"><span class="pre">in_out</span></tt>; the library provides
+<p>If <tt class="docutils literal">color_map</tt> were strictly going to be modified but not examined,
+we could have written <tt class="docutils literal">out(color_map)</tt>. There is no functional
+difference between <tt class="docutils literal">out</tt> and <tt class="docutils literal">in_out</tt>; the library provides
both so you can make your interfaces more self-documenting.</p>
</div>
<div class="section" id="positional-arguments">
@@ -624,15 +624,15 @@
graphs::depth_first_search(x, y);
</pre>
<!-- @ignore() -->
-<p><tt class="docutils literal"><span class="pre">x</span></tt> will always be interpreted as a graph and <tt class="docutils literal"><span class="pre">y</span></tt> will always
+<p><tt class="docutils literal">x</tt> will always be interpreted as a graph and <tt class="docutils literal">y</tt> will always
be interpreted as a visitor.</p>
</div>
<div class="section" id="default-expression-evaluation">
<h4>2.1.5.5 Default Expression Evaluation</h4>
<div class="compound">
<p class="compound-first">Note that in our example, the value of the graph parameter is
-used in the default expressions for <tt class="docutils literal"><span class="pre">root_vertex</span></tt>,
-<tt class="docutils literal"><span class="pre">index_map</span></tt> and <tt class="docutils literal"><span class="pre">color_map</span></tt>.</p>
+used in the default expressions for <tt class="docutils literal">root_vertex</tt>,
+<tt class="docutils literal">index_map</tt> and <tt class="docutils literal">color_map</tt>.</p>
<pre class="compound-middle literal-block">
(required (<strong>graph</strong>, *) )
(optional
@@ -651,7 +651,7 @@
<p class="compound-first">A default expression is never evaluatedâor even instantiatedâif
an actual argument is passed for that parameter. We can actually
demonstrate that with our code so far by replacing the body of
-<tt class="docutils literal"><span class="pre">depth_first_search</span></tt> with something that prints the arguments:</p>
+<tt class="docutils literal">depth_first_search</tt> with something that prints the arguments:</p>
<pre class="compound-middle literal-block">
#include <boost/graph/depth_first_search.hpp> // for dfs_visitor
@@ -677,7 +677,7 @@
}
</pre>
<p class="compound-last">Despite the fact that default expressions such as
-<tt class="docutils literal"><span class="pre">vertices(graph).first</span></tt> are ill-formed for the given <tt class="docutils literal"><span class="pre">graph</span></tt>
+<tt class="docutils literal"><span class="pre">vertices(graph).first</span></tt> are ill-formed for the given <tt class="docutils literal">graph</tt>
arguments, both calls will compile, and each one will print
exactly the same thing.</p>
</div>
@@ -704,24 +704,24 @@
<div class="section" id="signature-matching-and-overloading">
<h4>2.1.5.6 Signature Matching and Overloading</h4>
<p>In fact, the function signature is so general that any call to
-<tt class="docutils literal"><span class="pre">depth_first_search</span></tt> with fewer than five arguments will match
+<tt class="docutils literal">depth_first_search</tt> with fewer than five arguments will match
our function, provided we pass <em>something</em> for the required
-<tt class="docutils literal"><span class="pre">graph</span></tt> parameter. That might not seem to be a problem at first;
+<tt class="docutils literal">graph</tt> parameter. That might not seem to be a problem at first;
after all, if the arguments don't match the requirements imposed by
-the implementation of <tt class="docutils literal"><span class="pre">depth_first_search</span></tt>, a compilation error
+the implementation of <tt class="docutils literal">depth_first_search</tt>, a compilation error
will occur later, when its body is instantiated.</p>
<p>There are at least three problems with very general function
signatures.</p>
<ol class="arabic simple">
-<li>By the time our <tt class="docutils literal"><span class="pre">depth_first_search</span></tt> is instantiated, it has
+<li>By the time our <tt class="docutils literal">depth_first_search</tt> is instantiated, it has
been selected as the best matching overload. Some other
-<tt class="docutils literal"><span class="pre">depth_first_search</span></tt> overload might've worked had it been
+<tt class="docutils literal">depth_first_search</tt> overload might've worked had it been
chosen instead. By the time we see a compilation error, there's
no chance to change that decision.</li>
<li>Even if there are no overloads, error messages generated at
instantiation time usually expose users to confusing
implementation details. For example, users might see references
-to names generated by <tt class="docutils literal"><span class="pre">BOOST_PARAMETER_FUNCTION</span></tt> such as
+to names generated by <tt class="docutils literal">BOOST_PARAMETER_FUNCTION</tt> such as
<tt class="docutils literal"><span class="pre">graphs::detail::depth_first_search_with_named_params</span></tt> (or
worseâthink of the kinds of errors you get from your STL
implementation when you make a mistake).<a class="footnote-reference" href="#conceptcpp" id="id7"><sup>4</sup></a></li>
@@ -729,13 +729,13 @@
signatures have been the subject of much discussion, especially
in the presence of <a class="reference external" href="http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/lwg-defects.html#225">unqualified calls</a>. If all we want is to
avoid unintentional argument-dependent lookup (ADL), we can
-isolate <tt class="docutils literal"><span class="pre">depth_first_search</span></tt> in a namespace containing no
+isolate <tt class="docutils literal">depth_first_search</tt> in a namespace containing no
types<a class="footnote-reference" href="#using" id="id8"><sup>6</sup></a>, but suppose we <em>want</em> it to found via ADL?</li>
</ol>
<p>It's usually a good idea to prevent functions from being considered
for overload resolution when the passed argument types aren't
appropriate. The library already does this when the required
-<tt class="docutils literal"><span class="pre">graph</span></tt> parameter is not supplied, but we're not likely to see a
+<tt class="docutils literal">graph</tt> parameter is not supplied, but we're not likely to see a
depth first search that doesn't take a graph to operate on.
Suppose, instead, that we found a different depth first search
algorithm that could work on graphs that don't model
@@ -758,12 +758,12 @@
<div class="section" id="adding-type-requirements">
<h5>2.1.5.6.1 Adding Type Requirements</h5>
<p>We really don't want the compiler to consider the original version
-of <tt class="docutils literal"><span class="pre">depth_first_search</span></tt> because the <tt class="docutils literal"><span class="pre">root_vertex</span></tt> argument,
-<tt class="docutils literal"><span class="pre">"hello"</span></tt>, doesn't meet the <a class="reference internal" href="#parameter-table">requirement</a> that it match the
-<tt class="docutils literal"><span class="pre">graph</span></tt> parameter's vertex descriptor type. Instead, this call
+of <tt class="docutils literal">depth_first_search</tt> because the <tt class="docutils literal">root_vertex</tt> argument,
+<tt class="docutils literal">"hello"</tt>, doesn't meet the <a class="reference internal" href="#parameter-table">requirement</a> that it match the
+<tt class="docutils literal">graph</tt> parameter's vertex descriptor type. Instead, this call
should just invoke our new overload. To take the original
-<tt class="docutils literal"><span class="pre">depth_first_search</span></tt> overload out of contention, we need to tell
-the library about this requirement by replacing the <tt class="docutils literal"><span class="pre">*</span></tt> element
+<tt class="docutils literal">depth_first_search</tt> overload out of contention, we need to tell
+the library about this requirement by replacing the <tt class="docutils literal">*</tt> element
of the signature with the required type, in parentheses:</p>
<pre class="literal-block">
(root_vertex,
@@ -771,28 +771,66 @@
*vertices(graph).first)
</pre>
<!-- @ignore() -->
-<p>Now the original <tt class="docutils literal"><span class="pre">depth_first_search</span></tt> will only be called when
-the <tt class="docutils literal"><span class="pre">root_vertex</span></tt> argument can be converted to the graph's vertex
+<p>Now the original <tt class="docutils literal">depth_first_search</tt> will only be called when
+the <tt class="docutils literal">root_vertex</tt> argument can be converted to the graph's vertex
descriptor type, and our example that <em>was</em> ambiguous will smoothly
call the new overload.</p>
<div class="note">
<p class="first admonition-title">Note</p>
-<p class="last">The <em>type</em> of the <tt class="docutils literal"><span class="pre">graph</span></tt> argument is available in the
-signatureâand in the function bodyâas <tt class="docutils literal"><span class="pre">graph_type</span></tt>. In
-general, to access the type of any parameter <em>foo</em>, write <em>foo</em><tt class="docutils literal"><span class="pre">_type</span></tt>.</p>
+<p class="last">The <em>type</em> of the <tt class="docutils literal">graph</tt> argument is available in the
+signatureâand in the function bodyâas <tt class="docutils literal">graph_type</tt>. In
+general, to access the type of any parameter <em>foo</em>, write <em>foo</em><tt class="docutils literal">_type</tt>.</p>
</div>
</div>
<div class="section" id="predicate-requirements">
<h5>2.1.5.6.2 Predicate Requirements</h5>
<p>The requirements on other arguments are a bit more interesting than
-those on <tt class="docutils literal"><span class="pre">root_vertex</span></tt>; they can't be described in terms of simple
+those on <tt class="docutils literal">root_vertex</tt>; they can't be described in terms of simple
type matching. Instead, they must be described in terms of <a class="reference external" href="../../../mpl/doc/refmanual/metafunction.html">MPL
Metafunctions</a>. There's no space to give a complete description
of metafunctions or of graph library details here, but we'll show
you the complete signature with maximal checking, just to give you
a feel for how it's done. Each predicate metafunction is enclosed
-in parentheses <em>and preceded by an asterisk</em>, as follows:</p>
+in parentheses <em>and preceded by an asterix</em>, as follows:</p>
<pre class="literal-block">
+// We first need to define a few metafunction that we use in the
+// predicates below.
+
+template <class G>
+struct traversal_category
+{
+ typedef typename boost::graph_traits<G>::traversal_category type;
+};
+
+template <class G>
+struct vertex_descriptor
+{
+ typedef typename boost::graph_traits<G>::vertex_descriptor type;
+};
+
+template <class G>
+struct value_type
+{
+ typedef typename boost::property_traits<G>::value_type type;
+};
+
+template <class G>
+struct key_type
+{
+ typedef typename boost::property_traits<G>::key_type type;
+};
+
+template<class Size, class IndexMap>
+boost::iterator_property_map<
+ boost::default_color_type*, IndexMap
+ , boost::default_color_type, boost::default_color_type&
+>
+default_color_map(Size num_vertices, IndexMap const& index_map)
+{
+ std::vector<boost::default_color_type> colors(num_vertices);
+ return &colors[0];
+}
+
BOOST_PARAMETER_FUNCTION(
(void), depth_first_search, graphs
@@ -800,12 +838,10 @@
(graph
, <strong>*(boost::mpl::and_<
boost::is_convertible<
- boost::graph_traits<_>::traversal_category
- , boost::incidence_graph_tag
+ traversal_category<_>, boost::incidence_graph_tag
>
, boost::is_convertible<
- boost::graph_traits<_>::traversal_category
- , boost::vertex_list_graph_tag
+ traversal_category<_>, boost::vertex_list_graph_tag
>
>)</strong> ))
@@ -813,25 +849,21 @@
(visitor, *, boost::dfs_visitor<>()) // not checkable
(root_vertex
- , (typename boost::graph_traits<graphs::graph::_>::vertex_descriptor)
+ , (vertex_descriptor<graphs::graph::_>)
, *vertices(graph).first)
(index_map
, <strong>*(boost::mpl::and_<
- boost::is_integral<
- boost::property_traits<_>::value_type
- >
+ boost::is_integral<value_type<_> >
, boost::is_same<
- typename boost::graph_traits<graphs::graph::_>::vertex_descriptor
- , boost::property_traits<_>::key_type
+ vertex_descriptor<graphs::graph::_>, key_type<_>
>
>)</strong>
, get(boost::vertex_index,graph))
(in_out(color_map)
, <strong>*(boost::is_same<
- typename boost::graph_traits<graphs::graph::_>::vertex_descriptor
- , boost::property_traits<_>::key_type
+ vertex_descriptor<graphs::graph::_>, key_type<_>
>)</strong>
, default_color_map(num_vertices(graph), index_map) )
)
@@ -839,6 +871,8 @@
</pre>
<!-- @example.prepend('''
#include <boost/parameter.hpp>
+#include <boost/graph/adjacency_list.hpp>
+#include <boost/graph/depth_first_search.hpp>
BOOST_PARAMETER_NAME((_graph, graphs) graph)
BOOST_PARAMETER_NAME((_visitor, graphs) visitor)
@@ -847,35 +881,32 @@
BOOST_PARAMETER_NAME((_color_map, graphs) color_map)
using boost::mpl::_;
+''') -->
+<!-- @example.append('''
+{}
-namespace boost
+int main()
{
- struct incidence_graph_tag {};
- struct vertex_list_graph_tag {};
-
- int vertex_index = 0;
+ typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS> G;
- template <class T>
- struct graph_traits
- {
- typedef int traversal_category;
- typedef int vertex_descriptor;
- };
+ enum {u, v, w, x, y, z, N};
+ typedef std::pair<int, int> E;
+ E edges[] = {E(u, v), E(u, x), E(x, v), E(y, x), E(v, y), E(w, y),
+ E(w,z), E(z, z)};
+ G g(edges, edges + sizeof(edges) / sizeof(E), N);
- template <class T>
- struct property_traits
- {
- typedef int value_type;
- typedef int key_type;
- };
-
- template <class T = int>
- struct dfs_visitor
- {};
-}''') -->
-<!-- @example.append('''
-{}''') -->
+ depth_first_search(g);
+ depth_first_search(g, _root_vertex = (int)x);
+}
+''') -->
<!-- @test('compile') -->
+<p>Note the use of the nested <cite>tag::_</cite>. This is a shortcut for:</p>
+<pre class="literal-block">
+value_type<boost::mpl::_2, tag>
+</pre>
+<!-- @ignore() -->
+<p>Intended to be used to access preceding arguments types in the
+predicates.</p>
<p>We acknowledge that this signature is pretty hairy looking.
Fortunately, it usually isn't necessary to so completely encode the
type requirements on arguments to generic functions. However, it
@@ -889,7 +920,7 @@
<h4>2.1.5.7 Deduced Parameters</h4>
<p>To illustrate deduced parameter support we'll have to leave behind
our example from the Graph library. Instead, consider the example
-of the <a class="reference external" href="../../../python/doc/v2/def.html"><tt class="docutils literal"><span class="pre">def</span></tt></a> function from <a class="reference external" href="../../../python/doc/index.html">Boost.Python</a>. Its signature is
+of the <a class="reference external" href="../../../python/doc/v2/def.html"><tt class="docutils literal">def</tt></a> function from <a class="reference external" href="../../../python/doc/index.html">Boost.Python</a>. Its signature is
roughly as follows:</p>
<pre class="literal-block">
template <
@@ -910,13 +941,13 @@
this example: although it means something analogous in Boost.Python
to what it means in the Parameter library, for the purposes of this
exercise you can think of it as being completely different.</p>
-<p>When calling <tt class="docutils literal"><span class="pre">def</span></tt>, only two arguments are required. The
+<p>When calling <tt class="docutils literal">def</tt>, only two arguments are required. The
association between any additional arguments and their parameters
can be determined by the types of the arguments actually passed, so
the caller is neither required to remember argument positions or
explicitly specify parameter names for those arguments. To
-generate this interface using <tt class="docutils literal"><span class="pre">BOOST_PARAMETER_FUNCTION</span></tt>, we need
-only enclose the deduced parameters in a <tt class="docutils literal"><span class="pre">(deduced</span> <span class="pre">â¦)</span></tt> clause, as
+generate this interface using <tt class="docutils literal">BOOST_PARAMETER_FUNCTION</tt>, we need
+only enclose the deduced parameters in a <tt class="docutils literal">(deduced â¦)</tt> clause, as
follows:</p>
<pre class="literal-block">
namespace mpl = boost::mpl;
@@ -987,9 +1018,9 @@
''') -->
<div class="admonition-syntax-note admonition">
<p class="first admonition-title">Syntax Note</p>
-<p class="last">A <tt class="docutils literal"><span class="pre">(deduced</span> <span class="pre">â¦)</span></tt> clause always contains a <tt class="docutils literal"><span class="pre">(required</span> <span class="pre">â¦)</span></tt>
-and/or an <tt class="docutils literal"><span class="pre">(optional</span> <span class="pre">â¦)</span></tt> subclause, and must follow any
-<tt class="docutils literal"><span class="pre">(required</span> <span class="pre">â¦)</span></tt> or <tt class="docutils literal"><span class="pre">(optional</span> <span class="pre">â¦)</span></tt> clauses indicating
+<p class="last">A <tt class="docutils literal">(deduced â¦)</tt> clause always contains a <tt class="docutils literal">(required â¦)</tt>
+and/or an <tt class="docutils literal">(optional â¦)</tt> subclause, and must follow any
+<tt class="docutils literal">(required â¦)</tt> or <tt class="docutils literal">(optional â¦)</tt> clauses indicating
nondeduced parameters at the outer level.</p>
</div>
<p>With the declaration above, the following two calls are equivalent:</p>
@@ -1000,8 +1031,8 @@
<!-- @example.prepend('''
int main()
{''') -->
-<p>If the user wants to pass a <tt class="docutils literal"><span class="pre">policies</span></tt> argument that was also,
-for some reason, convertible to <tt class="docutils literal"><span class="pre">char</span> <span class="pre">const*</span></tt>, she can always
+<p>If the user wants to pass a <tt class="docutils literal">policies</tt> argument that was also,
+for some reason, convertible to <tt class="docutils literal">char const*</tt>, she can always
specify the parameter name explicitly, as follows:</p>
<pre class="literal-block">
def(
@@ -1015,9 +1046,9 @@
</div>
<div class="section" id="parameter-enabled-member-functions">
<h2><a class="toc-backref" href="#id28">2.2 Parameter-Enabled Member Functions</a></h2>
-<p>The <tt class="docutils literal"><span class="pre">BOOST_PARAMETER_MEMBER_FUNCTION</span></tt> and
-<tt class="docutils literal"><span class="pre">BOOST_PARAMETER_CONST_MEMBER_FUNCTION</span></tt> macros accept exactly the
-same arguments as <tt class="docutils literal"><span class="pre">BOOST_PARAMETER_FUNCTION</span></tt>, but are designed to
+<p>The <tt class="docutils literal">BOOST_PARAMETER_MEMBER_FUNCTION</tt> and
+<tt class="docutils literal">BOOST_PARAMETER_CONST_MEMBER_FUNCTION</tt> macros accept exactly the
+same arguments as <tt class="docutils literal">BOOST_PARAMETER_FUNCTION</tt>, but are designed to
be used within the body of a class:</p>
<pre class="literal-block">
BOOST_PARAMETER_NAME(arg1)
@@ -1064,7 +1095,7 @@
<div class="section" id="static-member-functions">
<h3>2.2.1 Static Member Functions</h3>
<p>To expose a static member function, simply insert the keyword
-â<tt class="docutils literal"><span class="pre">static</span></tt>â before the function name:</p>
+â<tt class="docutils literal">static</tt>â before the function name:</p>
<pre class="literal-block">
BOOST_PARAMETER_NAME(arg1)
@@ -1118,11 +1149,11 @@
<!-- @example.prepend('''
#include <boost/parameter.hpp>
#include <iostream>''') -->
-<p>Note that the bitwise or (â<tt class="docutils literal"><span class="pre">|</span></tt>â) operator has a special
+<p>Note that the bitwise or (â<tt class="docutils literal">|</tt>â) operator has a special
meaning when applied to keyword objects that are passed to an
<span class="concept">ArgumentPack</span>'s indexing operator: it is used to indicate a
-default value. In this case if there is no <tt class="docutils literal"><span class="pre">index</span></tt> parameter in
-the <span class="concept">ArgumentPack</span>, <tt class="docutils literal"><span class="pre">42</span></tt> will be used instead.</p>
+default value. In this case if there is no <tt class="docutils literal">index</tt> parameter in
+the <span class="concept">ArgumentPack</span>, <tt class="docutils literal">42</tt> will be used instead.</p>
<p>Now we are ready to write the parameter-enabled constructor
interface:</p>
<pre class="literal-block">
@@ -1133,8 +1164,8 @@
, (required (name,*)) (optional (index,*))) // no semicolon
};
</pre>
-<p>Since we have supplied a default value for <tt class="docutils literal"><span class="pre">index</span></tt> but not for
-<tt class="docutils literal"><span class="pre">name</span></tt>, only <tt class="docutils literal"><span class="pre">name</span></tt> is required. We can exercise our new
+<p>Since we have supplied a default value for <tt class="docutils literal">index</tt> but not for
+<tt class="docutils literal">name</tt>, only <tt class="docutils literal">name</tt> is required. We can exercise our new
interface as follows:</p>
<pre class="literal-block">
myclass x("bob", 3); // positional
@@ -1157,7 +1188,7 @@
class class_;
</pre>
<!-- @ignore() -->
-<p>Only the first argument, <tt class="docutils literal"><span class="pre">ValueType</span></tt>, is required.</p>
+<p>Only the first argument, <tt class="docutils literal">ValueType</tt>, is required.</p>
<div class="section" id="named-template-parameters">
<h3>2.4.1 Named Template Parameters</h3>
<p>First, we'll build an interface that allows users to pass arguments
@@ -1190,7 +1221,7 @@
</pre>
<!-- @example.prepend('#include <boost/parameter.hpp>') -->
<!-- @test('compile') -->
-<p>The declaration of the <tt class="docutils literal"><span class="pre">class_type</span></tt> keyword you see here is
+<p>The declaration of the <tt class="docutils literal">class_type</tt> keyword you see here is
equivalent to:</p>
<pre class="literal-block">
namespace boost { namespace python {
@@ -1206,7 +1237,7 @@
<!-- @example.prepend('#include <boost/parameter.hpp>') -->
<!-- @test('compile') -->
<p>It defines a keyword tag type named <tt class="docutils literal"><span class="pre">tag::class_type</span></tt> and a
-<em>parameter passing template</em> named <tt class="docutils literal"><span class="pre">class_type</span></tt>.</p>
+<em>parameter passing template</em> named <tt class="docutils literal">class_type</tt>.</p>
</div>
<div class="section" id="class-template-skeleton">
<h4>2.4.1.2 Class Template Skeleton</h4>
@@ -1283,11 +1314,11 @@
</div>
<div class="section" id="argument-packs-and-parameter-extraction">
<span id="binding-intro"></span><h4>2.4.1.4 Argument Packs and Parameter Extraction</h4>
-<p>Next, within the body of <tt class="docutils literal"><span class="pre">class_</span></tt> , we use the <span class="concept">ParameterSpec</span>'s
-nested <tt class="docutils literal"><span class="pre">::bind<</span> <span class="pre">â¦</span> <span class="pre">></span></tt> template to bundle the actual arguments into an
-<a class="reference external" href="reference.html#argumentpack"><span class="concept">ArgumentPack</span></a> type, and then use the library's <tt class="docutils literal"><span class="pre">value_type<</span> <span class="pre">â¦</span> <span class="pre">></span></tt>
-metafunction to extract âlogical parametersâ. <tt class="docutils literal"><span class="pre">value_type<</span> <span class="pre">â¦</span> <span class="pre">></span></tt> is
-a lot like <tt class="docutils literal"><span class="pre">binding<</span> <span class="pre">â¦</span> <span class="pre">></span></tt>, but no reference is added to the actual
+<p>Next, within the body of <tt class="docutils literal">class_</tt> , we use the <span class="concept">ParameterSpec</span>'s
+nested <tt class="docutils literal">::bind< ⦠></tt> template to bundle the actual arguments into an
+<a class="reference external" href="reference.html#argumentpack"><span class="concept">ArgumentPack</span></a> type, and then use the library's <tt class="docutils literal">value_type< ⦠></tt>
+metafunction to extract âlogical parametersâ. <tt class="docutils literal">value_type< ⦠></tt> is
+a lot like <tt class="docutils literal">binding< ⦠></tt>, but no reference is added to the actual
argument type. Note that defaults are specified by passing it an
optional third argument:</p>
<pre class="literal-block">
@@ -1368,13 +1399,13 @@
<div class="section" id="deduced-template-parameters">
<h3>2.4.3 Deduced Template Parameters</h3>
<p>To apply a deduced parameter interface here, we need only make the
-type requirements a bit tighter so the <tt class="docutils literal"><span class="pre">held_type</span></tt> and
-<tt class="docutils literal"><span class="pre">copyable</span></tt> parameters can be crisply distinguished from the
-others. <a class="reference external" href="../../../python/doc/index.html">Boost.Python</a> does this by requiring that <tt class="docutils literal"><span class="pre">base_list</span></tt> be
-a specialization of its <tt class="docutils literal"><span class="pre">bases<</span> <span class="pre">â¦</span> <span class="pre">></span></tt> template (as opposed to
-being any old MPL sequence) and by requiring that <tt class="docutils literal"><span class="pre">copyable</span></tt>, if
+type requirements a bit tighter so the <tt class="docutils literal">held_type</tt> and
+<tt class="docutils literal">copyable</tt> parameters can be crisply distinguished from the
+others. <a class="reference external" href="../../../python/doc/index.html">Boost.Python</a> does this by requiring that <tt class="docutils literal">base_list</tt> be
+a specialization of its <tt class="docutils literal">bases< ⦠></tt> template (as opposed to
+being any old MPL sequence) and by requiring that <tt class="docutils literal">copyable</tt>, if
explicitly supplied, be <tt class="docutils literal"><span class="pre">boost::noncopyable</span></tt>. One easy way of
-identifying specializations of <tt class="docutils literal"><span class="pre">bases<</span> <span class="pre">â¦</span> <span class="pre">></span></tt> is to derive them all
+identifying specializations of <tt class="docutils literal">bases< ⦠></tt> is to derive them all
from the same class, as an implementation detail:</p>
<pre class="literal-block">
namespace boost { namespace python {
@@ -1500,9 +1531,9 @@
<div class="section" id="fine-grained-name-control">
<h2><a class="toc-backref" href="#id32">3.1 Fine-Grained Name Control</a></h2>
<p>If you don't like the leading-underscore naming convention used
-to refer to keyword objects, or you need the name <tt class="docutils literal"><span class="pre">tag</span></tt> for
+to refer to keyword objects, or you need the name <tt class="docutils literal">tag</tt> for
something other than the keyword type namespace, there's another
-way to use <tt class="docutils literal"><span class="pre">BOOST_PARAMETER_NAME</span></tt>:</p>
+way to use <tt class="docutils literal">BOOST_PARAMETER_NAME</tt>:</p>
<pre class="literal-block">
BOOST_PARAMETER_NAME(<strong>(</strong><em>object-name</em><strong>,</strong> <em>tag-namespace</em><strong>)</strong> <em>parameter-name</em>)
</pre>
@@ -1556,7 +1587,7 @@
#include <iostream>''') -->
<p>Also, <span class="concept">ArgumentPack</span>s can be composed using the comma operator.
The extra parentheses below are used to prevent the compiler from
-seeing two separate arguments to <tt class="docutils literal"><span class="pre">print_name_and_index</span></tt>:</p>
+seeing two separate arguments to <tt class="docutils literal">print_name_and_index</tt>:</p>
<pre class="literal-block">
BOOST_PARAMETER_NAME(name)
@@ -1573,8 +1604,8 @@
<a class="reference external" href="reference.html#parameterspec"><span class="concept">ParameterSpec</span></a>. As introduced described in the section on <a class="reference internal" href="#class-template-signatures">Class
Template Signatures</a>, a <span class="concept">ParameterSpec</span> describes the positional
order of parameters and any associated type requirements. Just as
-we can build an <span class="concept">ArgumentPack</span> <em>type</em> with its nested <tt class="docutils literal"><span class="pre">::bind<</span> <span class="pre">â¦</span>
-<span class="pre">></span></tt> template, we can build an <span class="concept">ArgumentPack</span> <em>object</em> by invoking
+we can build an <span class="concept">ArgumentPack</span> <em>type</em> with its nested <tt class="docutils literal">::bind< â¦
+></tt> template, we can build an <span class="concept">ArgumentPack</span> <em>object</em> by invoking
its function call operator:</p>
<pre class="literal-block">
parameter::parameters<
@@ -1607,7 +1638,7 @@
<div class="section" id="extracting-parameter-types">
<h3>3.2.2 Extracting Parameter Types</h3>
<p>If we want to know the types of the arguments passed to
-<tt class="docutils literal"><span class="pre">print_name_and_index</span></tt>, we have a couple of options. The
+<tt class="docutils literal">print_name_and_index</tt>, we have a couple of options. The
simplest and least error-prone approach is to forward them to a
function template and allow <em>it</em> to do type deduction:</p>
<pre class="literal-block">
@@ -1643,8 +1674,8 @@
<!-- @test('run') -->
<p>Occasionally one needs to deduce argument types without an extra
layer of function call. For example, suppose we wanted to return
-twice the value of the <tt class="docutils literal"><span class="pre">index</span></tt> parameter? In that
-case we can use the <tt class="docutils literal"><span class="pre">value_type<</span> <span class="pre">â¦</span> <span class="pre">></span></tt> metafunction introduced
+twice the value of the <tt class="docutils literal">index</tt> parameter? In that
+case we can use the <tt class="docutils literal">value_type< ⦠></tt> metafunction introduced
<a class="reference internal" href="#binding-intro">earlier</a>:</p>
<pre class="literal-block">
BOOST_PARAMETER_NAME(index)
@@ -1671,17 +1702,17 @@
assert(six == 6);
}''') -->
<!-- @test('run', howmany='all') -->
-<p>Note that if we had used <tt class="docutils literal"><span class="pre">binding<</span> <span class="pre">â¦</span> <span class="pre">></span></tt> rather than <tt class="docutils literal"><span class="pre">value_type<</span> <span class="pre">â¦</span>
-<span class="pre">></span></tt>, we would end up returning a reference to the temporary created in
-the <tt class="docutils literal"><span class="pre">2</span> <span class="pre">*</span> <span class="pre">â¦</span></tt> expression.</p>
+<p>Note that if we had used <tt class="docutils literal">binding< ⦠></tt> rather than <tt class="docutils literal">value_type< â¦
+></tt>, we would end up returning a reference to the temporary created in
+the <tt class="docutils literal">2 * â¦</tt> expression.</p>
</div>
<div class="section" id="lazy-default-computation">
<h3>3.2.3 Lazy Default Computation</h3>
<p>When a default value is expensive to compute, it would be
preferable to avoid it until we're sure it's absolutely necessary.
-<tt class="docutils literal"><span class="pre">BOOST_PARAMETER_FUNCTION</span></tt> takes care of that problem for us, but
+<tt class="docutils literal">BOOST_PARAMETER_FUNCTION</tt> takes care of that problem for us, but
when using <span class="concept">ArgumentPack</span>s explicitly, we need a tool other than
-<tt class="docutils literal"><span class="pre">operator|</span></tt>:</p>
+<tt class="docutils literal">operator|</tt>:</p>
<pre class="literal-block">
BOOST_PARAMETER_NAME(s1)
BOOST_PARAMETER_NAME(s2)
@@ -1709,8 +1740,8 @@
int main()
{}''') -->
<!-- @test('run') -->
-<p>In the example above, the string <tt class="docutils literal"><span class="pre">"hello,</span> <span class="pre">world"</span></tt> is constructed
-despite the fact that the user passed us a value for <tt class="docutils literal"><span class="pre">s3</span></tt>. To
+<p>In the example above, the string <tt class="docutils literal">"hello, world"</tt> is constructed
+despite the fact that the user passed us a value for <tt class="docutils literal">s3</tt>. To
remedy that, we can compute the default value <em>lazily</em> (that is,
only on demand), by using <tt class="docutils literal"><span class="pre">boost::bind()</span></tt> to create a function
object.</p>
@@ -1720,12 +1751,10 @@
<!-- by combining the logical-or (â``||``â) operator -->
<!-- with a function object built by the Boost Lambda_ library: [#bind]_ -->
<pre class="literal-block">
-using boost::bind;
-using boost::ref;
-
typename parameter::binding<
- ArgumentPack, tag::s3, std::string
->::type s3 = args[_s3 <strong>|| bind(std::plus<std::string>(), ref(s1), ref(s2))</strong> ];
+ ArgumentPack, <a class="reference external" href="tag::s3">tag::s3</a>, std::string
+>::type s3 = args[_s3
+ <strong>|| boost::bind(std::plus<std::string>(), boost::ref(s1), boost::ref(s2))</strong> ];
</pre>
<!-- @example.prepend('''
#include <boost/bind.hpp>
@@ -1757,15 +1786,15 @@
<!-- .. _Lambda: ../../../lambda/index.html -->
<div class="sidebar">
<p class="first sidebar-title">Mnemonics</p>
-<p class="last">To remember the difference between <tt class="docutils literal"><span class="pre">|</span></tt> and <tt class="docutils literal"><span class="pre">||</span></tt>, recall that
-<tt class="docutils literal"><span class="pre">||</span></tt> normally uses short-circuit evaluation: its second
-argument is only evaluated if its first argument is <tt class="docutils literal"><span class="pre">false</span></tt>.
-Similarly, in <tt class="docutils literal"><span class="pre">color_map[param||f]</span></tt>, <tt class="docutils literal"><span class="pre">f</span></tt> is only invoked if
-no <tt class="docutils literal"><span class="pre">color_map</span></tt> argument was supplied.</p>
+<p class="last">To remember the difference between <tt class="docutils literal">|</tt> and <tt class="docutils literal">||</tt>, recall that
+<tt class="docutils literal">||</tt> normally uses short-circuit evaluation: its second
+argument is only evaluated if its first argument is <tt class="docutils literal">false</tt>.
+Similarly, in <tt class="docutils literal"><span class="pre">color_map[param||f]</span></tt>, <tt class="docutils literal">f</tt> is only invoked if
+no <tt class="docutils literal">color_map</tt> argument was supplied.</p>
</div>
-<p>The expression <tt class="docutils literal"><span class="pre">bind(std::plus<std::string>(),</span> <span class="pre">ref(s1),</span> <span class="pre">ref(s2))</span></tt> yields
+<p>The expression <tt class="docutils literal"><span class="pre">bind(std::plus<std::string>(),</span> ref(s1), ref(s2))</tt> yields
a <em>function object</em> that, when invoked, adds the two strings together.
-That function will only be invoked if no <tt class="docutils literal"><span class="pre">s3</span></tt> argument is supplied by
+That function will only be invoked if no <tt class="docutils literal">s3</tt> argument is supplied by
the caller.</p>
<!-- The expression ``lambda::var(s1)+lambda::var(s2)`` yields a -->
<!-- *function object* that, when invoked, adds the two strings -->
@@ -1781,7 +1810,7 @@
issues that will help you use the library more effectively.</p>
<div class="section" id="keyword-naming">
<h2><a class="toc-backref" href="#id35">4.1 Keyword Naming</a></h2>
-<p><tt class="docutils literal"><span class="pre">BOOST_PARAMETER_NAME</span></tt> prepends a leading underscore to the names
+<p><tt class="docutils literal">BOOST_PARAMETER_NAME</tt> prepends a leading underscore to the names
of all our keyword objects in order to avoid the following
usually-silent bug:</p>
<pre class="literal-block">
@@ -1815,19 +1844,19 @@
</pre>
<!-- @ignore() -->
<p>Although in the case above, the user was trying to pass the value
-<tt class="docutils literal"><span class="pre">3</span></tt> as the <tt class="docutils literal"><span class="pre">age</span></tt> parameter to <tt class="docutils literal"><span class="pre">g</span></tt>, what happened instead
-was that <tt class="docutils literal"><span class="pre">f</span></tt>'s <tt class="docutils literal"><span class="pre">age</span></tt> argument got reassigned the value 3,
-and was then passed as a positional argument to <tt class="docutils literal"><span class="pre">g</span></tt>. Since
-<tt class="docutils literal"><span class="pre">g</span></tt>'s first positional parameter is <tt class="docutils literal"><span class="pre">name</span></tt>, the default value
-for <tt class="docutils literal"><span class="pre">age</span></tt> is used, and g prints <tt class="docutils literal"><span class="pre">3:42</span></tt>. Our leading
+<tt class="docutils literal">3</tt> as the <tt class="docutils literal">age</tt> parameter to <tt class="docutils literal">g</tt>, what happened instead
+was that <tt class="docutils literal">f</tt>'s <tt class="docutils literal">age</tt> argument got reassigned the value 3,
+and was then passed as a positional argument to <tt class="docutils literal">g</tt>. Since
+<tt class="docutils literal">g</tt>'s first positional parameter is <tt class="docutils literal">name</tt>, the default value
+for <tt class="docutils literal">age</tt> is used, and g prints <tt class="docutils literal">3:42</tt>. Our leading
underscore naming convention that makes this problem less likely
to occur.</p>
<p>In this particular case, the problem could have been detected if
-f's <tt class="docutils literal"><span class="pre">age</span></tt> parameter had been made <tt class="docutils literal"><span class="pre">const</span></tt>, which is always a
+f's <tt class="docutils literal">age</tt> parameter had been made <tt class="docutils literal">const</tt>, which is always a
good idea whenever possible. Finally, we recommend that you use
an enclosing namespace for all your code, but particularly for
names with leading underscores. If we were to leave out the
-<tt class="docutils literal"><span class="pre">people</span></tt> namespace above, names in the global namespace
+<tt class="docutils literal">people</tt> namespace above, names in the global namespace
beginning with leading underscoresâwhich are reserved to your C++
compilerâmight become irretrievably ambiguous with those in our
unnamed namespace.</p>
@@ -1898,7 +1927,7 @@
int x = <strong>f</strong>(_name = "jill", _index = 3);
</pre>
<p>This option is convenient, but it indiscriminately makes the
-<em>entire</em> contents of <tt class="docutils literal"><span class="pre">lib</span></tt> available without qualification.</p>
+<em>entire</em> contents of <tt class="docutils literal">lib</tt> available without qualification.</p>
</blockquote>
<!-- @example.prepend(namespace_setup) -->
<!-- @example.append('int main() {}') -->
@@ -1928,7 +1957,7 @@
#include <boost/parameter.hpp>
#include <iostream>''') -->
<p>Now users need only a single <em>using-directive</em> to bring in just the
-names of all keywords associated with <tt class="docutils literal"><span class="pre">lib</span></tt>:</p>
+names of all keywords associated with <tt class="docutils literal">lib</tt>:</p>
<pre class="literal-block">
<strong>using namespace lib::keywords;</strong>
int y = lib::f(_name = "bob", _index = 2);
@@ -1959,22 +1988,22 @@
<div class="section" id="no-sfinae-support">
<h2><a class="toc-backref" href="#id39">5.1 No SFINAE Support</a></h2>
<p>Some older compilers don't support SFINAE. If your compiler meets
-that criterion, then Boost headers will <tt class="docutils literal"><span class="pre">#define</span></tt> the preprocessor
-symbol <tt class="docutils literal"><span class="pre">BOOST_NO_SFINAE</span></tt>, and parameter-enabled functions won't be
+that criterion, then Boost headers will <tt class="docutils literal">#define</tt> the preprocessor
+symbol <tt class="docutils literal">BOOST_NO_SFINAE</tt>, and parameter-enabled functions won't be
removed from the overload set based on their signatures.</p>
</div>
<div class="section" id="no-support-for-result-of">
-<h2>5.2 No Support for <a class="reference external" href="../../../utility/utility.htm#result_of"><tt class="docutils literal"><span class="pre">result_of</span></tt></a></h2>
-<p><a class="reference internal" href="#lazy-default-computation">Lazy default computation</a> relies on the <tt class="docutils literal"><span class="pre">result_of</span></tt> class
+<h2>5.2 No Support for <a class="reference external" href="../../../utility/utility.htm#result_of"><tt class="docutils literal">result_of</tt></a></h2>
+<p><a class="reference internal" href="#lazy-default-computation">Lazy default computation</a> relies on the <tt class="docutils literal">result_of</tt> class
template to compute the types of default arguments given the type
of the function object that constructs them. On compilers that
-don't support <tt class="docutils literal"><span class="pre">result_of</span></tt>, <tt class="docutils literal"><span class="pre">BOOST_NO_RESULT_OF</span></tt> will be
-<tt class="docutils literal"><span class="pre">#define</span></tt>d, and the compiler will expect the function object to
-contain a nested type name, <tt class="docutils literal"><span class="pre">result_type</span></tt>, that indicates its
+don't support <tt class="docutils literal">result_of</tt>, <tt class="docutils literal">BOOST_NO_RESULT_OF</tt> will be
+<tt class="docutils literal">#define</tt>d, and the compiler will expect the function object to
+contain a nested type name, <tt class="docutils literal">result_type</tt>, that indicates its
return type when invoked without arguments. To use an ordinary
function as a default generator on those compilers, you'll need to
-wrap it in a class that provides <tt class="docutils literal"><span class="pre">result_type</span></tt> as a <tt class="docutils literal"><span class="pre">typedef</span></tt>
-and invokes the function via its <tt class="docutils literal"><span class="pre">operator()</span></tt>.</p>
+wrap it in a class that provides <tt class="docutils literal">result_type</tt> as a <tt class="docutils literal">typedef</tt>
+and invokes the function via its <tt class="docutils literal">operator()</tt>.</p>
<!-- Can't Declare |ParameterSpec| via ``typedef``
=============================================
@@ -2054,8 +2083,8 @@
<tr class="field"><th class="field-name" colspan="2">Parameter (or âformal parameterâ):</th></tr>
<tr><td> </td><td class="field-body"><p class="first">the name used to refer to an
argument within a function or class template. For example, the
-value of <tt class="docutils literal"><span class="pre">f</span></tt>'s <em>parameter</em> <tt class="docutils literal"><span class="pre">x</span></tt> is given by the <em>argument</em>
-<tt class="docutils literal"><span class="pre">3</span></tt>:</p>
+value of <tt class="docutils literal">f</tt>'s <em>parameter</em> <tt class="docutils literal">x</tt> is given by the <em>argument</em>
+<tt class="docutils literal">3</tt>:</p>
<pre class="last literal-block">
int f(int x) { return x + 1 }
int y = f(3);
@@ -2096,7 +2125,7 @@
Library, don't worry about the meaning of any
Graph-library-specific details you encounter. In this case you
could replace all mentions of vertex descriptor types with
-<tt class="docutils literal"><span class="pre">int</span></tt> in the text, and your understanding of the Parameter
+<tt class="docutils literal">int</tt> in the text, and your understanding of the Parameter
library wouldn't suffer.</td></tr>
</tbody>
</table>
@@ -2114,7 +2143,7 @@
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label">[5]</td><td><em>(<a class="fn-backref" href="#id13">1</a>, <a class="fn-backref" href="#id14">2</a>)</em> Here we're assuming there's a predicate
-metafunction <tt class="docutils literal"><span class="pre">is_keyword_expression</span></tt> that can be used to
+metafunction <tt class="docutils literal">is_keyword_expression</tt> that can be used to
identify models of Boost.Python's KeywordExpression concept.</td></tr>
</tbody>
</table>
@@ -2151,9 +2180,9 @@
function signature depending on the result of some condition,
we can decide whether or not an overload is considered during overload
resolution. The technique is formalized in
-the <a class="reference external" href="../../../utility/enable_if.html"><tt class="docutils literal"><span class="pre">enable_if</span></tt></a> utility. Most recent compilers support SFINAE;
+the <a class="reference external" href="../../../utility/enable_if.html"><tt class="docutils literal">enable_if</tt></a> utility. Most recent compilers support SFINAE;
on compilers that don't support it, the Boost config library
-will <tt class="docutils literal"><span class="pre">#define</span></tt> the symbol <tt class="docutils literal"><span class="pre">BOOST_NO_SFINAE</span></tt>.
+will <tt class="docutils literal">#define</tt> the symbol <tt class="docutils literal">BOOST_NO_SFINAE</tt>.
See
<a class="reference external" href="http://www.semantics.org/once_weakly/w02_SFINAE.pdf">http://www.semantics.org/once_weakly/w02_SFINAE.pdf> for more
information on SFINAE.</td></tr>
@@ -2163,7 +2192,7 @@
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2009-05-31 01:40 UTC.
+Generated on: 2011-11-08 21:40 UTC.
Generated by <a class="reference external" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference external" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
</div>
Modified: trunk/libs/parameter/doc/html/python.html
==============================================================================
--- trunk/libs/parameter/doc/html/python.html (original)
+++ trunk/libs/parameter/doc/html/python.html 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -3,7 +3,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.6: http://docutils.sourceforge.net/" />
+<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The Boost Parameter Library Python Binding Documentation</title>
<meta name="authors" content="David Abrahams Daniel Wallin" />
<meta name="organization" content="BoostPro Computing" />
@@ -47,18 +47,18 @@
<li><a class="reference internal" href="#tutorial" id="id8">Tutorial</a></li>
<li><a class="reference internal" href="#concept-parameterspec" id="id9">concept <span class="concept">ParameterSpec</span></a></li>
<li><a class="reference internal" href="#special-keywords" id="id10"><em>special</em> keywords</a></li>
-<li><a class="reference internal" href="#class-template-init" id="id11">class template <tt class="docutils literal"><span class="pre">init</span></tt></a></li>
-<li><a class="reference internal" href="#class-template-call" id="id12">class template <tt class="docutils literal"><span class="pre">call</span></tt></a></li>
-<li><a class="reference internal" href="#class-template-function" id="id13">class template <tt class="docutils literal"><span class="pre">function</span></tt></a></li>
-<li><a class="reference internal" href="#function-template-def" id="id14">function template <tt class="docutils literal"><span class="pre">def</span></tt></a></li>
+<li><a class="reference internal" href="#class-template-init" id="id11">class template <tt class="docutils literal">init</tt></a></li>
+<li><a class="reference internal" href="#class-template-call" id="id12">class template <tt class="docutils literal">call</tt></a></li>
+<li><a class="reference internal" href="#class-template-function" id="id13">class template <tt class="docutils literal">function</tt></a></li>
+<li><a class="reference internal" href="#function-template-def" id="id14">function template <tt class="docutils literal">def</tt></a></li>
<li><a class="reference internal" href="#portability" id="id15">Portability</a></li>
</ul>
</div>
<div class="section" id="introduction">
<h1><a class="toc-backref" href="#id7">Introduction</a></h1>
-<p><tt class="docutils literal"><span class="pre">boost/parameter/python.hpp</span></tt> introduces a group of <a class="reference external" href="../../../python/doc/v2/def_visitor.html"><tt class="docutils literal"><span class="pre">def_visitors</span></tt></a> that can
+<p><tt class="docutils literal">boost/parameter/python.hpp</tt> introduces a group of <a class="reference external" href="../../../python/doc/v2/def_visitor.html"><tt class="docutils literal">def_visitors</tt></a> that can
be used to easily expose Boost.Parameter-enabled member functions to Python with
-Boost.Python. It also provides a function template <tt class="docutils literal"><span class="pre">def()</span></tt> that can be used
+Boost.Python. It also provides a function template <tt class="docutils literal">def()</tt> that can be used
to expose Boost.Parameter-enabled free functions.</p>
<p>When binding a Boost.Parameter enabled function, the keyword tags
must be specified. Additionally, because Boost.Parameter enabled
@@ -119,10 +119,10 @@
assert(height == 20);
assert(width == 400);
''') -->
-<p>It defines a set of overloaded member functions called <tt class="docutils literal"><span class="pre">open</span></tt> with one
+<p>It defines a set of overloaded member functions called <tt class="docutils literal">open</tt> with one
required parameter and two optional ones. To bind this member function to
Python we use the binding utility <tt class="docutils literal"><span class="pre">boost::parameter::python::function</span></tt>.
-<tt class="docutils literal"><span class="pre">boost::parameter::python::function</span></tt> is a <a class="reference external" href="../../../python/doc/v2/def_visitor.html"><tt class="docutils literal"><span class="pre">def_visitor</span></tt></a> that we'll instantiate
+<tt class="docutils literal"><span class="pre">boost::parameter::python::function</span></tt> is a <a class="reference external" href="../../../python/doc/v2/def_visitor.html"><tt class="docutils literal">def_visitor</tt></a> that we'll instantiate
and pass to <tt class="docutils literal"><span class="pre">boost::python::class_::def()</span></tt>.</p>
<p>To use <tt class="docutils literal"><span class="pre">boost::parameter::python::function</span></tt> we first need to define
a class with forwarding overloads. This is needed because <tt class="docutils literal"><span class="pre">window::open()</span></tt>
@@ -190,8 +190,8 @@
Sequence</a> with the keyword tag types and argument types for the function
specified as function types. The pointer syntax used in <tt class="docutils literal"><span class="pre">tag::width*</span></tt> and
<tt class="docutils literal"><span class="pre">tag::height*</span></tt> means that the parameter is optional. The first element of
-the <a class="reference external" href="../../../mpl/doc/refmanual/sequences.html">MPL Sequence</a> is the return type of the function, in this case <tt class="docutils literal"><span class="pre">void</span></tt>,
-which is passed as the first argument to <tt class="docutils literal"><span class="pre">operator()</span></tt> in the forwarding
+the <a class="reference external" href="../../../mpl/doc/refmanual/sequences.html">MPL Sequence</a> is the return type of the function, in this case <tt class="docutils literal">void</tt>,
+which is passed as the first argument to <tt class="docutils literal">operator()</tt> in the forwarding
class.</p>
<!-- The
pointer syntax means that the parameter is optional, so in this case
@@ -245,24 +245,24 @@
<hr class="docutils" />
<div class="section" id="concept-parameterspec">
<h1><a class="toc-backref" href="#id9">concept <span class="concept">ParameterSpec</span></a></h1>
-<p>A <span class="concept">ParameterSpec</span> is a function type <tt class="docutils literal"><span class="pre">K(T)</span></tt> that describes both the keyword tag,
-<tt class="docutils literal"><span class="pre">K</span></tt>, and the argument type, <tt class="docutils literal"><span class="pre">T</span></tt>, for a parameter.</p>
-<p><tt class="docutils literal"><span class="pre">K</span></tt> is either:</p>
+<p>A <span class="concept">ParameterSpec</span> is a function type <tt class="docutils literal">K(T)</tt> that describes both the keyword tag,
+<tt class="docutils literal">K</tt>, and the argument type, <tt class="docutils literal">T</tt>, for a parameter.</p>
+<p><tt class="docutils literal">K</tt> is either:</p>
<ul class="simple">
-<li>A <em>required</em> keyword of the form <tt class="docutils literal"><span class="pre">Tag</span></tt></li>
-<li><strong>or</strong>, an <em>optional</em> keyword of the form <tt class="docutils literal"><span class="pre">Tag*</span></tt></li>
-<li><strong>or</strong>, a <em>special</em> keyword of the form <tt class="docutils literal"><span class="pre">Tag**</span></tt></li>
+<li>A <em>required</em> keyword of the form <tt class="docutils literal">Tag</tt></li>
+<li><strong>or</strong>, an <em>optional</em> keyword of the form <tt class="docutils literal">Tag*</tt></li>
+<li><strong>or</strong>, a <em>special</em> keyword of the form <tt class="docutils literal">Tag**</tt></li>
</ul>
-<p>where <tt class="docutils literal"><span class="pre">Tag</span></tt> is a keyword tag type, as used in a specialization
+<p>where <tt class="docutils literal">Tag</tt> is a keyword tag type, as used in a specialization
of <a class="reference external" href="../../../parameter/doc/html/reference.html#keyword"><tt class="docutils literal"><span class="pre">boost::parameter::keyword</span></tt></a>.</p>
<p>The <strong>arity range</strong> for an <a class="reference external" href="../../../mpl/doc/refmanual/sequences.html">MPL Sequence</a> of <span class="concept">ParameterSpec</span>'s is
defined as the closed range:</p>
<pre class="literal-block">
-[ mpl::size<S> - number of <em>special</em> keyword tags in <tt class="docutils literal"><span class="pre">S</span></tt>, mpl::size<S> ]
+[ mpl::size<S> - number of <em>special</em> keyword tags in <tt class="docutils literal">S</tt>, mpl::size<S> ]
</pre>
-<p>For example, the <strong>arity range</strong> of <tt class="docutils literal"><span class="pre">mpl::vector2<x(int),y(int)></span></tt> is <tt class="docutils literal"><span class="pre">[2,2]</span></tt>,
-the <strong>arity range</strong> of <tt class="docutils literal"><span class="pre">mpl::vector2<x(int),y*(int)></span></tt> is <tt class="docutils literal"><span class="pre">[2,2]</span></tt> and the
-<strong>arity range</strong> of <tt class="docutils literal"><span class="pre">mpl::vector2<x(int),y**(int)></span></tt> is <tt class="docutils literal"><span class="pre">[1,2]</span></tt>.</p>
+<p>For example, the <strong>arity range</strong> of <tt class="docutils literal"><span class="pre">mpl::vector2<x(int),y(int)></span></tt> is <tt class="docutils literal">[2,2]</tt>,
+the <strong>arity range</strong> of <tt class="docutils literal"><span class="pre">mpl::vector2<x(int),y*(int)></span></tt> is <tt class="docutils literal">[2,2]</tt> and the
+<strong>arity range</strong> of <tt class="docutils literal"><span class="pre">mpl::vector2<x(int),y**(int)></span></tt> is <tt class="docutils literal">[1,2]</tt>.</p>
</div>
<div class="section" id="special-keywords">
<h1><a class="toc-backref" href="#id10"><em>special</em> keywords</a></h1>
@@ -319,20 +319,20 @@
}''') -->
<!-- @build() -->
<!-- .. _example: index.html#dispatching-based-on-the-presence-of-a-default -->
-<p>In the above example the type of the default for <tt class="docutils literal"><span class="pre">color</span></tt> is <tt class="docutils literal"><span class="pre">mpl::false_</span></tt>, a
+<p>In the above example the type of the default for <tt class="docutils literal">color</tt> is <tt class="docutils literal"><span class="pre">mpl::false_</span></tt>, a
type that is distinct from any color map that the user might supply.</p>
-<p>When binding the case outlined above, the default type for <tt class="docutils literal"><span class="pre">color</span></tt> will not
-be convertible to the parameter type. Therefore we need to tag the <tt class="docutils literal"><span class="pre">color</span></tt>
+<p>When binding the case outlined above, the default type for <tt class="docutils literal">color</tt> will not
+be convertible to the parameter type. Therefore we need to tag the <tt class="docutils literal">color</tt>
keyword as a <em>special</em> keyword. This is done by specifying the tag as
<tt class="docutils literal"><span class="pre">tag::color**</span></tt> when binding the function (see <a class="reference internal" href="#concept-parameterspec">concept ParameterSpec</a> for
more details on the tagging). By doing this we tell the binding functions that
-it needs to generate two overloads, one with the <tt class="docutils literal"><span class="pre">color</span></tt> parameter present
+it needs to generate two overloads, one with the <tt class="docutils literal">color</tt> parameter present
and one without. Had there been two <em>special</em> keywords, four overloads would
-need to be generated. The number of generated overloads is equal to 2<sup>N</sup>, where <tt class="docutils literal"><span class="pre">N</span></tt> is the number of <em>special</em> keywords.</p>
+need to be generated. The number of generated overloads is equal to 2<sup>N</sup>, where <tt class="docutils literal">N</tt> is the number of <em>special</em> keywords.</p>
</div>
<hr class="docutils" />
<div class="section" id="class-template-init">
-<h1><a class="toc-backref" href="#id11">class template <tt class="docutils literal"><span class="pre">init</span></tt></a></h1>
+<h1><a class="toc-backref" href="#id11">class template <tt class="docutils literal">init</tt></a></h1>
<p>Defines a named parameter enabled constructor.</p>
<pre class="literal-block">
template <class ParameterSpecs>
@@ -347,13 +347,13 @@
</pre>
<!-- @ignore() -->
<div class="section" id="init-requirements">
-<h2><tt class="docutils literal"><span class="pre">init</span></tt> requirements</h2>
+<h2><tt class="docutils literal">init</tt> requirements</h2>
<ul>
-<li><p class="first"><tt class="docutils literal"><span class="pre">ParameterSpecs</span></tt> is an <a class="reference external" href="../../../mpl/doc/refmanual/sequences.html">MPL sequence</a> where each element is a
+<li><p class="first"><tt class="docutils literal">ParameterSpecs</tt> is an <a class="reference external" href="../../../mpl/doc/refmanual/sequences.html">MPL sequence</a> where each element is a
model of <span class="concept">ParameterSpec</span>.</p>
</li>
-<li><p class="first">For every <tt class="docutils literal"><span class="pre">N</span></tt> in <tt class="docutils literal"><span class="pre">[U,V]</span></tt>, where <tt class="docutils literal"><span class="pre">[U,V]</span></tt> is the <strong>arity
-range</strong> of <tt class="docutils literal"><span class="pre">ParameterSpecs</span></tt>, <tt class="docutils literal"><span class="pre">Class</span></tt> must support these
+<li><p class="first">For every <tt class="docutils literal">N</tt> in <tt class="docutils literal">[U,V]</tt>, where <tt class="docutils literal">[U,V]</tt> is the <strong>arity
+range</strong> of <tt class="docutils literal">ParameterSpecs</tt>, <tt class="docutils literal">Class</tt> must support these
expressions:</p>
<table border="1" class="docutils">
<colgroup>
@@ -371,11 +371,11 @@
</tr>
</thead>
<tbody valign="top">
-<tr><td><p class="first last"><tt class="docutils literal"><span class="pre">Class(a0,</span> <span class="pre">â¦,</span> <span class="pre">aN)</span></tt></p>
+<tr><td><p class="first last"><tt class="docutils literal">Class(a0, â¦, aN)</tt></p>
</td>
<td><p class="first last">-</p>
</td>
-<td><p class="first last"><tt class="docutils literal"><span class="pre">a0</span></tt>â¦<tt class="docutils literal"><span class="pre">aN</span></tt> are tagged arguments.</p>
+<td><p class="first last"><tt class="docutils literal">a0</tt>â¦<tt class="docutils literal">aN</tt> are tagged arguments.</p>
</td>
</tr>
</tbody>
@@ -384,8 +384,8 @@
</ul>
</div>
<div class="section" id="template-class-callpolicies-operator-callpolicies-const">
-<h2><tt class="docutils literal"><span class="pre">template</span> <span class="pre"><class</span> <span class="pre">CallPolicies></span> <span class="pre">operator[](CallPolicies</span> <span class="pre">const&)</span></tt></h2>
-<p>Returns a <tt class="docutils literal"><span class="pre">def_visitor</span></tt> equivalent to <tt class="docutils literal"><span class="pre">*this</span></tt>, except that it
+<h2><tt class="docutils literal">template <class CallPolicies> <span class="pre">operator[](CallPolicies</span> const&)</tt></h2>
+<p>Returns a <tt class="docutils literal">def_visitor</tt> equivalent to <tt class="docutils literal">*this</tt>, except that it
uses CallPolicies when creating the binding.</p>
</div>
<div class="section" id="example">
@@ -448,8 +448,8 @@
</div>
<hr class="docutils" />
<div class="section" id="class-template-call">
-<h1><a class="toc-backref" href="#id12">class template <tt class="docutils literal"><span class="pre">call</span></tt></a></h1>
-<p>Defines a <tt class="docutils literal"><span class="pre">__call__</span></tt> operator, mapped to <tt class="docutils literal"><span class="pre">operator()</span></tt> in C++.</p>
+<h1><a class="toc-backref" href="#id12">class template <tt class="docutils literal">call</tt></a></h1>
+<p>Defines a <tt class="docutils literal">__call__</tt> operator, mapped to <tt class="docutils literal">operator()</tt> in C++.</p>
<pre class="literal-block">
template <class ParameterSpecs>
struct call : python::def_visitor<call<ParameterSpecs> >
@@ -463,14 +463,14 @@
</pre>
<!-- @ignore() -->
<div class="section" id="call-requirements">
-<h2><tt class="docutils literal"><span class="pre">call</span></tt> requirements</h2>
+<h2><tt class="docutils literal">call</tt> requirements</h2>
<ul>
-<li><p class="first"><tt class="docutils literal"><span class="pre">ParameterSpecs</span></tt> is an <a class="reference external" href="../../../mpl/doc/refmanual/sequences.html">MPL sequence</a> where each element
+<li><p class="first"><tt class="docutils literal">ParameterSpecs</tt> is an <a class="reference external" href="../../../mpl/doc/refmanual/sequences.html">MPL sequence</a> where each element
except the first models <span class="concept">ParameterSpec</span>. The first element
is the result type of <tt class="docutils literal"><span class="pre">c(â¦)</span></tt>.</p>
</li>
-<li><p class="first"><tt class="docutils literal"><span class="pre">Class</span></tt> must support these expressions, where <tt class="docutils literal"><span class="pre">c</span></tt> is an
-instance of <tt class="docutils literal"><span class="pre">Class</span></tt>:</p>
+<li><p class="first"><tt class="docutils literal">Class</tt> must support these expressions, where <tt class="docutils literal">c</tt> is an
+instance of <tt class="docutils literal">Class</tt>:</p>
<table border="1" class="docutils">
<colgroup>
<col width="24%" />
@@ -487,22 +487,22 @@
</tr>
</thead>
<tbody valign="top">
-<tr><td><p class="first last"><tt class="docutils literal"><span class="pre">c(a0,</span> <span class="pre">â¦,</span> <span class="pre">aN)</span></tt></p>
+<tr><td><p class="first last"><tt class="docutils literal">c(a0, â¦, aN)</tt></p>
</td>
-<td><p class="first last">Convertible to <tt class="docutils literal"><span class="pre">R</span></tt></p>
+<td><p class="first last">Convertible to <tt class="docutils literal">R</tt></p>
</td>
-<td><p class="first last"><tt class="docutils literal"><span class="pre">a0</span></tt>â¦<tt class="docutils literal"><span class="pre">aN</span></tt> are tagged arguments.</p>
+<td><p class="first last"><tt class="docutils literal">a0</tt>â¦<tt class="docutils literal">aN</tt> are tagged arguments.</p>
</td>
</tr>
</tbody>
</table>
-<p>For every <tt class="docutils literal"><span class="pre">N</span></tt> in <tt class="docutils literal"><span class="pre">[U,V]</span></tt>, where <tt class="docutils literal"><span class="pre">[U,V]</span></tt> is the <strong>arity range</strong> of <tt class="docutils literal"><span class="pre">ParameterSpecs</span></tt>.</p>
+<p>For every <tt class="docutils literal">N</tt> in <tt class="docutils literal">[U,V]</tt>, where <tt class="docutils literal">[U,V]</tt> is the <strong>arity range</strong> of <tt class="docutils literal">ParameterSpecs</tt>.</p>
</li>
</ul>
</div>
<div class="section" id="id3">
-<h2><tt class="docutils literal"><span class="pre">template</span> <span class="pre"><class</span> <span class="pre">CallPolicies></span> <span class="pre">operator[](CallPolicies</span> <span class="pre">const&)</span></tt></h2>
-<p>Returns a <tt class="docutils literal"><span class="pre">def_visitor</span></tt> equivalent to <tt class="docutils literal"><span class="pre">*this</span></tt>, except that it
+<h2><tt class="docutils literal">template <class CallPolicies> <span class="pre">operator[](CallPolicies</span> const&)</tt></h2>
+<p>Returns a <tt class="docutils literal">def_visitor</tt> equivalent to <tt class="docutils literal">*this</tt>, except that it
uses CallPolicies when creating the binding.</p>
</div>
<div class="section" id="id4">
@@ -575,7 +575,7 @@
</div>
<hr class="docutils" />
<div class="section" id="class-template-function">
-<h1><a class="toc-backref" href="#id13">class template <tt class="docutils literal"><span class="pre">function</span></tt></a></h1>
+<h1><a class="toc-backref" href="#id13">class template <tt class="docutils literal">function</tt></a></h1>
<p>Defines a named parameter enabled member function.</p>
<pre class="literal-block">
template <class Fwd, class ParameterSpecs>
@@ -587,14 +587,14 @@
</pre>
<!-- @ignore() -->
<div class="section" id="function-requirements">
-<h2><tt class="docutils literal"><span class="pre">function</span></tt> requirements</h2>
+<h2><tt class="docutils literal">function</tt> requirements</h2>
<ul>
-<li><p class="first"><tt class="docutils literal"><span class="pre">ParameterSpecs</span></tt> is an <a class="reference external" href="../../../mpl/doc/refmanual/sequences.html">MPL sequence</a> where each element
+<li><p class="first"><tt class="docutils literal">ParameterSpecs</tt> is an <a class="reference external" href="../../../mpl/doc/refmanual/sequences.html">MPL sequence</a> where each element
except the first models <span class="concept">ParameterSpec</span>. The first element
-is the result type of <tt class="docutils literal"><span class="pre">c.f(â¦)</span></tt>, where <tt class="docutils literal"><span class="pre">f</span></tt> is the member
+is the result type of <tt class="docutils literal"><span class="pre">c.f(â¦)</span></tt>, where <tt class="docutils literal">f</tt> is the member
function.</p>
</li>
-<li><p class="first">An instance of <tt class="docutils literal"><span class="pre">Fwd</span></tt> must support this expression:</p>
+<li><p class="first">An instance of <tt class="docutils literal">Fwd</tt> must support this expression:</p>
<table border="1" class="docutils">
<colgroup>
<col width="39%" />
@@ -611,24 +611,24 @@
</tr>
</thead>
<tbody valign="top">
-<tr><td><p class="first last"><tt class="docutils literal"><span class="pre">fwd(boost::type<R>(),</span> <span class="pre">self,</span> <span class="pre">a0,</span> <span class="pre">â¦,</span> <span class="pre">aN)</span></tt></p>
+<tr><td><p class="first last"><tt class="docutils literal"><span class="pre">fwd(boost::type<R>(),</span> self, a0, â¦, aN)</tt></p>
</td>
-<td><p class="first last">Convertible to <tt class="docutils literal"><span class="pre">R</span></tt></p>
+<td><p class="first last">Convertible to <tt class="docutils literal">R</tt></p>
</td>
-<td><p class="first last"><tt class="docutils literal"><span class="pre">self</span></tt> is a reference to the object on which
-the function should be invoked. <tt class="docutils literal"><span class="pre">a0</span></tt>â¦<tt class="docutils literal"><span class="pre">aN</span></tt>
+<td><p class="first last"><tt class="docutils literal">self</tt> is a reference to the object on which
+the function should be invoked. <tt class="docutils literal">a0</tt>â¦<tt class="docutils literal">aN</tt>
are tagged arguments.</p>
</td>
</tr>
</tbody>
</table>
-<p>For every <tt class="docutils literal"><span class="pre">N</span></tt> in <tt class="docutils literal"><span class="pre">[U,V]</span></tt>, where <tt class="docutils literal"><span class="pre">[U,V]</span></tt> is the <strong>arity range</strong> of <tt class="docutils literal"><span class="pre">ParameterSpecs</span></tt>.</p>
+<p>For every <tt class="docutils literal">N</tt> in <tt class="docutils literal">[U,V]</tt>, where <tt class="docutils literal">[U,V]</tt> is the <strong>arity range</strong> of <tt class="docutils literal">ParameterSpecs</tt>.</p>
</li>
</ul>
</div>
<div class="section" id="id5">
<h2>Example</h2>
-<p>This example exports a member function <tt class="docutils literal"><span class="pre">f(int</span> <span class="pre">x,</span> <span class="pre">int</span> <span class="pre">y</span> <span class="pre">=</span> <span class="pre">â¦)</span></tt> to Python. The
+<p>This example exports a member function <tt class="docutils literal">f(int x, int y = â¦)</tt> to Python. The
sequence of <span class="concept">ParameterSpec</span>'s <tt class="docutils literal"><span class="pre">mpl::vector2<tag::x(int),</span> <span class="pre">tag::y*(int)></span></tt> has
an <strong>arity range</strong> of [2,2], so we only need one forwarding overload.</p>
<pre class="literal-block">
@@ -691,7 +691,7 @@
</div>
<hr class="docutils" />
<div class="section" id="function-template-def">
-<h1><a class="toc-backref" href="#id14">function template <tt class="docutils literal"><span class="pre">def</span></tt></a></h1>
+<h1><a class="toc-backref" href="#id14">function template <tt class="docutils literal">def</tt></a></h1>
<p>Defines a named parameter enabled free function in the current Python scope.</p>
<pre class="literal-block">
template <class Fwd, class ParameterSpecs>
@@ -699,13 +699,13 @@
</pre>
<!-- @ignore() -->
<div class="section" id="def-requirements">
-<h2><tt class="docutils literal"><span class="pre">def</span></tt> requirements</h2>
+<h2><tt class="docutils literal">def</tt> requirements</h2>
<ul>
-<li><p class="first"><tt class="docutils literal"><span class="pre">ParameterSpecs</span></tt> is an <a class="reference external" href="../../../mpl/doc/refmanual/sequences.html">MPL sequence</a> where each element
+<li><p class="first"><tt class="docutils literal">ParameterSpecs</tt> is an <a class="reference external" href="../../../mpl/doc/refmanual/sequences.html">MPL sequence</a> where each element
except the first models <span class="concept">ParameterSpec</span>. The first element
-is the result type of <tt class="docutils literal"><span class="pre">f(â¦)</span></tt>, where <tt class="docutils literal"><span class="pre">f</span></tt> is the function.</p>
+is the result type of <tt class="docutils literal"><span class="pre">f(â¦)</span></tt>, where <tt class="docutils literal">f</tt> is the function.</p>
</li>
-<li><p class="first">An instance of <tt class="docutils literal"><span class="pre">Fwd</span></tt> must support this expression:</p>
+<li><p class="first">An instance of <tt class="docutils literal">Fwd</tt> must support this expression:</p>
<table border="1" class="docutils">
<colgroup>
<col width="39%" />
@@ -722,22 +722,22 @@
</tr>
</thead>
<tbody valign="top">
-<tr><td><p class="first last"><tt class="docutils literal"><span class="pre">fwd(boost::type<R>(),</span> <span class="pre">a0,</span> <span class="pre">â¦,</span> <span class="pre">aN)</span></tt></p>
+<tr><td><p class="first last"><tt class="docutils literal"><span class="pre">fwd(boost::type<R>(),</span> a0, â¦, aN)</tt></p>
</td>
-<td><p class="first last">Convertible to <tt class="docutils literal"><span class="pre">R</span></tt></p>
+<td><p class="first last">Convertible to <tt class="docutils literal">R</tt></p>
</td>
-<td><p class="first last"><tt class="docutils literal"><span class="pre">a0</span></tt>â¦<tt class="docutils literal"><span class="pre">aN</span></tt> are tagged arguments.</p>
+<td><p class="first last"><tt class="docutils literal">a0</tt>â¦<tt class="docutils literal">aN</tt> are tagged arguments.</p>
</td>
</tr>
</tbody>
</table>
-<p>For every <tt class="docutils literal"><span class="pre">N</span></tt> in <tt class="docutils literal"><span class="pre">[U,V]</span></tt>, where <tt class="docutils literal"><span class="pre">[U,V]</span></tt> is the <strong>arity range</strong> of <tt class="docutils literal"><span class="pre">ParameterSpecs</span></tt>.</p>
+<p>For every <tt class="docutils literal">N</tt> in <tt class="docutils literal">[U,V]</tt>, where <tt class="docutils literal">[U,V]</tt> is the <strong>arity range</strong> of <tt class="docutils literal">ParameterSpecs</tt>.</p>
</li>
</ul>
</div>
<div class="section" id="id6">
<h2>Example</h2>
-<p>This example exports a function <tt class="docutils literal"><span class="pre">f(int</span> <span class="pre">x,</span> <span class="pre">int</span> <span class="pre">y</span> <span class="pre">=</span> <span class="pre">â¦)</span></tt> to Python. The
+<p>This example exports a function <tt class="docutils literal">f(int x, int y = â¦)</tt> to Python. The
sequence of <span class="concept">ParameterSpec</span>'s <tt class="docutils literal"><span class="pre">mpl::vector2<tag::x(int),</span> <span class="pre">tag::y*(int)></span></tt> has
an <strong>arity range</strong> of [2,2], so we only need one forwarding overload.</p>
<pre class="literal-block">
@@ -780,7 +780,7 @@
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2009-01-30 21:27 UTC.
+Generated on: 2011-11-08 21:40 UTC.
Generated by <a class="reference external" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference external" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
</div>
Modified: trunk/libs/parameter/doc/html/reference.html
==============================================================================
--- trunk/libs/parameter/doc/html/reference.html (original)
+++ trunk/libs/parameter/doc/html/reference.html 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -3,7 +3,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.6: http://docutils.sourceforge.net/" />
+<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The Boost Parameter Library Reference Documentation</title>
<meta name="authors" content="David Abrahams Daniel Wallin" />
<meta name="organization" content="BoostPro Computing" />
@@ -53,31 +53,31 @@
</ul>
</li>
<li><a class="reference internal" href="#class-templates" id="id39">4 Class Templates</a><ul class="auto-toc">
-<li><a class="reference internal" href="#id7" id="id40">4.1 <tt class="docutils literal"><span class="pre">keyword</span></tt></a></li>
-<li><a class="reference internal" href="#parameters" id="id41">4.2 <tt class="docutils literal"><span class="pre">parameters</span></tt></a></li>
-<li><a class="reference internal" href="#optional-required" id="id42">4.3 <tt class="docutils literal"><span class="pre">optional</span></tt>, <tt class="docutils literal"><span class="pre">required</span></tt></a></li>
-<li><a class="reference internal" href="#deduced" id="id43">4.4 <tt class="docutils literal"><span class="pre">deduced</span></tt></a></li>
+<li><a class="reference internal" href="#id7" id="id40">4.1 <tt class="docutils literal">keyword</tt></a></li>
+<li><a class="reference internal" href="#parameters" id="id41">4.2 <tt class="docutils literal">parameters</tt></a></li>
+<li><a class="reference internal" href="#optional-required" id="id42">4.3 <tt class="docutils literal">optional</tt>, <tt class="docutils literal">required</tt></a></li>
+<li><a class="reference internal" href="#deduced" id="id43">4.4 <tt class="docutils literal">deduced</tt></a></li>
</ul>
</li>
<li><a class="reference internal" href="#metafunctions" id="id44">5 Metafunctions</a><ul class="auto-toc">
-<li><a class="reference internal" href="#binding" id="id45">5.1 <tt class="docutils literal"><span class="pre">binding</span></tt></a></li>
-<li><a class="reference internal" href="#lazy-binding" id="id46">5.2 <tt class="docutils literal"><span class="pre">lazy_binding</span></tt></a></li>
-<li><a class="reference internal" href="#value-type" id="id47">5.3 <tt class="docutils literal"><span class="pre">value_type</span></tt></a></li>
+<li><a class="reference internal" href="#binding" id="id45">5.1 <tt class="docutils literal">binding</tt></a></li>
+<li><a class="reference internal" href="#lazy-binding" id="id46">5.2 <tt class="docutils literal">lazy_binding</tt></a></li>
+<li><a class="reference internal" href="#value-type" id="id47">5.3 <tt class="docutils literal">value_type</tt></a></li>
</ul>
</li>
<li><a class="reference internal" href="#code-generation-macros" id="id48">6 Code Generation Macros</a><ul class="auto-toc">
-<li><a class="reference internal" href="#boost-parameter-function-result-name-tag-namespace-arguments" id="id49">6.1 <tt class="docutils literal"><span class="pre">BOOST_PARAMETER_FUNCTION(result,name,tag_namespace,arguments)</span></tt></a></li>
-<li><a class="reference internal" href="#boost-parameter-member-function-result-name-tag-namespace-arguments" id="id50">6.2 <tt class="docutils literal"><span class="pre">BOOST_PARAMETER_MEMBER_FUNCTION(result,name,tag_namespace,arguments)</span></tt></a></li>
-<li><a class="reference internal" href="#boost-parameter-constructor-cls-impl-tag-namespace-arguments" id="id51">6.3 <tt class="docutils literal"><span class="pre">BOOST_PARAMETER_CONSTRUCTOR(cls,</span> <span class="pre">impl,</span> <span class="pre">tag_namespace,</span> <span class="pre">arguments)</span></tt></a></li>
-<li><a class="reference internal" href="#boost-parameter-name-name" id="id52">6.4 <tt class="docutils literal"><span class="pre">BOOST_PARAMETER_NAME(name)</span></tt></a></li>
-<li><a class="reference internal" href="#boost-parameter-template-keyword-name" id="id53">6.5 <tt class="docutils literal"><span class="pre">BOOST_PARAMETER_TEMPLATE_KEYWORD(name)</span></tt></a></li>
-<li><a class="reference internal" href="#boost-parameter-fun-r-n-l-h-p" id="id54">6.6 <tt class="docutils literal"><span class="pre">BOOST_PARAMETER_FUN(r,n,l,h,p)</span></tt></a></li>
-<li><a class="reference internal" href="#boost-parameter-keyword-n-k" id="id55">6.7 <tt class="docutils literal"><span class="pre">BOOST_PARAMETER_KEYWORD(n,k)</span></tt></a></li>
-<li><a class="reference internal" href="#boost-parameter-match-p-a-x" id="id56">6.8 <tt class="docutils literal"><span class="pre">BOOST_PARAMETER_MATCH(p,a,x)</span></tt></a></li>
+<li><a class="reference internal" href="#boost-parameter-function-result-name-tag-namespace-arguments" id="id49">6.1 <tt class="docutils literal">BOOST_PARAMETER_FUNCTION(result,name,tag_namespace,arguments)</tt></a></li>
+<li><a class="reference internal" href="#boost-parameter-member-function-result-name-tag-namespace-arguments" id="id50">6.2 <tt class="docutils literal">BOOST_PARAMETER_MEMBER_FUNCTION(result,name,tag_namespace,arguments)</tt></a></li>
+<li><a class="reference internal" href="#boost-parameter-constructor-cls-impl-tag-namespace-arguments" id="id51">6.3 <tt class="docutils literal">BOOST_PARAMETER_CONSTRUCTOR(cls, impl, tag_namespace, arguments)</tt></a></li>
+<li><a class="reference internal" href="#boost-parameter-name-name" id="id52">6.4 <tt class="docutils literal">BOOST_PARAMETER_NAME(name)</tt></a></li>
+<li><a class="reference internal" href="#boost-parameter-template-keyword-name" id="id53">6.5 <tt class="docutils literal">BOOST_PARAMETER_TEMPLATE_KEYWORD(name)</tt></a></li>
+<li><a class="reference internal" href="#boost-parameter-fun-r-n-l-h-p" id="id54">6.6 <tt class="docutils literal">BOOST_PARAMETER_FUN(r,n,l,h,p)</tt></a></li>
+<li><a class="reference internal" href="#boost-parameter-keyword-n-k" id="id55">6.7 <tt class="docutils literal">BOOST_PARAMETER_KEYWORD(n,k)</tt></a></li>
+<li><a class="reference internal" href="#boost-parameter-match-p-a-x" id="id56">6.8 <tt class="docutils literal">BOOST_PARAMETER_MATCH(p,a,x)</tt></a></li>
</ul>
</li>
<li><a class="reference internal" href="#configuration-macros" id="id57">7 Configuration Macros</a><ul class="auto-toc">
-<li><a class="reference internal" href="#boost-parameter-max-arity" id="id58">7.1 <tt class="docutils literal"><span class="pre">BOOST_PARAMETER_MAX_ARITY</span></tt></a></li>
+<li><a class="reference internal" href="#boost-parameter-max-arity" id="id58">7.1 <tt class="docutils literal">BOOST_PARAMETER_MAX_ARITY</tt></a></li>
</ul>
</li>
<li><a class="reference internal" href="#tutorial" id="id59">8 Tutorial</a></li>
@@ -113,7 +113,7 @@
<p>In a specification of the tokens generated by a macro, <strong>bold
type</strong> is used to highlight the position of the expanded macro
argument in the result.</p>
-<p>The special character β represents the value of <a class="reference internal" href="#boost-parameter-max-arity"><tt class="docutils literal"><span class="pre">BOOST_PARAMETER_MAX_ARITY</span></tt></a>.</p>
+<p>The special character β represents the value of <a class="reference internal" href="#boost-parameter-max-arity"><tt class="docutils literal">BOOST_PARAMETER_MAX_ARITY</tt></a>.</p>
</div>
</div>
<hr class="docutils" />
@@ -140,15 +140,15 @@
</dl>
<span class="target" id="keyword-object"></span><dl class="docutils">
<dt>keyword object</dt>
-<dd>An instance of <a class="reference internal" href="#keyword"><tt class="docutils literal"><span class="pre">keyword</span></tt></a> <tt class="docutils literal"><span class="pre"><T></span></tt> for some <a class="reference internal" href="#tag-type">tag type</a> <tt class="docutils literal"><span class="pre">T</span></tt>.</dd>
+<dd>An instance of <a class="reference internal" href="#keyword"><tt class="docutils literal">keyword</tt></a> <tt class="docutils literal"><T></tt> for some <a class="reference internal" href="#tag-type">tag type</a> <tt class="docutils literal">T</tt>.</dd>
</dl>
<span class="target" id="tagged-reference"></span><dl class="docutils">
<dt>tagged reference</dt>
<dd><p class="first">An object whose type is associated with a <a class="reference internal" href="#keyword-tag-type">keyword tag type</a> (the
object's <em>keyword</em>), and that holds a reference (to the object's
<em>value</em>).</p>
-<p class="last">As a shorthand, a âtagged reference to <tt class="docutils literal"><span class="pre">x</span></tt>â means a tagged
-reference whose <em>value</em> is <tt class="docutils literal"><span class="pre">x</span></tt>.</p>
+<p class="last">As a shorthand, a âtagged reference to <tt class="docutils literal">x</tt>â means a tagged
+reference whose <em>value</em> is <tt class="docutils literal">x</tt>.</p>
</dd>
</dl>
<span class="target" id="tagged-default"></span><dl class="docutils">
@@ -165,7 +165,7 @@
<dt>intended argument type</dt>
<dd>The <em>intended argument type</em> of a single-element <a class="reference internal" href="#argumentpack"><span class="concept">ArgumentPack</span></a> is the
type of its element's <em>value</em>. The intended argument type of any other
-type <tt class="docutils literal"><span class="pre">X</span></tt> is <tt class="docutils literal"><span class="pre">X</span></tt> itself.</dd>
+type <tt class="docutils literal">X</tt> is <tt class="docutils literal">X</tt> itself.</dd>
</dl>
<div class="note">
<p class="first admonition-title">Note</p>
@@ -188,14 +188,14 @@
<h3>Requirements</h3>
<p>In the table below,</p>
<ul class="simple">
-<li><tt class="docutils literal"><span class="pre">A</span></tt> is a model of <span class="concept">ArgumentPack</span></li>
-<li><tt class="docutils literal"><span class="pre">x</span></tt> is an instance of <tt class="docutils literal"><span class="pre">A</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">u</span></tt> is a <a class="reference internal" href="#keyword-object">keyword object</a> of type <tt class="docutils literal"><span class="pre">K</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">v</span></tt> is a <a class="reference internal" href="#tagged-default">tagged default</a> with <a class="reference internal" href="#tag-type">tag type</a> <tt class="docutils literal"><span class="pre">L</span></tt> and <em>value</em> of type <tt class="docutils literal"><span class="pre">D</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">w</span></tt> is a <a class="reference internal" href="#tagged-lazy-default">tagged lazy default</a> with <a class="reference internal" href="#tag-type">tag type</a> <tt class="docutils literal"><span class="pre">M</span></tt> and <em>value</em> of type <tt class="docutils literal"><span class="pre">E</span> <span class="pre">const</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">z</span></tt> is an <span class="concept">ArgumentPack</span> containing a single element (as created by <a class="reference internal" href="#keyword"><tt class="docutils literal"><span class="pre">keyword</span></tt></a><tt class="docutils literal"><span class="pre"><â¦>::operator=</span></tt>)</li>
+<li><tt class="docutils literal">A</tt> is a model of <span class="concept">ArgumentPack</span></li>
+<li><tt class="docutils literal">x</tt> is an instance of <tt class="docutils literal">A</tt></li>
+<li><tt class="docutils literal">u</tt> is a <a class="reference internal" href="#keyword-object">keyword object</a> of type <tt class="docutils literal">K</tt></li>
+<li><tt class="docutils literal">v</tt> is a <a class="reference internal" href="#tagged-default">tagged default</a> with <a class="reference internal" href="#tag-type">tag type</a> <tt class="docutils literal">L</tt> and <em>value</em> of type <tt class="docutils literal">D</tt></li>
+<li><tt class="docutils literal">w</tt> is a <a class="reference internal" href="#tagged-lazy-default">tagged lazy default</a> with <a class="reference internal" href="#tag-type">tag type</a> <tt class="docutils literal">M</tt> and <em>value</em> of type <tt class="docutils literal">E const</tt></li>
+<li><tt class="docutils literal">z</tt> is an <span class="concept">ArgumentPack</span> containing a single element (as created by <a class="reference internal" href="#keyword"><tt class="docutils literal">keyword</tt></a><tt class="docutils literal"><span class="pre"><â¦>::operator=</span></tt>)</li>
</ul>
-<p>Any exceptions are thrown from the invocation of <tt class="docutils literal"><span class="pre">w</span></tt>'s <em>value</em>
+<p>Any exceptions are thrown from the invocation of <tt class="docutils literal">w</tt>'s <em>value</em>
will be propagated to the caller.</p>
<table border="1" class="docutils">
<caption><span class="concept">ArgumentPack</span> requirements</caption>
@@ -213,36 +213,36 @@
</tr>
</thead>
<tbody valign="top">
-<tr><td><tt class="docutils literal"><span class="pre">x[u]</span></tt></td>
+<tr><td><tt class="docutils literal">x[u]</tt></td>
<td><tt class="docutils literal"><span class="pre">binding<A,K>::type</span></tt></td>
-<td><tt class="docutils literal"><span class="pre">x</span></tt> contains an
+<td><tt class="docutils literal">x</tt> contains an
element <em>b</em> whose
-<a class="reference internal" href="#kw">keyword</a> is <tt class="docutils literal"><span class="pre">K</span></tt></td>
+<a class="reference internal" href="#kw">keyword</a> is <tt class="docutils literal">K</tt></td>
<td>Returns <em>b</em>'s <em>value</em> (by
reference).</td>
</tr>
-<tr><td><tt class="docutils literal"><span class="pre">x[u]</span></tt></td>
+<tr><td><tt class="docutils literal">x[u]</tt></td>
<td><tt class="docutils literal"><span class="pre">binding<A,L,D>::type</span></tt></td>
<td><em>none</em></td>
-<td>If <tt class="docutils literal"><span class="pre">x</span></tt> contains an element <em>b</em> whose
-<a class="reference internal" href="#kw">keyword</a> is the same as <tt class="docutils literal"><span class="pre">u</span></tt>'s,
+<td>If <tt class="docutils literal">x</tt> contains an element <em>b</em> whose
+<a class="reference internal" href="#kw">keyword</a> is the same as <tt class="docutils literal">u</tt>'s,
returns <em>b</em>'s <em>value</em> (by
-reference). Otherwise, returns <tt class="docutils literal"><span class="pre">u</span></tt>'s <em>value</em>.</td>
+reference). Otherwise, returns <tt class="docutils literal">u</tt>'s <em>value</em>.</td>
</tr>
-<tr><td><tt class="docutils literal"><span class="pre">x[w]</span></tt></td>
+<tr><td><tt class="docutils literal">x[w]</tt></td>
<td><tt class="docutils literal"><span class="pre">lazy_binding<A,M,E>::type</span></tt></td>
<td><em>none</em></td>
-<td>If <tt class="docutils literal"><span class="pre">x</span></tt> contains an element <em>b</em> whose
-<a class="reference internal" href="#kw">keyword</a> is the same as <tt class="docutils literal"><span class="pre">w</span></tt>'s,
+<td>If <tt class="docutils literal">x</tt> contains an element <em>b</em> whose
+<a class="reference internal" href="#kw">keyword</a> is the same as <tt class="docutils literal">w</tt>'s,
returns <em>b</em>'s <em>value</em> (by
-reference). Otherwise, invokes <tt class="docutils literal"><span class="pre">w</span></tt>'s <em>value</em> and returns the result.</td>
+reference). Otherwise, invokes <tt class="docutils literal">w</tt>'s <em>value</em> and returns the result.</td>
</tr>
-<tr><td><tt class="docutils literal"><span class="pre">x,</span> <span class="pre">z</span></tt></td>
+<tr><td><tt class="docutils literal">x, z</tt></td>
<td>Model of <span class="concept">ArgumentPack</span></td>
<td><em>none</em></td>
<td>Returns an <a class="reference internal" href="#argumentpack"><span class="concept">ArgumentPack</span></a> containing
-all the elements of both <tt class="docutils literal"><span class="pre">x</span></tt> and
-<tt class="docutils literal"><span class="pre">z</span></tt>.</td>
+all the elements of both <tt class="docutils literal">x</tt> and
+<tt class="docutils literal">z</tt>.</td>
</tr>
</tbody>
</table>
@@ -256,9 +256,9 @@
and describes their condition for satisfaction by an actual
argument type. In each row,</p>
<ul class="simple" id="conditions">
-<li><tt class="docutils literal"><span class="pre">K</span></tt> is the <span class="concept">ParameterSpec</span>'s <a class="reference internal" href="#keyword-tag-type">keyword tag type</a></li>
-<li><tt class="docutils literal"><span class="pre">A</span></tt> is an <a class="reference internal" href="#intended-argument-type">intended argument type</a> associated with <tt class="docutils literal"><span class="pre">K</span></tt>, if any</li>
-<li><tt class="docutils literal"><span class="pre">F</span></tt> is a unary <a class="reference external" href="../../../mpl/doc/refmanual/lambda-expression.html">MPL lambda expression</a></li>
+<li><tt class="docutils literal">K</tt> is the <span class="concept">ParameterSpec</span>'s <a class="reference internal" href="#keyword-tag-type">keyword tag type</a></li>
+<li><tt class="docutils literal">A</tt> is an <a class="reference internal" href="#intended-argument-type">intended argument type</a> associated with <tt class="docutils literal">K</tt>, if any</li>
+<li><tt class="docutils literal">F</tt> is a unary <a class="reference external" href="../../../mpl/doc/refmanual/lambda-expression.html">MPL lambda expression</a></li>
</ul>
<table border="1" class="docutils">
<caption><span class="concept">ParameterSpec</span> allowed forms and conditions of satisfaction</caption>
@@ -269,24 +269,24 @@
</colgroup>
<thead valign="bottom">
<tr><th class="head">Type</th>
-<th class="head"><tt class="docutils literal"><span class="pre">A</span></tt> required</th>
-<th class="head">Condition <tt class="docutils literal"><span class="pre">A</span></tt> must satisfy</th>
+<th class="head"><tt class="docutils literal">A</tt> required</th>
+<th class="head">Condition <tt class="docutils literal">A</tt> must satisfy</th>
</tr>
</thead>
<tbody valign="top">
-<tr><td><tt class="docutils literal"><span class="pre">K</span></tt></td>
+<tr><td><tt class="docutils literal">K</tt></td>
<td>no</td>
<td><em>n/a</em></td>
</tr>
-<tr><td><a class="reference internal" href="#optional"><tt class="docutils literal"><span class="pre">optional</span></tt></a><tt class="docutils literal"><span class="pre"><K,F></span></tt></td>
+<tr><td><a class="reference internal" href="#optional"><tt class="docutils literal">optional</tt></a><tt class="docutils literal"><K,F></tt></td>
<td>no</td>
<td><tt class="docutils literal"><span class="pre">mpl::apply<F,A>::type::value</span></tt>
-is <tt class="docutils literal"><span class="pre">true</span></tt>.</td>
+is <tt class="docutils literal">true</tt>.</td>
</tr>
-<tr><td><a class="reference internal" href="#required"><tt class="docutils literal"><span class="pre">required</span></tt></a><tt class="docutils literal"><span class="pre"><K,F></span></tt></td>
+<tr><td><a class="reference internal" href="#required"><tt class="docutils literal">required</tt></a><tt class="docutils literal"><K,F></tt></td>
<td>yes</td>
<td><tt class="docutils literal"><span class="pre">mpl::apply<F,A>::type::value</span></tt>
-is <tt class="docutils literal"><span class="pre">true</span></tt>.</td>
+is <tt class="docutils literal">true</tt>.</td>
</tr>
</tbody>
</table>
@@ -298,8 +298,8 @@
<div class="section" id="class-templates">
<h1><a class="toc-backref" href="#id39">4 Class Templates</a></h1>
<div class="section" id="id7">
-<span id="keyword"></span><h2><a class="toc-backref" href="#id40">4.1 <tt class="docutils literal"><span class="pre">keyword</span></tt></a></h2>
-<p>The type of every <a class="reference internal" href="#keyword-object">keyword object</a> is a specialization of <tt class="docutils literal"><span class="pre">keyword</span></tt>.</p>
+<span id="keyword"></span><h2><a class="toc-backref" href="#id40">4.1 <tt class="docutils literal">keyword</tt></a></h2>
+<p>The type of every <a class="reference internal" href="#keyword-object">keyword object</a> is a specialization of <tt class="docutils literal">keyword</tt>.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
@@ -324,7 +324,7 @@
};
</pre>
<dl class="docutils" id="operator">
-<dt><tt class="docutils literal"><span class="pre">operator=</span></tt></dt>
+<dt><tt class="docutils literal">operator=</tt></dt>
<dd><pre class="first literal-block">
template <class T> <a class="reference internal" href="#argumentpack"><span class="concept">ArgumentPack</span></a> operator=(T& value) const;
template <class T> <a class="reference internal" href="#argumentpack"><span class="concept">ArgumentPack</span></a> operator=(T const& value) const;
@@ -336,14 +336,14 @@
<tr class="field"><th class="field-name">Requires:</th><td class="field-body">nothing</td>
</tr>
<tr class="field"><th class="field-name">Returns:</th><td class="field-body">an <a class="reference internal" href="#argumentpack"><span class="concept">ArgumentPack</span></a> containing a single <a class="reference internal" href="#tagged-reference">tagged reference</a> to
-<tt class="docutils literal"><span class="pre">value</span></tt> with <a class="reference internal" href="#kw">keyword</a> <tt class="docutils literal"><span class="pre">Tag</span></tt></td>
+<tt class="docutils literal">value</tt> with <a class="reference internal" href="#kw">keyword</a> <tt class="docutils literal">Tag</tt></td>
</tr>
</tbody>
</table>
</dd>
</dl>
<dl class="docutils" id="id9">
-<dt><tt class="docutils literal"><span class="pre">operator|</span></tt></dt>
+<dt><tt class="docutils literal">operator|</tt></dt>
<dd><pre class="first literal-block">
template <class T> <em>tagged default</em> operator|(T& x) const;
template <class T> <em>tagged default</em> operator|(T const& x) const;
@@ -352,14 +352,14 @@
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
-<tr class="field"><th class="field-name">Returns:</th><td class="field-body">a <a class="reference internal" href="#tagged-default">tagged default</a> with <em>value</em> <tt class="docutils literal"><span class="pre">x</span></tt> and <a class="reference internal" href="#kw">keyword</a> <tt class="docutils literal"><span class="pre">Tag</span></tt>.</td>
+<tr class="field"><th class="field-name">Returns:</th><td class="field-body">a <a class="reference internal" href="#tagged-default">tagged default</a> with <em>value</em> <tt class="docutils literal">x</tt> and <a class="reference internal" href="#kw">keyword</a> <tt class="docutils literal">Tag</tt>.</td>
</tr>
</tbody>
</table>
</dd>
</dl>
<dl class="docutils" id="id10">
-<dt><tt class="docutils literal"><span class="pre">operator||</span></tt></dt>
+<dt><tt class="docutils literal">operator||</tt></dt>
<dd><pre class="first literal-block">
template <class F> <em>tagged lazy default</em> operator||(F const& g) const;
</pre>
@@ -367,16 +367,16 @@
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
-<tr class="field"><th class="field-name">Requires:</th><td class="field-body"><tt class="docutils literal"><span class="pre">g()</span></tt> is valid, with type <tt class="docutils literal"><span class="pre">boost::</span></tt><a class="reference external" href="../../../utility/utility.htm#result_of"><tt class="docutils literal"><span class="pre">result_of</span></tt></a><tt class="docutils literal"><span class="pre"><F()>::type</span></tt>.<a class="footnote-reference" href="#no-result-of" id="id11"><sup>2</sup></a></td>
+<tr class="field"><th class="field-name">Requires:</th><td class="field-body"><tt class="docutils literal">g()</tt> is valid, with type <tt class="docutils literal">boost::</tt><a class="reference external" href="../../../utility/utility.htm#result_of"><tt class="docutils literal">result_of</tt></a><tt class="docutils literal"><span class="pre"><F()>::type</span></tt>.<a class="footnote-reference" href="#no-result-of" id="id11"><sup>2</sup></a></td>
</tr>
-<tr class="field"><th class="field-name">Returns:</th><td class="field-body">a <a class="reference internal" href="#tagged-lazy-default">tagged lazy default</a> with <em>value</em> <tt class="docutils literal"><span class="pre">g</span></tt> and <a class="reference internal" href="#kw">keyword</a> <tt class="docutils literal"><span class="pre">Tag</span></tt>.</td>
+<tr class="field"><th class="field-name">Returns:</th><td class="field-body">a <a class="reference internal" href="#tagged-lazy-default">tagged lazy default</a> with <em>value</em> <tt class="docutils literal">g</tt> and <a class="reference internal" href="#kw">keyword</a> <tt class="docutils literal">Tag</tt>.</td>
</tr>
</tbody>
</table>
</dd>
</dl>
<dl class="docutils" id="get">
-<dt><tt class="docutils literal"><span class="pre">get</span></tt></dt>
+<dt><tt class="docutils literal">get</tt></dt>
<dd><pre class="first literal-block">
static keyword<Tag>& get();
</pre>
@@ -385,9 +385,9 @@
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Returns:</th><td class="field-body">a âsingleton instanceâ: the same object will be
-returned on each invocation of <tt class="docutils literal"><span class="pre">get()</span></tt>.</td>
+returned on each invocation of <tt class="docutils literal">get()</tt>.</td>
</tr>
-<tr class="field"><th class="field-name">Thread Safety:</th><td class="field-body"><tt class="docutils literal"><span class="pre">get()</span></tt> can be called from multiple threads
+<tr class="field"><th class="field-name">Thread Safety:</th><td class="field-body"><tt class="docutils literal">get()</tt> can be called from multiple threads
simultaneously.</td>
</tr>
</tbody>
@@ -396,11 +396,11 @@
</dl>
</div>
<div class="section" id="parameters">
-<h2><a class="toc-backref" href="#id41">4.2 <tt class="docutils literal"><span class="pre">parameters</span></tt></a></h2>
+<h2><a class="toc-backref" href="#id41">4.2 <tt class="docutils literal">parameters</tt></a></h2>
<p>Provides an interface for assembling the actual arguments to a
<cite>forwarding function</cite> into an <span class="concept">ArgumentPack</span>, in which any
<a class="reference internal" href="#positional">positional</a> arguments will be tagged according to the
-corresponding template argument to <tt class="docutils literal"><span class="pre">parameters</span></tt>.</p>
+corresponding template argument to <tt class="docutils literal">parameters</tt>.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
@@ -435,78 +435,78 @@
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
-<tr class="field"><th class="field-name">Requires:</th><td class="field-body"><tt class="docutils literal"><span class="pre">P0</span></tt>, <tt class="docutils literal"><span class="pre">P1</span></tt>, ⦠<tt class="docutils literal"><span class="pre">P</span></tt>β are models of <a class="reference internal" href="#parameterspec"><span class="concept">ParameterSpec</span></a>.</td>
+<tr class="field"><th class="field-name">Requires:</th><td class="field-body"><tt class="docutils literal">P0</tt>, <tt class="docutils literal">P1</tt>, ⦠<tt class="docutils literal">P</tt>β are models of <a class="reference internal" href="#parameterspec"><span class="concept">ParameterSpec</span></a>.</td>
</tr>
</tbody>
</table>
<div class="note">
<p class="first admonition-title">Note</p>
-<p>In this section, <tt class="docutils literal"><span class="pre">R</span></tt><em>i</em> and <tt class="docutils literal"><span class="pre">K</span></tt><em>i</em> are defined as
-follows, for any argument type <tt class="docutils literal"><span class="pre">A</span></tt><em>i</em>:</p>
+<p>In this section, <tt class="docutils literal">R</tt><em>i</em> and <tt class="docutils literal">K</tt><em>i</em> are defined as
+follows, for any argument type <tt class="docutils literal">A</tt><em>i</em>:</p>
<blockquote class="last">
<div class="line-block">
-<div class="line">let <tt class="docutils literal"><span class="pre">D0</span></tt> the set [d0, â¦, d<em>j</em>] of all <strong>deduced</strong> <em>parameter specs</em> in [<tt class="docutils literal"><span class="pre">P0</span></tt>, â¦, <tt class="docutils literal"><span class="pre">P</span></tt>β]</div>
-<div class="line"><tt class="docutils literal"><span class="pre">R</span></tt><em>i</em> is <tt class="docutils literal"><span class="pre">A</span></tt><em>i</em>'s <a class="reference internal" href="#intended-argument-type">intended argument type</a></div>
+<div class="line">let <tt class="docutils literal">D0</tt> the set [d0, â¦, d<em>j</em>] of all <strong>deduced</strong> <em>parameter specs</em> in [<tt class="docutils literal">P0</tt>, â¦, <tt class="docutils literal">P</tt>β]</div>
+<div class="line"><tt class="docutils literal">R</tt><em>i</em> is <tt class="docutils literal">A</tt><em>i</em>'s <a class="reference internal" href="#intended-argument-type">intended argument type</a></div>
<div class="line"><br /></div>
-<div class="line">if <tt class="docutils literal"><span class="pre">A</span></tt><em>i</em> is a result type of <tt class="docutils literal"><span class="pre">keyword<T>::</span></tt><a class="reference internal" href="#operator"><tt class="docutils literal"><span class="pre">operator=</span></tt></a></div>
+<div class="line">if <tt class="docutils literal">A</tt><em>i</em> is a result type of <tt class="docutils literal"><span class="pre">keyword<T>::</span></tt><a class="reference internal" href="#operator"><tt class="docutils literal">operator=</tt></a></div>
<div class="line">then</div>
<div class="line-block">
-<div class="line"><tt class="docutils literal"><span class="pre">K</span></tt><em>i</em> is <tt class="docutils literal"><span class="pre">T</span></tt></div>
+<div class="line"><tt class="docutils literal">K</tt><em>i</em> is <tt class="docutils literal">T</tt></div>
</div>
<div class="line">else</div>
<div class="line-block">
-<div class="line">if some <tt class="docutils literal"><span class="pre">A</span></tt><em>j</em> where <em>j</em>â¤<em>i</em> is a result type of <tt class="docutils literal"><span class="pre">keyword<T>::</span></tt><a class="reference internal" href="#operator"><tt class="docutils literal"><span class="pre">operator=</span></tt></a></div>
-<div class="line"><em>or</em> some <tt class="docutils literal"><span class="pre">P</span></tt><em>j</em> in <em>j</em>â¤<em>i</em> is <strong>deduced</strong></div>
+<div class="line">if some <tt class="docutils literal">A</tt><em>j</em> where <em>j</em>â¤<em>i</em> is a result type of <tt class="docutils literal"><span class="pre">keyword<T>::</span></tt><a class="reference internal" href="#operator"><tt class="docutils literal">operator=</tt></a></div>
+<div class="line"><em>or</em> some <tt class="docutils literal">P</tt><em>j</em> in <em>j</em>â¤<em>i</em> is <strong>deduced</strong></div>
<div class="line">then</div>
<div class="line-block">
-<div class="line">if some <em>parameter spec</em> <tt class="docutils literal"><span class="pre">d</span></tt><em>j</em> in <tt class="docutils literal"><span class="pre">D</span></tt><em>i</em> matches <tt class="docutils literal"><span class="pre">A</span></tt><em>i</em></div>
+<div class="line">if some <em>parameter spec</em> <tt class="docutils literal">d</tt><em>j</em> in <tt class="docutils literal">D</tt><em>i</em> matches <tt class="docutils literal">A</tt><em>i</em></div>
<div class="line">then</div>
<div class="line-block">
-<div class="line"><tt class="docutils literal"><span class="pre">K</span></tt><em>i</em> is <tt class="docutils literal"><span class="pre">d</span></tt><em>j</em>'s <a class="reference internal" href="#keyword-tag-type">keyword tag type</a>.</div>
-<div class="line"><tt class="docutils literal"><span class="pre">D</span></tt><sub>i+1</sub> is <tt class="docutils literal"><span class="pre">D</span></tt><em>i</em> - [<tt class="docutils literal"><span class="pre">d</span></tt><em>j</em>]</div>
+<div class="line"><tt class="docutils literal">K</tt><em>i</em> is <tt class="docutils literal">d</tt><em>j</em>'s <a class="reference internal" href="#keyword-tag-type">keyword tag type</a>.</div>
+<div class="line"><tt class="docutils literal">D</tt><sub>i+1</sub> is <tt class="docutils literal">D</tt><em>i</em> - [<tt class="docutils literal">d</tt><em>j</em>]</div>
</div>
</div>
<div class="line">else</div>
<div class="line-block">
-<div class="line"><tt class="docutils literal"><span class="pre">K</span></tt><em>i</em> is <tt class="docutils literal"><span class="pre">P</span></tt><em>i</em>'s <a class="reference internal" href="#keyword-tag-type">keyword tag type</a>.</div>
+<div class="line"><tt class="docutils literal">K</tt><em>i</em> is <tt class="docutils literal">P</tt><em>i</em>'s <a class="reference internal" href="#keyword-tag-type">keyword tag type</a>.</div>
</div>
</div>
</div>
</blockquote>
</div>
<dl class="docutils" id="match">
-<dt><tt class="docutils literal"><span class="pre">match</span></tt></dt>
+<dt><tt class="docutils literal">match</tt></dt>
<dd><p class="first">A <a class="reference external" href="../../../mpl/doc/refmanual/metafunction.html"><span class="concept">Metafunction</span></a> used to remove a <a class="reference external" href="index.html#forwarding-functions">forwarding function</a> from overload resolution.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
-<tr class="field"><th class="field-name">Returns:</th><td class="field-body">if <tt class="docutils literal"><span class="pre">P0</span></tt>, <tt class="docutils literal"><span class="pre">P1</span></tt>, â¦<tt class="docutils literal"><span class="pre">P</span></tt>β are <em>satisfied</em> (see
+<tr class="field"><th class="field-name">Returns:</th><td class="field-body">if <tt class="docutils literal">P0</tt>, <tt class="docutils literal">P1</tt>, â¦<tt class="docutils literal">P</tt>β are <em>satisfied</em> (see
below), then <tt class="docutils literal"><span class="pre">parameters<P0,P1,â¦Pβ></span></tt>. Otherwise,
<tt class="docutils literal"><span class="pre">match<A0,A1,â¦Aβ>::type</span></tt> is not defined.</td>
</tr>
</tbody>
</table>
-<p><tt class="docutils literal"><span class="pre">P0</span></tt>, <tt class="docutils literal"><span class="pre">P1</span></tt>, â¦<tt class="docutils literal"><span class="pre">P</span></tt>β are <strong>satisfied</strong> if, for
+<p><tt class="docutils literal">P0</tt>, <tt class="docutils literal">P1</tt>, â¦<tt class="docutils literal">P</tt>β are <strong>satisfied</strong> if, for
every <em>j</em> in 0â¦Î², either:</p>
<ul class="last simple">
-<li><tt class="docutils literal"><span class="pre">P</span></tt><em>j</em> is the <em>unspecified</em> default</li>
-<li><strong>or</strong>, <tt class="docutils literal"><span class="pre">P</span></tt><em>j</em> is a <em>keyword tag type</em></li>
-<li><strong>or</strong>, <tt class="docutils literal"><span class="pre">P</span></tt><em>j</em> is <a class="reference internal" href="#optional"><tt class="docutils literal"><span class="pre">optional</span></tt></a> <tt class="docutils literal"><span class="pre"><X,F></span></tt> and either<ul>
-<li><tt class="docutils literal"><span class="pre">X</span></tt> is not <tt class="docutils literal"><span class="pre">K</span></tt><em>i</em> for any <em>i</em>,</li>
-<li><strong>or</strong> <tt class="docutils literal"><span class="pre">X</span></tt> is some <tt class="docutils literal"><span class="pre">K</span></tt><em>i</em> and <tt class="docutils literal"><span class="pre">mpl::apply<F,R</span></tt><em>i</em><tt class="docutils literal"><span class="pre">>::type::value</span></tt> is <tt class="docutils literal"><span class="pre">true</span></tt></li>
+<li><tt class="docutils literal">P</tt><em>j</em> is the <em>unspecified</em> default</li>
+<li><strong>or</strong>, <tt class="docutils literal">P</tt><em>j</em> is a <em>keyword tag type</em></li>
+<li><strong>or</strong>, <tt class="docutils literal">P</tt><em>j</em> is <a class="reference internal" href="#optional"><tt class="docutils literal">optional</tt></a> <tt class="docutils literal"><X,F></tt> and either<ul>
+<li><tt class="docutils literal">X</tt> is not <tt class="docutils literal">K</tt><em>i</em> for any <em>i</em>,</li>
+<li><strong>or</strong> <tt class="docutils literal">X</tt> is some <tt class="docutils literal">K</tt><em>i</em> and <tt class="docutils literal"><span class="pre">mpl::apply<F,R</span></tt><em>i</em><tt class="docutils literal"><span class="pre">>::type::value</span></tt> is <tt class="docutils literal">true</tt></li>
</ul>
</li>
-<li><strong>or</strong>, <tt class="docutils literal"><span class="pre">P</span></tt><em>j</em> is <a class="reference internal" href="#required"><tt class="docutils literal"><span class="pre">required</span></tt></a> <tt class="docutils literal"><span class="pre"><X,F></span></tt>, and<ul>
-<li><tt class="docutils literal"><span class="pre">X</span></tt> is some <tt class="docutils literal"><span class="pre">K</span></tt><em>i</em>, <strong>and</strong></li>
-<li><tt class="docutils literal"><span class="pre">mpl::apply<F,R</span></tt><em>i</em><tt class="docutils literal"><span class="pre">>::type::value</span></tt> is <tt class="docutils literal"><span class="pre">true</span></tt></li>
+<li><strong>or</strong>, <tt class="docutils literal">P</tt><em>j</em> is <a class="reference internal" href="#required"><tt class="docutils literal">required</tt></a> <tt class="docutils literal"><X,F></tt>, and<ul>
+<li><tt class="docutils literal">X</tt> is some <tt class="docutils literal">K</tt><em>i</em>, <strong>and</strong></li>
+<li><tt class="docutils literal"><span class="pre">mpl::apply<F,R</span></tt><em>i</em><tt class="docutils literal"><span class="pre">>::type::value</span></tt> is <tt class="docutils literal">true</tt></li>
</ul>
</li>
</ul>
</dd>
</dl>
<dl class="docutils" id="id13">
-<dt><tt class="docutils literal"><span class="pre">operator()</span></tt></dt>
+<dt><tt class="docutils literal">operator()</tt></dt>
<dd><pre class="first literal-block">
template <class A0> <a class="reference internal" href="#argumentpack"><span class="concept">ArgumentPack</span></a> operator()(A0 const& a0) const;
@@ -518,10 +518,10 @@
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
-<tr class="field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">An <a class="reference internal" href="#argumentpack"><span class="concept">ArgumentPack</span></a> containing, for each <tt class="docutils literal"><span class="pre">a</span></tt><em>i</em>,</p>
+<tr class="field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">An <a class="reference internal" href="#argumentpack"><span class="concept">ArgumentPack</span></a> containing, for each <tt class="docutils literal">a</tt><em>i</em>,</p>
<ul class="last simple">
-<li>if <tt class="docutils literal"><span class="pre">a</span></tt><em>i</em>, is a single-element <span class="concept">ArgumentPack</span>, its element</li>
-<li>Otherwise, a <a class="reference internal" href="#tagged-reference">tagged reference</a> with <a class="reference internal" href="#kw">keyword</a> <tt class="docutils literal"><span class="pre">K</span></tt><em>i</em> and <em>value</em> <tt class="docutils literal"><span class="pre">a</span></tt><em>i</em></li>
+<li>if <tt class="docutils literal">a</tt><em>i</em>, is a single-element <span class="concept">ArgumentPack</span>, its element</li>
+<li>Otherwise, a <a class="reference internal" href="#tagged-reference">tagged reference</a> with <a class="reference internal" href="#kw">keyword</a> <tt class="docutils literal">K</tt><em>i</em> and <em>value</em> <tt class="docutils literal">a</tt><em>i</em></li>
</ul>
</td>
</tr>
@@ -531,7 +531,7 @@
</dl>
</div>
<div class="section" id="optional-required">
-<span id="required"></span><span id="optional"></span><h2><a class="toc-backref" href="#id42">4.3 <tt class="docutils literal"><span class="pre">optional</span></tt>, <tt class="docutils literal"><span class="pre">required</span></tt></a></h2>
+<span id="required"></span><span id="optional"></span><h2><a class="toc-backref" href="#id42">4.3 <tt class="docutils literal">optional</tt>, <tt class="docutils literal">required</tt></a></h2>
<p>These templates describe the requirements on a function parameter.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
@@ -557,13 +557,13 @@
template <class Tag, class Predicate = <em>unspecified</em>>
struct required;
</pre>
-<p>The default value of <tt class="docutils literal"><span class="pre">Predicate</span></tt> is an unspecified <a class="reference external" href="../../../mpl/doc/refmanual/metafunction.html"><span class="concept">Metafunction</span></a> that returns
+<p>The default value of <tt class="docutils literal">Predicate</tt> is an unspecified <a class="reference external" href="../../../mpl/doc/refmanual/metafunction.html"><span class="concept">Metafunction</span></a> that returns
<tt class="docutils literal"><span class="pre">mpl::true_</span></tt> for any argument.</p>
</div>
<div class="section" id="deduced">
-<h2><a class="toc-backref" href="#id43">4.4 <tt class="docutils literal"><span class="pre">deduced</span></tt></a></h2>
+<h2><a class="toc-backref" href="#id43">4.4 <tt class="docutils literal">deduced</tt></a></h2>
<p>This template is used to wrap the <em>keyword tag</em> argument to
-<tt class="docutils literal"><span class="pre">optional</span></tt> or <tt class="docutils literal"><span class="pre">required</span></tt>.</p>
+<tt class="docutils literal">optional</tt> or <tt class="docutils literal">required</tt>.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
@@ -584,7 +584,7 @@
<p>A <a class="reference external" href="../../../mpl/doc/refmanual/metafunction.html"><span class="concept">Metafunction</span></a> is conceptually a function that operates on, and
returns, C++ types.</p>
<div class="section" id="binding">
-<h2><a class="toc-backref" href="#id45">5.1 <tt class="docutils literal"><span class="pre">binding</span></tt></a></h2>
+<h2><a class="toc-backref" href="#id45">5.1 <tt class="docutils literal">binding</tt></a></h2>
<p>Returns the result type of indexing an argument pack with a
<a class="reference internal" href="#keyword-tag-type">keyword tag type</a> or with a <a class="reference internal" href="#tagged-default">tagged default</a>.</p>
<table class="docutils field-list" frame="void" rules="none">
@@ -606,16 +606,16 @@
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
-<tr class="field"><th class="field-name">Requires:</th><td class="field-body"><tt class="docutils literal"><span class="pre">A</span></tt> is a model of <a class="reference internal" href="#argumentpack"><span class="concept">ArgumentPack</span></a>.</td>
+<tr class="field"><th class="field-name">Requires:</th><td class="field-body"><tt class="docutils literal">A</tt> is a model of <a class="reference internal" href="#argumentpack"><span class="concept">ArgumentPack</span></a>.</td>
</tr>
-<tr class="field"><th class="field-name">Returns:</th><td class="field-body">the reference type of the <a class="reference internal" href="#tagged-reference">tagged reference</a> in <tt class="docutils literal"><span class="pre">A</span></tt>
-having <a class="reference internal" href="#keyword-tag-type">keyword tag type</a> <tt class="docutils literal"><span class="pre">K</span></tt>, if any. If no such <a class="reference internal" href="#tagged-reference">tagged reference</a> exists, returns <tt class="docutils literal"><span class="pre">D</span></tt>.</td>
+<tr class="field"><th class="field-name">Returns:</th><td class="field-body">the reference type of the <a class="reference internal" href="#tagged-reference">tagged reference</a> in <tt class="docutils literal">A</tt>
+having <a class="reference internal" href="#keyword-tag-type">keyword tag type</a> <tt class="docutils literal">K</tt>, if any. If no such <a class="reference internal" href="#tagged-reference">tagged reference</a> exists, returns <tt class="docutils literal">D</tt>.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="lazy-binding">
-<h2><a class="toc-backref" href="#id46">5.2 <tt class="docutils literal"><span class="pre">lazy_binding</span></tt></a></h2>
+<h2><a class="toc-backref" href="#id46">5.2 <tt class="docutils literal">lazy_binding</tt></a></h2>
<p>Returns the result type of indexing an argument pack with a <a class="reference internal" href="#tagged-lazy-default">tagged lazy default</a>.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
@@ -636,16 +636,16 @@
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
-<tr class="field"><th class="field-name">Requires:</th><td class="field-body"><tt class="docutils literal"><span class="pre">A</span></tt> is a model of <a class="reference internal" href="#argumentpack"><span class="concept">ArgumentPack</span></a>.</td>
+<tr class="field"><th class="field-name">Requires:</th><td class="field-body"><tt class="docutils literal">A</tt> is a model of <a class="reference internal" href="#argumentpack"><span class="concept">ArgumentPack</span></a>.</td>
</tr>
-<tr class="field"><th class="field-name">Returns:</th><td class="field-body">the reference type of the <a class="reference internal" href="#tagged-reference">tagged reference</a> in <tt class="docutils literal"><span class="pre">A</span></tt>
-having <a class="reference internal" href="#keyword-tag-type">keyword tag type</a> <tt class="docutils literal"><span class="pre">K</span></tt>, if any. If no such <a class="reference internal" href="#tagged-reference">tagged reference</a> exists, returns <tt class="docutils literal"><span class="pre">boost::</span></tt><a class="reference external" href="../../../utility/utility.htm#result_of"><tt class="docutils literal"><span class="pre">result_of</span></tt></a><tt class="docutils literal"><span class="pre"><F()>::type</span></tt>.<a class="footnote-reference" href="#no-result-of" id="id18"><sup>2</sup></a></td>
+<tr class="field"><th class="field-name">Returns:</th><td class="field-body">the reference type of the <a class="reference internal" href="#tagged-reference">tagged reference</a> in <tt class="docutils literal">A</tt>
+having <a class="reference internal" href="#keyword-tag-type">keyword tag type</a> <tt class="docutils literal">K</tt>, if any. If no such <a class="reference internal" href="#tagged-reference">tagged reference</a> exists, returns <tt class="docutils literal">boost::</tt><a class="reference external" href="../../../utility/utility.htm#result_of"><tt class="docutils literal">result_of</tt></a><tt class="docutils literal"><span class="pre"><F()>::type</span></tt>.<a class="footnote-reference" href="#no-result-of" id="id18"><sup>2</sup></a></td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="value-type">
-<h2><a class="toc-backref" href="#id47">5.3 <tt class="docutils literal"><span class="pre">value_type</span></tt></a></h2>
+<h2><a class="toc-backref" href="#id47">5.3 <tt class="docutils literal">value_type</tt></a></h2>
<p>Returns the result type of indexing an argument pack with a
<a class="reference internal" href="#keyword-tag-type">keyword tag type</a> or with a <a class="reference internal" href="#tagged-default">tagged default</a>.</p>
<table class="docutils field-list" frame="void" rules="none">
@@ -667,17 +667,17 @@
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
-<tr class="field"><th class="field-name">Requires:</th><td class="field-body"><p class="first"><tt class="docutils literal"><span class="pre">A</span></tt> is a model of <a class="reference internal" href="#argumentpack"><span class="concept">ArgumentPack</span></a>.</p>
+<tr class="field"><th class="field-name">Requires:</th><td class="field-body"><p class="first"><tt class="docutils literal">A</tt> is a model of <a class="reference internal" href="#argumentpack"><span class="concept">ArgumentPack</span></a>.</p>
</td>
</tr>
-<tr class="field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">the type of the <a class="reference internal" href="#tagged-reference">tagged reference</a> in <tt class="docutils literal"><span class="pre">A</span></tt>
-having <a class="reference internal" href="#keyword-tag-type">keyword tag type</a> <tt class="docutils literal"><span class="pre">K</span></tt>, if any. If no such <a class="reference internal" href="#tagged-reference">tagged reference</a> exists, returns <tt class="docutils literal"><span class="pre">D</span></tt>. Equivalent to:</p>
+<tr class="field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">the type of the <a class="reference internal" href="#tagged-reference">tagged reference</a> in <tt class="docutils literal">A</tt>
+having <a class="reference internal" href="#keyword-tag-type">keyword tag type</a> <tt class="docutils literal">K</tt>, if any. If no such <a class="reference internal" href="#tagged-reference">tagged reference</a> exists, returns <tt class="docutils literal">D</tt>. Equivalent to:</p>
<pre class="literal-block">
typename remove_reference<
typename binding<A, K, D>::type
>::type
</pre>
-<p class="last">⦠when <tt class="docutils literal"><span class="pre">D</span></tt> is not a reference type.</p>
+<p class="last">⦠when <tt class="docutils literal">D</tt> is not a reference type.</p>
</td>
</tr>
</tbody>
@@ -690,7 +690,7 @@
<p>Macros in this section can be used to ease the writing of code
using the Parameter libray by eliminating repetitive boilerplate.</p>
<div class="section" id="boost-parameter-function-result-name-tag-namespace-arguments">
-<h2><a class="toc-backref" href="#id49">6.1 <tt class="docutils literal"><span class="pre">BOOST_PARAMETER_FUNCTION(result,name,tag_namespace,arguments)</span></tt></a></h2>
+<h2><a class="toc-backref" href="#id49">6.1 <tt class="docutils literal">BOOST_PARAMETER_FUNCTION(result,name,tag_namespace,arguments)</tt></a></h2>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
@@ -703,10 +703,10 @@
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
-<tr class="field"><th class="field-name">Requires:</th><td class="field-body"><p class="first"><tt class="docutils literal"><span class="pre">result</span></tt> is the parenthesized return type of the function.
-<tt class="docutils literal"><span class="pre">name</span></tt> is the base name of the function, this is the name of the
-generated forwarding functions. <tt class="docutils literal"><span class="pre">tag_namespace</span></tt> is the namespace in
-which the keywords used by the function resides. <tt class="docutils literal"><span class="pre">arguments</span></tt> is
+<tr class="field"><th class="field-name">Requires:</th><td class="field-body"><p class="first"><tt class="docutils literal">result</tt> is the parenthesized return type of the function.
+<tt class="docutils literal">name</tt> is the base name of the function, this is the name of the
+generated forwarding functions. <tt class="docutils literal">tag_namespace</tt> is the namespace in
+which the keywords used by the function resides. <tt class="docutils literal">arguments</tt> is
a list of <em>argument specifiers</em>, as defined below.</p>
</td>
</tr>
@@ -727,8 +727,8 @@
( '<strong>(</strong>' <em>typename</em> '<strong>)</strong>' ) |
'<strong>*</strong>'
</pre>
-<p class="last"><tt class="docutils literal"><span class="pre">name</span></tt> is any valid C++ identifier. <tt class="docutils literal"><span class="pre">default-value</span></tt> is any valid
-C++ expression. <tt class="docutils literal"><span class="pre">typename</span></tt> is the name of a type.
+<p class="last"><tt class="docutils literal">name</tt> is any valid C++ identifier. <tt class="docutils literal"><span class="pre">default-value</span></tt> is any valid
+C++ expression. <tt class="docutils literal">typename</tt> is the name of a type.
<tt class="docutils literal"><span class="pre">lambda-expression</span></tt> is an <a class="reference external" href="../../../mpl/doc/refmanual/lambda-expression.html">MPL lambda expression</a>.</p>
</td>
</tr>
@@ -740,11 +740,11 @@
<tbody valign="top">
<tr class="field"><th class="field-name" colspan="2">Generated names in enclosing scope:</th></tr>
<tr><td> </td><td class="field-body"><ul class="first last simple">
-<li><tt class="docutils literal"><span class="pre">boost_param_result_</span> <span class="pre">##</span> <span class="pre">__LINE__</span> <span class="pre">##</span> <span class="pre">name</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">boost_param_params_</span> <span class="pre">##</span> <span class="pre">__LINE__</span> <span class="pre">##</span> <span class="pre">name</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">boost_param_parameters_</span> <span class="pre">##</span> <span class="pre">__LINE__</span> <span class="pre">##</span> <span class="pre">name</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">boost_param_impl</span> <span class="pre">##</span> <span class="pre">name</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">boost_param_default_</span> <span class="pre">##</span> <span class="pre">__LINE__</span> <span class="pre">##</span> <span class="pre">name</span></tt></li>
+<li><tt class="docutils literal">boost_param_result_ ## __LINE__ ## name</tt></li>
+<li><tt class="docutils literal">boost_param_params_ ## __LINE__ ## name</tt></li>
+<li><tt class="docutils literal">boost_param_parameters_ ## __LINE__ ## name</tt></li>
+<li><tt class="docutils literal">boost_param_impl ## name</tt></li>
+<li><tt class="docutils literal">boost_param_default_ ## __LINE__ ## name</tt></li>
</ul>
</td>
</tr>
@@ -754,8 +754,8 @@
<dt>Approximate expansion:</dt>
<dd><p class="first"><strong>Where</strong>:</p>
<ul class="simple">
-<li><tt class="docutils literal"><span class="pre">n</span></tt> denotes the <em>minimum</em> arity, as determined from <tt class="docutils literal"><span class="pre">arguments</span></tt>.</li>
-<li><tt class="docutils literal"><span class="pre">m</span></tt> denotes the <em>maximum</em> arity, as determined from <tt class="docutils literal"><span class="pre">arguments</span></tt>.</li>
+<li><tt class="docutils literal">n</tt> denotes the <em>minimum</em> arity, as determined from <tt class="docutils literal">arguments</tt>.</li>
+<li><tt class="docutils literal">m</tt> denotes the <em>maximum</em> arity, as determined from <tt class="docutils literal">arguments</tt>.</li>
</ul>
<pre class="last literal-block">
template <class T>
@@ -814,7 +814,7 @@
</dl>
</div>
<div class="section" id="boost-parameter-member-function-result-name-tag-namespace-arguments">
-<h2><a class="toc-backref" href="#id50">6.2 <tt class="docutils literal"><span class="pre">BOOST_PARAMETER_MEMBER_FUNCTION(result,name,tag_namespace,arguments)</span></tt></a></h2>
+<h2><a class="toc-backref" href="#id50">6.2 <tt class="docutils literal">BOOST_PARAMETER_MEMBER_FUNCTION(result,name,tag_namespace,arguments)</tt></a></h2>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
@@ -823,10 +823,10 @@
</tr>
</tbody>
</table>
-<p>See <tt class="docutils literal"><span class="pre">BOOST_PARAMETER_FUNCTION(result,name,tag_namespace,arguments)</span></tt></p>
+<p>See <tt class="docutils literal">BOOST_PARAMETER_FUNCTION(result,name,tag_namespace,arguments)</tt></p>
</div>
<div class="section" id="boost-parameter-constructor-cls-impl-tag-namespace-arguments">
-<h2><a class="toc-backref" href="#id51">6.3 <tt class="docutils literal"><span class="pre">BOOST_PARAMETER_CONSTRUCTOR(cls,</span> <span class="pre">impl,</span> <span class="pre">tag_namespace,</span> <span class="pre">arguments)</span></tt></a></h2>
+<h2><a class="toc-backref" href="#id51">6.3 <tt class="docutils literal">BOOST_PARAMETER_CONSTRUCTOR(cls, impl, tag_namespace, arguments)</tt></a></h2>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
@@ -839,18 +839,18 @@
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
-<tr class="field"><th class="field-name">Requires:</th><td class="field-body"><p class="first"><tt class="docutils literal"><span class="pre">cls</span></tt> is the name of this class. <tt class="docutils literal"><span class="pre">impl</span></tt> is the
-parenthesized implementation base class for <tt class="docutils literal"><span class="pre">cls</span></tt>.
-<tt class="docutils literal"><span class="pre">tag_namespace</span></tt> is the namespace in which the keywords
-used by the function resides. <tt class="docutils literal"><span class="pre">arguments</span></tt> is
+<tr class="field"><th class="field-name">Requires:</th><td class="field-body"><p class="first"><tt class="docutils literal">cls</tt> is the name of this class. <tt class="docutils literal">impl</tt> is the
+parenthesized implementation base class for <tt class="docutils literal">cls</tt>.
+<tt class="docutils literal">tag_namespace</tt> is the namespace in which the keywords
+used by the function resides. <tt class="docutils literal">arguments</tt> is
a list of <em>argument specifiers</em>, as defined in
-<tt class="docutils literal"><span class="pre">BOOST_PARAMETER_FUNCTION(result,name,tag_namespace,arguments)</span></tt>.</p>
+<tt class="docutils literal">BOOST_PARAMETER_FUNCTION(result,name,tag_namespace,arguments)</tt>.</p>
</td>
</tr>
<tr class="field"><th class="field-name" colspan="2">Generated names in enclosing scope:</th></tr>
<tr><td> </td><td class="field-body"><ul class="first last simple">
-<li><tt class="docutils literal"><span class="pre">boost_param_params_</span> <span class="pre">##</span> <span class="pre">__LINE__</span> <span class="pre">##</span> <span class="pre">ctor</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">constructor_parameters</span> <span class="pre">##</span> <span class="pre">__LINE__</span></tt></li>
+<li><tt class="docutils literal">boost_param_params_ ## __LINE__ ## ctor</tt></li>
+<li><tt class="docutils literal">constructor_parameters ## __LINE__</tt></li>
</ul>
</td>
</tr>
@@ -860,8 +860,8 @@
<dt>Approximate expansion:</dt>
<dd><p class="first"><strong>Where</strong>:</p>
<ul class="simple">
-<li><tt class="docutils literal"><span class="pre">n</span></tt> denotes the <em>minimum</em> arity, as determined from <tt class="docutils literal"><span class="pre">arguments</span></tt>.</li>
-<li><tt class="docutils literal"><span class="pre">m</span></tt> denotes the <em>maximum</em> arity, as determined from <tt class="docutils literal"><span class="pre">arguments</span></tt>.</li>
+<li><tt class="docutils literal">n</tt> denotes the <em>minimum</em> arity, as determined from <tt class="docutils literal">arguments</tt>.</li>
+<li><tt class="docutils literal">m</tt> denotes the <em>maximum</em> arity, as determined from <tt class="docutils literal">arguments</tt>.</li>
</ul>
<pre class="last literal-block">
struct boost_param_params_ ## __LINE__ ## ctor
@@ -889,7 +889,7 @@
</dl>
</div>
<div class="section" id="boost-parameter-name-name">
-<h2><a class="toc-backref" href="#id52">6.4 <tt class="docutils literal"><span class="pre">BOOST_PARAMETER_NAME(name)</span></tt></a></h2>
+<h2><a class="toc-backref" href="#id52">6.4 <tt class="docutils literal">BOOST_PARAMETER_NAME(name)</tt></a></h2>
<p>Declares a tag-type and keyword object.</p>
<p>Expands to:</p>
<p><strong>If</strong> <em>name</em> is of the form:</p>
@@ -936,7 +936,7 @@
</pre>
</div>
<div class="section" id="boost-parameter-template-keyword-name">
-<h2><a class="toc-backref" href="#id53">6.5 <tt class="docutils literal"><span class="pre">BOOST_PARAMETER_TEMPLATE_KEYWORD(name)</span></tt></a></h2>
+<h2><a class="toc-backref" href="#id53">6.5 <tt class="docutils literal">BOOST_PARAMETER_TEMPLATE_KEYWORD(name)</tt></a></h2>
<p>Expands to:</p>
<pre class="literal-block">
namespace tag
@@ -951,15 +951,15 @@
</pre>
</div>
<div class="section" id="boost-parameter-fun-r-n-l-h-p">
-<h2><a class="toc-backref" href="#id54">6.6 <tt class="docutils literal"><span class="pre">BOOST_PARAMETER_FUN(r,n,l,h,p)</span></tt></a></h2>
+<h2><a class="toc-backref" href="#id54">6.6 <tt class="docutils literal">BOOST_PARAMETER_FUN(r,n,l,h,p)</tt></a></h2>
<div class="admonition-deprecated admonition">
<p class="first admonition-title">Deprecated</p>
<p class="last">This macro has been deprecated in favor of
-<tt class="docutils literal"><span class="pre">BOOST_PARAMETER_FUNCTION</span></tt>.</p>
+<tt class="docutils literal">BOOST_PARAMETER_FUNCTION</tt>.</p>
</div>
<p>Generates a sequence of <a class="reference external" href="index.html#forwarding-functions">forwarding function</a> templates named
-<tt class="docutils literal"><span class="pre">n</span></tt>, with arities ranging from <tt class="docutils literal"><span class="pre">l</span></tt> to <tt class="docutils literal"><span class="pre">h</span></tt> , returning <tt class="docutils literal"><span class="pre">r</span></tt>,
-and using <tt class="docutils literal"><span class="pre">p</span></tt> to control overload resolution and assign tags to
+<tt class="docutils literal">n</tt>, with arities ranging from <tt class="docutils literal">l</tt> to <tt class="docutils literal">h</tt> , returning <tt class="docutils literal">r</tt>,
+and using <tt class="docutils literal">p</tt> to control overload resolution and assign tags to
positional arguments.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
@@ -973,8 +973,8 @@
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
-<tr class="field"><th class="field-name">Requires:</th><td class="field-body"><tt class="docutils literal"><span class="pre">l</span></tt> and <tt class="docutils literal"><span class="pre">h</span></tt> are nonnegative integer tokens such
-that <tt class="docutils literal"><span class="pre">l</span></tt> < <tt class="docutils literal"><span class="pre">h</span></tt></td>
+<tr class="field"><th class="field-name">Requires:</th><td class="field-body"><tt class="docutils literal">l</tt> and <tt class="docutils literal">h</tt> are nonnegative integer tokens such
+that <tt class="docutils literal">l</tt> < <tt class="docutils literal">h</tt></td>
</tr>
</tbody>
</table>
@@ -1012,14 +1012,14 @@
</dl>
</div>
<div class="section" id="boost-parameter-keyword-n-k">
-<h2><a class="toc-backref" href="#id55">6.7 <tt class="docutils literal"><span class="pre">BOOST_PARAMETER_KEYWORD(n,k)</span></tt></a></h2>
+<h2><a class="toc-backref" href="#id55">6.7 <tt class="docutils literal">BOOST_PARAMETER_KEYWORD(n,k)</tt></a></h2>
<div class="admonition-deprecated admonition">
<p class="first admonition-title">Deprecated</p>
<p class="last">This macro has been deprecated in favor of
-<tt class="docutils literal"><span class="pre">BOOST_PARAMETER_NAME</span></tt>.</p>
+<tt class="docutils literal">BOOST_PARAMETER_NAME</tt>.</p>
</div>
-<p>Generates the declaration of a <a class="reference internal" href="#keyword-tag-type">keyword tag type</a> named <tt class="docutils literal"><span class="pre">k</span></tt> in
-namespace <tt class="docutils literal"><span class="pre">n</span></tt>, and a corresponding <a class="reference internal" href="#keyword-object">keyword object</a> definition in
+<p>Generates the declaration of a <a class="reference internal" href="#keyword-tag-type">keyword tag type</a> named <tt class="docutils literal">k</tt> in
+namespace <tt class="docutils literal">n</tt>, and a corresponding <a class="reference internal" href="#keyword-object">keyword object</a> definition in
the enclosing namespace.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
@@ -1042,7 +1042,7 @@
</dl>
</div>
<div class="section" id="boost-parameter-match-p-a-x">
-<h2><a class="toc-backref" href="#id56">6.8 <tt class="docutils literal"><span class="pre">BOOST_PARAMETER_MATCH(p,a,x)</span></tt></a></h2>
+<h2><a class="toc-backref" href="#id56">6.8 <tt class="docutils literal">BOOST_PARAMETER_MATCH(p,a,x)</tt></a></h2>
<p>Generates a defaulted parameter declaration for a <a class="reference external" href="index.html#forwarding-functions">forwarding
function</a>.</p>
<table class="docutils field-list" frame="void" rules="none">
@@ -1057,7 +1057,7 @@
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
-<tr class="field"><th class="field-name">Requires:</th><td class="field-body"><p class="first"><tt class="docutils literal"><span class="pre">a</span></tt> is a <a class="reference external" href="http://www.boost.org/libs/preprocessor/doc/data.html">Boost.Preprocessor sequence</a>
+<tr class="field"><th class="field-name">Requires:</th><td class="field-body"><p class="first"><tt class="docutils literal">a</tt> is a <a class="reference external" href="http://www.boost.org/libs/preprocessor/doc/data.html">Boost.Preprocessor sequence</a>
of the form</p>
<pre class="last literal-block">
(A0)(A1)â¦(A<em>n</em>)
@@ -1078,10 +1078,10 @@
<div class="section" id="configuration-macros">
<h1><a class="toc-backref" href="#id57">7 Configuration Macros</a></h1>
<div class="section" id="boost-parameter-max-arity">
-<h2><a class="toc-backref" href="#id58">7.1 <tt class="docutils literal"><span class="pre">BOOST_PARAMETER_MAX_ARITY</span></tt></a></h2>
+<h2><a class="toc-backref" href="#id58">7.1 <tt class="docutils literal">BOOST_PARAMETER_MAX_ARITY</tt></a></h2>
<p>Determines the maximum number of arguments supported by the
-library. Will only be <tt class="docutils literal"><span class="pre">#defined</span></tt> by the library if it is not
-already <tt class="docutils literal"><span class="pre">#defined</span></tt>.</p>
+library. Will only be <tt class="docutils literal">#defined</tt> by the library if it is not
+already <tt class="docutils literal">#defined</tt>.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
@@ -1094,7 +1094,7 @@
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
-<tr class="field"><th class="field-name">Default Value:</th><td class="field-body"><tt class="docutils literal"><span class="pre">5</span></tt></td>
+<tr class="field"><th class="field-name">Default Value:</th><td class="field-body"><tt class="docutils literal">5</tt></td>
</tr>
</tbody>
</table>
@@ -1119,8 +1119,8 @@
<table class="docutils footnote" frame="void" id="no-result-of" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
-<tr><td class="label">[2]</td><td><em>(<a class="fn-backref" href="#id11">1</a>, <a class="fn-backref" href="#id18">2</a>)</em> Where <a class="reference external" href="../../../utility/utility.htm#BOOST_NO_RESULT_OF"><tt class="docutils literal"><span class="pre">BOOST_NO_RESULT_OF</span></tt></a> is <tt class="docutils literal"><span class="pre">#defined</span></tt>,
-<tt class="docutils literal"><span class="pre">boost::</span></tt><a class="reference external" href="../../../utility/utility.htm#result_of"><tt class="docutils literal"><span class="pre">result_of</span></tt></a><tt class="docutils literal"><span class="pre"><F()>::type</span></tt> is replaced by
+<tr><td class="label">[2]</td><td><em>(<a class="fn-backref" href="#id11">1</a>, <a class="fn-backref" href="#id18">2</a>)</em> Where <a class="reference external" href="../../../utility/utility.htm#BOOST_NO_RESULT_OF"><tt class="docutils literal">BOOST_NO_RESULT_OF</tt></a> is <tt class="docutils literal">#defined</tt>,
+<tt class="docutils literal">boost::</tt><a class="reference external" href="../../../utility/utility.htm#result_of"><tt class="docutils literal">result_of</tt></a><tt class="docutils literal"><span class="pre"><F()>::type</span></tt> is replaced by
<tt class="docutils literal"><span class="pre">F::result_type</span></tt>.</td></tr>
</tbody>
</table>
@@ -1128,7 +1128,7 @@
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2009-01-30 21:27 UTC.
+Generated on: 2011-11-08 21:40 UTC.
Generated by <a class="reference external" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference external" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
</div>
Modified: trunk/libs/parameter/doc/index.rst
==============================================================================
--- trunk/libs/parameter/doc/index.rst (original)
+++ trunk/libs/parameter/doc/index.rst 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -856,6 +856,44 @@
.. parsed-literal::
+ // We first need to define a few metafunction that we use in the
+ // predicates below.
+
+ template <class G>
+ struct traversal_category
+ {
+ typedef typename boost::graph_traits<G>::traversal_category type;
+ };
+
+ template <class G>
+ struct vertex_descriptor
+ {
+ typedef typename boost::graph_traits<G>::vertex_descriptor type;
+ };
+
+ template <class G>
+ struct value_type
+ {
+ typedef typename boost::property_traits<G>::value_type type;
+ };
+
+ template <class G>
+ struct key_type
+ {
+ typedef typename boost::property_traits<G>::key_type type;
+ };
+
+ template<class Size, class IndexMap>
+ boost::iterator_property_map<
+ boost::default_color_type\*, IndexMap
+ , boost::default_color_type, boost::default_color_type&
+ >
+ default_color_map(Size num_vertices, IndexMap const& index_map)
+ {
+ std::vector<boost::default_color_type> colors(num_vertices);
+ return &colors[0];
+ }
+
BOOST_PARAMETER_FUNCTION(
(void), depth_first_search, graphs
@@ -863,12 +901,10 @@
(graph
, **\ \*(boost::mpl::and_<
boost::is_convertible<
- boost::graph_traits<_>::traversal_category
- , boost::incidence_graph_tag
+ traversal_category<_>, boost::incidence_graph_tag
>
, boost::is_convertible<
- boost::graph_traits<_>::traversal_category
- , boost::vertex_list_graph_tag
+ traversal_category<_>, boost::vertex_list_graph_tag
>
>)** ))
@@ -876,25 +912,21 @@
(visitor, \*, boost::dfs_visitor<>()) // not checkable
(root_vertex
- , (typename boost::graph_traits<graphs::graph::_>::vertex_descriptor)
+ , (vertex_descriptor<graphs::graph::_>)
, \*vertices(graph).first)
(index_map
, **\ \*(boost::mpl::and_<
- boost::is_integral<
- boost::property_traits<_>::value_type
- >
+ boost::is_integral<value_type<_> >
, boost::is_same<
- typename boost::graph_traits<graphs::graph::_>::vertex_descriptor
- , boost::property_traits<_>::key_type
+ vertex_descriptor<graphs::graph::_>, key_type<_>
>
>)**
, get(boost::vertex_index,graph))
(in_out(color_map)
, **\ \*(boost::is_same<
- typename boost::graph_traits<graphs::graph::_>::vertex_descriptor
- , boost::property_traits<_>::key_type
+ vertex_descriptor<graphs::graph::_>, key_type<_>
>)**
, default_color_map(num_vertices(graph), index_map) )
)
@@ -902,6 +934,8 @@
.. @example.prepend('''
#include <boost/parameter.hpp>
+ #include <boost/graph/adjacency_list.hpp>
+ #include <boost/graph/depth_first_search.hpp>
BOOST_PARAMETER_NAME((_graph, graphs) graph)
BOOST_PARAMETER_NAME((_visitor, graphs) visitor)
@@ -910,38 +944,37 @@
BOOST_PARAMETER_NAME((_color_map, graphs) color_map)
using boost::mpl::_;
+ ''')
- namespace boost
- {
- struct incidence_graph_tag {};
- struct vertex_list_graph_tag {};
+.. @example.append('''
+ {}
- int vertex_index = 0;
+ int main()
+ {
+ typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS> G;
- template <class T>
- struct graph_traits
- {
- typedef int traversal_category;
- typedef int vertex_descriptor;
- };
-
- template <class T>
- struct property_traits
- {
- typedef int value_type;
- typedef int key_type;
- };
-
- template <class T = int>
- struct dfs_visitor
- {};
- }''')
+ enum {u, v, w, x, y, z, N};
+ typedef std::pair<int, int> E;
+ E edges[] = {E(u, v), E(u, x), E(x, v), E(y, x), E(v, y), E(w, y),
+ E(w,z), E(z, z)};
+ G g(edges, edges + sizeof(edges) / sizeof(E), N);
-.. @example.append('''
- {}''')
+ depth_first_search(g);
+ depth_first_search(g, _root_vertex = (int)x);
+ }
+ ''')
.. @test('compile')
+Note the use of the nested `tag::_`. This is a shortcut for::
+
+ value_type<boost::mpl::_2, tag>
+
+.. @ignore()
+
+Intended to be used to access preceding arguments types in the
+predicates.
+
__ ../../../mpl/doc/refmanual/metafunction.html
We acknowledge that this signature is pretty hairy looking.
Modified: trunk/libs/parameter/test/literate/building-argumentpacks0.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/building-argumentpacks0.cpp (original)
+++ trunk/libs/parameter/test/literate/building-argumentpacks0.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,8 +1,8 @@
-#line 1711 "../../../../libs/parameter/doc/index.rst"
+#line 1744 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter.hpp>
#include <iostream>
-#line 1700 "../../../../libs/parameter/doc/index.rst"
+#line 1733 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
BOOST_PARAMETER_NAME(index)
template <class ArgumentPack>
@@ -14,7 +14,7 @@
int x = print_index(_index = 3); // prints "index = 3"
-#line 1719 "../../../../libs/parameter/doc/index.rst"
+#line 1752 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
BOOST_PARAMETER_NAME(name)
template <class ArgumentPack>
@@ -27,13 +27,13 @@
int y = print_name_and_index((_index = 3, _name = "jones"));
-#line 1754 "../../../../libs/parameter/doc/index.rst"
+#line 1787 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
namespace parameter = boost::parameter;
using parameter::required;
using parameter::optional;
using boost::is_convertible;
using boost::mpl::_;
-#line 1740 "../../../../libs/parameter/doc/index.rst"
+#line 1773 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
parameter::parameters<
required<tag::name, is_convertible<_,char const*> >
, optional<tag::index, is_convertible<_,int> >
@@ -47,7 +47,7 @@
int z1 = print_name_and_index(
spec(_index=12, _name="sam")
);
-#line 1761 "../../../../libs/parameter/doc/index.rst"
+#line 1794 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
int main()
{}
Modified: trunk/libs/parameter/test/literate/class-template-skeleton0.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/class-template-skeleton0.cpp (original)
+++ trunk/libs/parameter/test/literate/class-template-skeleton0.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,7 +1,7 @@
-#line 1354 "../../../../libs/parameter/doc/index.rst"
+#line 1387 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter.hpp>
-#line 1340 "../../../../libs/parameter/doc/index.rst"
+#line 1373 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
namespace boost { namespace python {
template <
Modified: trunk/libs/parameter/test/literate/deduced-parameters0.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/deduced-parameters0.cpp (original)
+++ trunk/libs/parameter/test/literate/deduced-parameters0.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,5 +1,5 @@
-#line 1029 "../../../../libs/parameter/doc/index.rst"
+#line 1062 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter.hpp>
BOOST_PARAMETER_NAME(name)
@@ -31,7 +31,7 @@
void f()
{}
-#line 996 "../../../../libs/parameter/doc/index.rst"
+#line 1029 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
namespace mpl = boost::mpl;
BOOST_PARAMETER_FUNCTION(
@@ -64,17 +64,17 @@
}
-#line 1078 "../../../../libs/parameter/doc/index.rst"
+#line 1111 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
int main()
{
-#line 1075 "../../../../libs/parameter/doc/index.rst"
+#line 1108 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
def("f", &f, some_policies, "Documentation for f");
def("f", &f, "Documentation for f", some_policies);
-#line 1088 "../../../../libs/parameter/doc/index.rst"
+#line 1121 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
def(
"f", &f
, _policies = some_policies, "Documentation for f");
-#line 1091 "../../../../libs/parameter/doc/index.rst"
+#line 1124 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
}
Modified: trunk/libs/parameter/test/literate/deduced-template-parameters0.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/deduced-template-parameters0.cpp (original)
+++ trunk/libs/parameter/test/literate/deduced-template-parameters0.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,5 +1,5 @@
-#line 1524 "../../../../libs/parameter/doc/index.rst"
+#line 1557 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter.hpp>
#include <boost/mpl/is_sequence.hpp>
#include <boost/noncopyable.hpp>
@@ -16,7 +16,7 @@
BOOST_PARAMETER_TEMPLATE_KEYWORD(copyable)
}}
-#line 1513 "../../../../libs/parameter/doc/index.rst"
+#line 1546 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
namespace boost { namespace python {
namespace detail { struct bases_base {}; }
@@ -28,10 +28,10 @@
}}
-#line 1567 "../../../../libs/parameter/doc/index.rst"
+#line 1600 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/type_traits/is_class.hpp>
namespace boost { namespace python {
-#line 1545 "../../../../libs/parameter/doc/index.rst"
+#line 1578 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
typedef parameter::parameters<
required<tag::class_type, is_class<_> >
@@ -53,7 +53,7 @@
, parameter::optional<deduced<tag::copyable>, is_same<noncopyable,_> >
> class_signature;
-#line 1571 "../../../../libs/parameter/doc/index.rst"
+#line 1604 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
template <
class A0
, class A1 = parameter::void_
@@ -85,16 +85,16 @@
-#line 1611 "../../../../libs/parameter/doc/index.rst"
+#line 1644 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
struct B {};
struct D {};
using boost::python::bases;
-#line 1607 "../../../../libs/parameter/doc/index.rst"
+#line 1640 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
typedef boost::python::class_<B, boost::noncopyable> c1;
typedef boost::python::class_<D, std::auto_ptr<D>, bases<B> > c2;
-#line 1617 "../../../../libs/parameter/doc/index.rst"
+#line 1650 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
BOOST_MPL_ASSERT((boost::is_same<c1::class_type, B>));
BOOST_MPL_ASSERT((boost::is_same<c1::base_list, bases<> >));
BOOST_MPL_ASSERT((boost::is_same<c1::held_type, B>));
Modified: trunk/libs/parameter/test/literate/default-expression-evaluation0.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/default-expression-evaluation0.cpp (original)
+++ trunk/libs/parameter/test/literate/default-expression-evaluation0.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,5 +1,5 @@
-#line 730 "../../../../libs/parameter/doc/index.rst"
+#line 730 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter.hpp>
#include <iostream>
@@ -8,7 +8,7 @@
BOOST_PARAMETER_NAME(root_vertex)
BOOST_PARAMETER_NAME(index_map)
BOOST_PARAMETER_NAME(color_map)
-#line 702 "../../../../libs/parameter/doc/index.rst"
+#line 702 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/graph/depth_first_search.hpp> // for dfs_visitor
BOOST_PARAMETER_FUNCTION(
Modified: trunk/libs/parameter/test/literate/defining-the-keywords0.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/defining-the-keywords0.cpp (original)
+++ trunk/libs/parameter/test/literate/defining-the-keywords0.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,4 +1,4 @@
-#line 397 "../../../../libs/parameter/doc/index.rst"
+#line 397 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter/name.hpp>
namespace graphs
Modified: trunk/libs/parameter/test/literate/defining-the-keywords1.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/defining-the-keywords1.cpp (original)
+++ trunk/libs/parameter/test/literate/defining-the-keywords1.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,7 +1,7 @@
-#line 424 "../../../../libs/parameter/doc/index.rst"
+#line 424 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter/keyword.hpp>
-#line 413 "../../../../libs/parameter/doc/index.rst"
+#line 413 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
namespace graphs
{
namespace tag { struct graph; } // keyword tag type
Modified: trunk/libs/parameter/test/literate/exercising-the-code-so-far0.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/exercising-the-code-so-far0.cpp (original)
+++ trunk/libs/parameter/test/literate/exercising-the-code-so-far0.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,5 +1,5 @@
-#line 1382 "../../../../libs/parameter/doc/index.rst"
+#line 1415 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter.hpp>
#include <boost/mpl/is_sequence.hpp>
#include <boost/noncopyable.hpp>
@@ -20,7 +20,7 @@
{};
}}
-#line 1369 "../../../../libs/parameter/doc/index.rst"
+#line 1402 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
namespace boost { namespace python {
using boost::mpl::_;
@@ -34,7 +34,7 @@
}}
-#line 1421 "../../../../libs/parameter/doc/index.rst"
+#line 1454 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
namespace boost { namespace python {
template <
@@ -76,7 +76,7 @@
struct B {};
struct D {};
-#line 1462 "../../../../libs/parameter/doc/index.rst"
+#line 1495 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
typedef boost::python::class_<
class_type<B>, copyable<boost::noncopyable>
> c1;
@@ -85,7 +85,7 @@
D, held_type<std::auto_ptr<D> >, base_list<bases<B> >
> c2;
-#line 1482 "../../../../libs/parameter/doc/index.rst"
+#line 1515 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
BOOST_MPL_ASSERT((boost::is_same<c1::class_type, B>));
BOOST_MPL_ASSERT((boost::is_same<c1::base_list, bases<> >));
BOOST_MPL_ASSERT((boost::is_same<c1::held_type, B>));
Modified: trunk/libs/parameter/test/literate/extracting-parameter-types0.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/extracting-parameter-types0.cpp (original)
+++ trunk/libs/parameter/test/literate/extracting-parameter-types0.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,8 +1,8 @@
-#line 1797 "../../../../libs/parameter/doc/index.rst"
+#line 1830 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter.hpp>
#include <cassert>
-#line 1780 "../../../../libs/parameter/doc/index.rst"
+#line 1813 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
BOOST_PARAMETER_NAME(name)
BOOST_PARAMETER_NAME(index)
@@ -19,7 +19,7 @@
{
return deduce_arg_types_impl(args[_name], args[_index|42]);
}
-#line 1801 "../../../../libs/parameter/doc/index.rst"
+#line 1834 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
int a1 = deduce_arg_types((_name = "foo"));
int a2 = deduce_arg_types((_name = "foo", _index = 3));
Modified: trunk/libs/parameter/test/literate/extracting-parameter-types1.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/extracting-parameter-types1.cpp (original)
+++ trunk/libs/parameter/test/literate/extracting-parameter-types1.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,11 +1,11 @@
-#line 1830 "../../../../libs/parameter/doc/index.rst"
+#line 1863 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter.hpp>
#include <boost/type_traits/remove_reference.hpp>
#include <cassert>
namespace parameter = boost::parameter;
-#line 1819 "../../../../libs/parameter/doc/index.rst"
+#line 1852 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
BOOST_PARAMETER_NAME(index)
template <class ArgumentPack>
@@ -16,7 +16,7 @@
}
int six = twice_index(_index = 3);
-#line 1838 "../../../../libs/parameter/doc/index.rst"
+#line 1871 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
int main()
{
assert(six == 6);
Modified: trunk/libs/parameter/test/literate/fine-grained-name-control0.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/fine-grained-name-control0.cpp (original)
+++ trunk/libs/parameter/test/literate/fine-grained-name-control0.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,7 +1,7 @@
-#line 1670 "../../../../libs/parameter/doc/index.rst"
+#line 1703 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter.hpp>
-#line 1660 "../../../../libs/parameter/doc/index.rst"
+#line 1693 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
BOOST_PARAMETER_NAME((pass_foo, keywords) foo)
BOOST_PARAMETER_FUNCTION(
@@ -12,7 +12,7 @@
}
int x = f(pass_foo = 41);
-#line 1671 "../../../../libs/parameter/doc/index.rst"
+#line 1704 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
int main()
{}
Modified: trunk/libs/parameter/test/literate/handling-out-parameters0.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/handling-out-parameters0.cpp (original)
+++ trunk/libs/parameter/test/literate/handling-out-parameters0.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,5 +1,5 @@
-#line 620 "../../../../libs/parameter/doc/index.rst"
+#line 620 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter.hpp>
namespace boost
@@ -20,7 +20,7 @@
BOOST_PARAMETER_FUNCTION((void), f, tag,
(required (graph, *))
-#line 612 "../../../../libs/parameter/doc/index.rst"
+#line 612 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
(optional
(visitor, *, boost::dfs_visitor<>())
(root_vertex, *, *vertices(graph).first)
@@ -28,6 +28,6 @@
(in_out(color_map), *,
default_color_map(num_vertices(graph), index_map) )
)
-#line 642 "../../../../libs/parameter/doc/index.rst"
+#line 642 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
) {}
Modified: trunk/libs/parameter/test/literate/headers-and-namespaces0.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/headers-and-namespaces0.cpp (original)
+++ trunk/libs/parameter/test/literate/headers-and-namespaces0.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,5 +1,5 @@
-#line 274 "../../../../libs/parameter/doc/index.rst"
+#line 274 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter/keyword.hpp>
-#line 283 "../../../../libs/parameter/doc/index.rst"
+#line 283 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
using boost::parameter::keyword;
Modified: trunk/libs/parameter/test/literate/lazy-default-computation0.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/lazy-default-computation0.cpp (original)
+++ trunk/libs/parameter/test/literate/lazy-default-computation0.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,10 +1,10 @@
-#line 1878 "../../../../libs/parameter/doc/index.rst"
+#line 1911 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter.hpp>
#include <string>
namespace parameter = boost::parameter;
-#line 1861 "../../../../libs/parameter/doc/index.rst"
+#line 1894 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
BOOST_PARAMETER_NAME(s1)
BOOST_PARAMETER_NAME(s2)
BOOST_PARAMETER_NAME(s3)
@@ -21,7 +21,7 @@
}
std::string x = f((_s1="hello,", _s2=" world", _s3="hi world"));
-#line 1884 "../../../../libs/parameter/doc/index.rst"
+#line 1917 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
int main()
{}
Modified: trunk/libs/parameter/test/literate/lazy-default-computation1.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/lazy-default-computation1.cpp (original)
+++ trunk/libs/parameter/test/literate/lazy-default-computation1.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,5 +1,5 @@
-#line 1912 "../../../../libs/parameter/doc/index.rst"
+#line 1943 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/bind.hpp>
#include <boost/ref.hpp>
#include <boost/parameter.hpp>
@@ -17,12 +17,12 @@
{
std::string const& s1 = args[_s1];
std::string const& s2 = args[_s2];
-#line 1905 "../../../../libs/parameter/doc/index.rst"
+#line 1938 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
typename parameter::binding<
ArgumentPack, tag::s3, std::string
>::type s3 = args[_s3
|| boost::bind(std::plus<std::string>(), boost::ref(s1), boost::ref(s2)) ];
-#line 1930 "../../../../libs/parameter/doc/index.rst"
+#line 1962 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
return s3;
}
Modified: trunk/libs/parameter/test/literate/namespaces0.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/namespaces0.cpp (original)
+++ trunk/libs/parameter/test/literate/namespaces0.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,9 +1,9 @@
-#line 2051 "../../../../libs/parameter/doc/index.rst"
-#line 2054 "../../../../libs/parameter/doc/index.rst"
+#line 2082 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
+#line 2085 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter.hpp>
#include <iostream>
-#line 2040 "../../../../libs/parameter/doc/index.rst"
+#line 2071 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
namespace lib
{
BOOST_PARAMETER_NAME(name)
@@ -18,8 +18,8 @@
return index;
}
}
-#line 2067 "../../../../libs/parameter/doc/index.rst"
+#line 2098 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
int x = lib::f(lib::_name = "jill", lib::_index = 1);
-#line 2071 "../../../../libs/parameter/doc/index.rst"
+#line 2102 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
int main() {}
Modified: trunk/libs/parameter/test/literate/namespaces1.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/namespaces1.cpp (original)
+++ trunk/libs/parameter/test/literate/namespaces1.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,9 +1,9 @@
-#line 2069 "../../../../libs/parameter/doc/index.rst"
-#line 2054 "../../../../libs/parameter/doc/index.rst"
+#line 2100 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
+#line 2085 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter.hpp>
#include <iostream>
-#line 2040 "../../../../libs/parameter/doc/index.rst"
+#line 2071 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
namespace lib
{
BOOST_PARAMETER_NAME(name)
@@ -18,11 +18,11 @@
return index;
}
}
-#line 2080 "../../../../libs/parameter/doc/index.rst"
+#line 2111 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
using lib::_name;
using lib::_index;
int x = lib::f(_name = "jill", _index = 1);
-#line 2089 "../../../../libs/parameter/doc/index.rst"
+#line 2120 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
int main() {}
Modified: trunk/libs/parameter/test/literate/namespaces2.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/namespaces2.cpp (original)
+++ trunk/libs/parameter/test/literate/namespaces2.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,9 +1,9 @@
-#line 2083 "../../../../libs/parameter/doc/index.rst"
-#line 2054 "../../../../libs/parameter/doc/index.rst"
+#line 2114 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
+#line 2085 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter.hpp>
#include <iostream>
-#line 2040 "../../../../libs/parameter/doc/index.rst"
+#line 2071 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
namespace lib
{
BOOST_PARAMETER_NAME(name)
@@ -18,9 +18,9 @@
return index;
}
}
-#line 2097 "../../../../libs/parameter/doc/index.rst"
+#line 2128 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
using namespace lib;
int x = f(_name = "jill", _index = 3);
-#line 2103 "../../../../libs/parameter/doc/index.rst"
+#line 2134 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
int main() {}
Modified: trunk/libs/parameter/test/literate/namespaces3.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/namespaces3.cpp (original)
+++ trunk/libs/parameter/test/literate/namespaces3.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,8 +1,8 @@
-#line 2130 "../../../../libs/parameter/doc/index.rst"
+#line 2161 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter.hpp>
#include <iostream>
-#line 2112 "../../../../libs/parameter/doc/index.rst"
+#line 2143 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
namespace lib
{
namespace keywords
@@ -21,9 +21,9 @@
}
}
-#line 2139 "../../../../libs/parameter/doc/index.rst"
+#line 2170 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
using namespace lib::keywords;
int y = lib::f(_name = "bob", _index = 2);
-#line 2141 "../../../../libs/parameter/doc/index.rst"
+#line 2172 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
int main() {}
Modified: trunk/libs/parameter/test/literate/optional-parameters0.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/optional-parameters0.cpp (original)
+++ trunk/libs/parameter/test/literate/optional-parameters0.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,5 +1,5 @@
-#line 571 "../../../../libs/parameter/doc/index.rst"
+#line 571 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter.hpp>
namespace boost
@@ -19,13 +19,13 @@
BOOST_PARAMETER_FUNCTION((void), f, tag,
(required (graph, *))
-#line 563 "../../../../libs/parameter/doc/index.rst"
+#line 563 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
(optional (visitor, *, boost::dfs_visitor<>())
(root_vertex, *, *vertices(graph).first)
(index_map, *, get(boost::vertex_index,graph))
(in_out(color_map), *,
default_color_map(num_vertices(graph), index_map) )
)
-#line 592 "../../../../libs/parameter/doc/index.rst"
+#line 592 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
) {}
Modified: trunk/libs/parameter/test/literate/parameter-enabled-constructors0.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/parameter-enabled-constructors0.cpp (original)
+++ trunk/libs/parameter/test/literate/parameter-enabled-constructors0.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,8 +1,8 @@
-#line 1215 "../../../../libs/parameter/doc/index.rst"
+#line 1248 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter.hpp>
#include <iostream>
-#line 1201 "../../../../libs/parameter/doc/index.rst"
+#line 1234 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
BOOST_PARAMETER_NAME(name)
BOOST_PARAMETER_NAME(index)
@@ -17,7 +17,7 @@
}
};
-#line 1228 "../../../../libs/parameter/doc/index.rst"
+#line 1261 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
struct myclass : myclass_impl
{
BOOST_PARAMETER_CONSTRUCTOR(
@@ -26,12 +26,12 @@
};
-#line 1242 "../../../../libs/parameter/doc/index.rst"
+#line 1275 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
int main() {
-#line 1239 "../../../../libs/parameter/doc/index.rst"
+#line 1272 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
myclass x("bob", 3); // positional
myclass y(_index = 12, _name = "sally"); // named
myclass z("june"); // positional/defaulted
-#line 1242 "../../../../libs/parameter/doc/index.rst"
+#line 1275 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
}
Modified: trunk/libs/parameter/test/literate/parameter-enabled-member-functions0.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/parameter-enabled-member-functions0.cpp (original)
+++ trunk/libs/parameter/test/literate/parameter-enabled-member-functions0.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,9 +1,9 @@
-#line 1121 "../../../../libs/parameter/doc/index.rst"
+#line 1154 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter.hpp>
#include <iostream>
using namespace boost::parameter;
-#line 1109 "../../../../libs/parameter/doc/index.rst"
+#line 1142 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
BOOST_PARAMETER_NAME(arg1)
BOOST_PARAMETER_NAME(arg2)
Modified: trunk/libs/parameter/test/literate/parameter-enabled-member-functions1.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/parameter-enabled-member-functions1.cpp (original)
+++ trunk/libs/parameter/test/literate/parameter-enabled-member-functions1.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,11 +1,11 @@
-#line 1144 "../../../../libs/parameter/doc/index.rst"
+#line 1177 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter.hpp>
BOOST_PARAMETER_NAME(arg1)
BOOST_PARAMETER_NAME(arg2)
using namespace boost::parameter;
-#line 1133 "../../../../libs/parameter/doc/index.rst"
+#line 1166 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
struct callable2
{
BOOST_PARAMETER_CONST_MEMBER_FUNCTION(
Modified: trunk/libs/parameter/test/literate/predicate-requirements0.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/predicate-requirements0.cpp (original)
+++ trunk/libs/parameter/test/literate/predicate-requirements0.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,6 +1,8 @@
-#line 903 "../../../../libs/parameter/doc/index.rst"
+#line 935 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter.hpp>
+#include <boost/graph/adjacency_list.hpp>
+#include <boost/graph/depth_first_search.hpp>
BOOST_PARAMETER_NAME((_graph, graphs) graph)
BOOST_PARAMETER_NAME((_visitor, graphs) visitor)
@@ -9,33 +11,45 @@
BOOST_PARAMETER_NAME((_color_map, graphs) color_map)
using boost::mpl::_;
+#line 859 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
+// We first need to define a few metafunction that we use in the
+// predicates below.
-namespace boost
+template <class G>
+struct traversal_category
{
- struct incidence_graph_tag {};
- struct vertex_list_graph_tag {};
+ typedef typename boost::graph_traits<G>::traversal_category type;
+};
- int vertex_index = 0;
+template <class G>
+struct vertex_descriptor
+{
+ typedef typename boost::graph_traits<G>::vertex_descriptor type;
+};
+
+template <class G>
+struct value_type
+{
+ typedef typename boost::property_traits<G>::value_type type;
+};
- template <class T>
- struct graph_traits
- {
- typedef int traversal_category;
- typedef int vertex_descriptor;
- };
-
- template <class T>
- struct property_traits
- {
- typedef int value_type;
- typedef int key_type;
- };
-
- template <class T = int>
- struct dfs_visitor
- {};
+template <class G>
+struct key_type
+{
+ typedef typename boost::property_traits<G>::key_type type;
+};
+
+template<class Size, class IndexMap>
+boost::iterator_property_map<
+ boost::default_color_type*, IndexMap
+ , boost::default_color_type, boost::default_color_type&
+>
+default_color_map(Size num_vertices, IndexMap const& index_map)
+{
+ std::vector<boost::default_color_type> colors(num_vertices);
+ return &colors[0];
}
-#line 859 "../../../../libs/parameter/doc/index.rst"
+
BOOST_PARAMETER_FUNCTION(
(void), depth_first_search, graphs
@@ -43,12 +57,10 @@
(graph
, *(boost::mpl::and_<
boost::is_convertible<
- boost::graph_traits<_>::traversal_category
- , boost::incidence_graph_tag
+ traversal_category<_>, boost::incidence_graph_tag
>
, boost::is_convertible<
- boost::graph_traits<_>::traversal_category
- , boost::vertex_list_graph_tag
+ traversal_category<_>, boost::vertex_list_graph_tag
>
>) ))
@@ -56,29 +68,39 @@
(visitor, *, boost::dfs_visitor<>()) // not checkable
(root_vertex
- , (typename boost::graph_traits<graphs::graph::_>::vertex_descriptor)
+ , (vertex_descriptor<graphs::graph::_>)
, *vertices(graph).first)
(index_map
, *(boost::mpl::and_<
- boost::is_integral<
- boost::property_traits<_>::value_type
- >
+ boost::is_integral<value_type<_> >
, boost::is_same<
- typename boost::graph_traits<graphs::graph::_>::vertex_descriptor
- , boost::property_traits<_>::key_type
+ vertex_descriptor<graphs::graph::_>, key_type<_>
>
>)
, get(boost::vertex_index,graph))
(in_out(color_map)
, *(boost::is_same<
- typename boost::graph_traits<graphs::graph::_>::vertex_descriptor
- , boost::property_traits<_>::key_type
+ vertex_descriptor<graphs::graph::_>, key_type<_>
>)
, default_color_map(num_vertices(graph), index_map) )
)
)
-#line 940 "../../../../libs/parameter/doc/index.rst"
+#line 949 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
{}
+int main()
+{
+ typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS> G;
+
+ enum {u, v, w, x, y, z, N};
+ typedef std::pair<int, int> E;
+ E edges[] = {E(u, v), E(u, x), E(x, v), E(y, x), E(v, y), E(w, y),
+ E(w,z), E(z, z)};
+ G g(edges, edges + sizeof(edges) / sizeof(E), N);
+
+ depth_first_search(g);
+ depth_first_search(g, _root_vertex = (int)x);
+}
+
Modified: trunk/libs/parameter/test/literate/required-parameters0.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/required-parameters0.cpp (original)
+++ trunk/libs/parameter/test/literate/required-parameters0.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,12 +1,12 @@
-#line 540 "../../../../libs/parameter/doc/index.rst"
+#line 540 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter.hpp>
BOOST_PARAMETER_NAME(graph)
BOOST_PARAMETER_FUNCTION((void), f, tag,
-#line 531 "../../../../libs/parameter/doc/index.rst"
+#line 531 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
(required (graph, *) )
-#line 547 "../../../../libs/parameter/doc/index.rst"
+#line 547 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
) {}
Modified: trunk/libs/parameter/test/literate/static-member-functions0.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/static-member-functions0.cpp (original)
+++ trunk/libs/parameter/test/literate/static-member-functions0.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,9 +1,9 @@
-#line 1173 "../../../../libs/parameter/doc/index.rst"
+#line 1206 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter.hpp>
#include <iostream>
using namespace boost::parameter;
-#line 1162 "../../../../libs/parameter/doc/index.rst"
+#line 1195 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
BOOST_PARAMETER_NAME(arg1)
struct somebody
Modified: trunk/libs/parameter/test/literate/template-keywords0.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/template-keywords0.cpp (original)
+++ trunk/libs/parameter/test/literate/template-keywords0.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,7 +1,7 @@
-#line 1304 "../../../../libs/parameter/doc/index.rst"
+#line 1337 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter.hpp>
-#line 1296 "../../../../libs/parameter/doc/index.rst"
+#line 1329 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
namespace boost { namespace python {
BOOST_PARAMETER_TEMPLATE_KEYWORD(class_type)
Modified: trunk/libs/parameter/test/literate/template-keywords1.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/template-keywords1.cpp (original)
+++ trunk/libs/parameter/test/literate/template-keywords1.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,7 +1,7 @@
-#line 1320 "../../../../libs/parameter/doc/index.rst"
+#line 1353 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter.hpp>
-#line 1311 "../../../../libs/parameter/doc/index.rst"
+#line 1344 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
namespace boost { namespace python {
namespace tag { struct class_type; } // keyword tag type
Modified: trunk/libs/parameter/test/literate/top-level0.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/top-level0.cpp (original)
+++ trunk/libs/parameter/test/literate/top-level0.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,5 +1,5 @@
-#line 35 "../../../../libs/parameter/doc/index.rst"
+#line 35 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter.hpp>
namespace test
Modified: trunk/libs/parameter/test/literate/writing-the-function0.cpp
==============================================================================
--- trunk/libs/parameter/test/literate/writing-the-function0.cpp (original)
+++ trunk/libs/parameter/test/literate/writing-the-function0.cpp 2011-11-08 17:00:12 EST (Tue, 08 Nov 2011)
@@ -1,5 +1,5 @@
-#line 472 "../../../../libs/parameter/doc/index.rst"
+#line 472 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter/name.hpp>
BOOST_PARAMETER_NAME(graph)
@@ -17,7 +17,7 @@
int vertex_index = 0;
}
-#line 446 "../../../../libs/parameter/doc/index.rst"
+#line 446 "/home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst"
#include <boost/parameter/preprocessor.hpp>
namespace graphs
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