Update of /cvsroot/boost/boost/libs/parameter/doc/html
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv9110/html
Modified Files:
index.html python.html reference.html
Log Message:
progress on tutorial
Index: index.html
===================================================================
RCS file: /cvsroot/boost/boost/libs/parameter/doc/html/index.html,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- index.html 18 May 2006 14:59:38 -0000 1.20
+++ index.html 30 Jul 2006 21:33:22 -0000 1.21
@@ -10,6 +10,7 @@
<body>
<div class="document" id="the-boost-parameter-library">
<h1 class="title">The Boost Parameter Library</h1>
+
<p><a class="reference" href="../../../../index.htm"><img alt="Boost"
src="../../../../boost.png" /></a></p>
<hr class="docutils" />
<table class="docutils field-list" frame="void" rules="none">
@@ -19,17 +20,17 @@
<tr class="field"><th class="field-name">Abstract:</th><td
class="field-body"><p class="first">Use this library to write functions and
class templates
that can accept arguments by name:</p>
<pre class="literal-block">
[...1001 lines suppressed...]
<pre class="last literal-block">
namespace foo_overloads
@@ -1148,7 +1397,7 @@
<table class="docutils footnote" frame="void" id="sfinae" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
-<tr><td class="label"><a class="fn-backref" href="#id6"
name="sfinae">[6]</a></td><td><strong>SFINAE</strong>:
<strong>S</strong>ubstitution <strong>F</strong>ailure <strong>I</strong>s
+<tr><td class="label"><a class="fn-backref" href="#id7"
name="sfinae">[6]</a></td><td><strong>SFINAE</strong>:
<strong>S</strong>ubstitution <strong>F</strong>ailure <strong>I</strong>s
<strong>N</strong>ot <strong>A</strong>n <strong>E</strong> rror. If type
substitution during the
instantiation of a function template results in an invalid type,
no compilation error is emitted; instead the overload is removed
@@ -1168,7 +1417,7 @@
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2006-05-18 14:54 UTC.
+Generated on: 2006-07-30 21:32 UTC.
Generated by <a class="reference"
href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference"
href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
</div>
Index: python.html
===================================================================
RCS file: /cvsroot/boost/boost/libs/parameter/doc/html/python.html,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- python.html 18 May 2006 14:59:38 -0000 1.4
+++ python.html 30 Jul 2006 21:33:22 -0000 1.5
@@ -10,6 +10,7 @@
<body>
<div class="document"
id="the-boost-parameter-library-python-binding-documentation">
<h1 class="title">The Boost Parameter Library Python Binding Documentation</h1>
+
<p><a class="reference" href="../../../../index.htm"><img alt="Boost"
src="../../../../boost.png" /></a></p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
@@ -77,6 +78,7 @@
#include <boost/parameter/keyword.hpp>
#include <boost/parameter/preprocessor.hpp>
#include <boost/parameter/python.hpp>
+#include <boost/python.hpp>
// First the keywords
BOOST_PARAMETER_KEYWORD(tag, title)
@@ -85,7 +87,7 @@
class window
{
- public:
+public:
BOOST_PARAMETER_MEMBER_FUNCTION(
(void), open, tag,
(required (title, (std::string)))
@@ -93,10 +95,16 @@
(height, (unsigned), 400))
)
{
- â?¦
+ <em>â?¦</em>
}
};
</pre>
+<!-- @example.prepend('#include <cassert>') -->
+<!-- @example.replace_emphasis('''
+assert(title == "foo");
+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
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>.
@@ -136,13 +144,18 @@
{
using namespace boost::python;
namespace py = boost::parameter::python;
+ namespace mpl = boost::mpl;
class_<window>("window")
.def(
"open", py::function<
open_fwd
- , mpl::vector<tag::title, tag::width*, tag::height*>
- , mpl::vector<void, std::string, unsigned, unsigned>
+ , mpl::vector<
+ void
+ , tag::title(std::string)
+ , tag::width*(unsigned)
+ , tag::height*(unsigned)
+ >
>()
);
}
@@ -155,7 +168,7 @@
, input = '/boost/python//boost_python'
, howmany = 'all'
) -->
-<!-- @del jam_prefix[-1:] -->
+<!-- @del jam_prefix[:] -->
<p><tt class="docutils literal"><span class="pre">py::function</span></tt> is
passed three parameters. The first one is the class
with forwarding overloads that we defined earlier. The second one is
an <a class="reference" href="../../../mpl/doc/refmanual/sequences.html">MPL
Sequence</a> with the keyword tag types for the function. The
@@ -221,6 +234,7 @@
<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> ]
</pre>
+<!-- @ignore() -->
<p>For example, the <strong>arity range</strong> of <tt class="docutils
literal"><span class="pre">mpl::vector2<x,y></span></tt> is [2,2], the
<strong>arity range</strong> of
<tt class="docutils literal"><span
class="pre">mpl::vector2<x,y*></span></tt> is [2,2] and the <strong>arity
range</strong> of <tt class="docutils literal"><span
class="pre">mpl::vector2<x,y**></span></tt> is [1,2].</p>
<!-- Don't optional keywords affect the arity range? -->
@@ -232,24 +246,52 @@
based on the presence of a parameter. An <a class="reference"
href="index.html#dispatching-based-on-the-presence-of-a-default">example</a> of
this is given in the Boost.Parameter
docs. The example uses a different technique, but could also have been written
like this:</p>
<pre class="literal-block">
-template <class ArgumentPack>
-void dfs_dispatch(ArgumentPack& args, mpl::false_)
+namespace core
{
- <em>â?¦compute and use default color mapâ?¦</em>
-}
+ template <class ArgumentPack>
+ void dfs_dispatch(ArgumentPack const& args, mpl::false_)
+ {
+ <em>â?¦compute and use default color mapâ?¦</em>
+ }
-template <class ArgumentPack, class ColorMap>
-void dfs_dispatch(ArgumentPack& args, ColorMap colormap)
-{
- <em>â?¦use colormapâ?¦</em>
+ template <class ArgumentPack, class ColorMap>
+ void dfs_dispatch(ArgumentPack const& args, ColorMap colormap)
+ {
+ <em>â?¦use colormapâ?¦</em>
+ }
}
template <class ArgumentPack>
-void depth_first_search(ArgumentPack& args)
+void depth_first_search(ArgumentPack const& args)
{
core::dfs_dispatch(args, args[color | mpl::false_()]);
}
</pre>
+<!-- @example.prepend('''
+#include <boost/parameter/keyword.hpp>
+#include <boost/parameter/parameters.hpp>
+#include <boost/mpl/bool.hpp>
+#include <cassert>
+
+BOOST_PARAMETER_KEYWORD(tag, color);
+
+typedef boost::parameter::parameters<tag::color> params;
+
+namespace mpl = boost::mpl;
+''') -->
+<!-- @example.replace_emphasis('''
+assert(args[color | 1] == 1);
+''') -->
+<!-- @example.replace_emphasis('''
+assert(args[color | 1] == 0);
+''') -->
+<!-- @example.append('''
+int main()
+{
+ depth_first_search(params()());
+ depth_first_search(params()(color = 0));
+}''') -->
+<!-- @build() -->
<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
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
@@ -272,6 +314,7 @@
void def(Class& class_);
};
</pre>
+<!-- @ignore() -->
<div class="section">
<h2><a id="init-requirements" name="init-requirements"><tt class="docutils
literal"><span class="pre">init</span></tt> requirements</a></h2>
<ul>
@@ -317,28 +360,59 @@
<div class="section">
<h2><a id="id3" name="id3">Example</a></h2>
<pre class="literal-block">
-struct base { /* ... */ };
+#include <boost/parameter/keyword.hpp>
+#include <boost/parameter/preprocessor.hpp>
+#include <boost/parameter/python.hpp>
+#include <boost/python.hpp>
+#include <boost/mpl/vector.hpp>
+
+BOOST_PARAMETER_KEYWORD(tag, x)
+BOOST_PARAMETER_KEYWORD(tag, y)
+
+struct base
+{
+ template <class ArgumentPack>
+ base(ArgumentPack const& args)
+ {
+ <em>â?¦use argsâ?¦</em>
+ }
+};
class X : base
{
public:
- BOOST_PARAMETER_CONSTRUCTOR(X, (base),
+ BOOST_PARAMETER_CONSTRUCTOR(X, (base), tag,
(required (x, *))
(optional (y, *))
)
};
-BOOST_PYTHON_MODULE(..)
+BOOST_PYTHON_MODULE(<em>module name</em>)
{
- class_<X>("X")
+ using namespace boost::python;
+ namespace py = boost::parameter::python;
+ namespace mpl = boost::mpl;
+
+ class_<X>("X", no_init)
.def(
- init<
- , mpl::vector2<<a class="reference" href="tag::x">tag::x</a>,
<a class="reference" href="tag::y*">tag::y*</a>>
- , mpl::vector2<int, int>
+ py::init<
+ mpl::vector<tag::x(int), tag::y*(int)>
>()
);
}
</pre>
+<!-- @example.replace_emphasis('''
+assert(args[x] == 0);
+assert(args[y | 1] == 1);
+''') -->
+<!-- @example.replace_emphasis('my_module') -->
+<!-- @jam_prefix.append('import python ;') -->
+<!-- @jam_prefix.append('stage . : my_module /boost/python//boost_python ;')
-->
+<!-- @my_module = build(
+ output = 'my_module'
+ , target_rule = 'python-extension'
+ , input = '/boost/python//boost_python'
+) -->
</div>
</div>
<hr class="docutils" />
@@ -353,6 +427,7 @@
void def(Class& class_);
};
</pre>
+<!-- @ignore() -->
<div class="section">
<h2><a id="call-requirements" name="call-requirements"><tt class="docutils
literal"><span class="pre">call</span></tt> requirements</a></h2>
<ul>
@@ -394,18 +469,29 @@
<div class="section">
<h2><a id="id4" name="id4">Example</a></h2>
<pre class="literal-block">
+#include <boost/parameter/keyword.hpp>
+#include <boost/parameter/preprocessor.hpp>
+#include <boost/parameter/python.hpp>
+#include <boost/python.hpp>
+#include <boost/mpl/vector.hpp>
+
+BOOST_PARAMETER_KEYWORD(tag, x)
+BOOST_PARAMETER_KEYWORD(tag, y)
+
+namespace parameter = boost::parameter;
+
typedef parameter::parameters<
- parameter::required<<a class="reference" href="tag::x">tag::x</a>>
- , parameter::optional<<a class="reference" href="tag::y">tag::y</a>>
+ parameter::required<tag::x>
+ , parameter::optional<tag::y>
> call_parameters;
class X
{
public:
- template <class Args>
- int call_impl(Args const& args)
+ template <class ArgumentPack>
+ int call_impl(ArgumentPack const& args)
{
- /* ... */
+ <em>â?¦use argsâ?¦</em>
}
template <class A0>
@@ -421,17 +507,31 @@
}
};
-BOOST_PYTHON_MODULE(..)
+BOOST_PYTHON_MODULE(<em>module name</em>)
{
+ using namespace boost::python;
+ namespace py = parameter::python;
+ namespace mpl = boost::mpl;
+
class_<X>("X")
- .def("f",
- call<
- , mpl::vector2<<a class="reference" href="tag::x">tag::x</a>,
<a class="reference" href="tag::y*">tag::y*</a>>
- , mpl::vector3<int, int, int>
+ .def(
+ py::call<
+ mpl::vector<int, tag::x(int), tag::y*(int)>
>()
);
}
</pre>
+<!-- @example.replace_emphasis('''
+assert(args[x] == 0);
+assert(args[y | 1] == 1);
+return 0;
+''') -->
+<!-- @example.replace_emphasis('my_module') -->
+<!-- @my_module = build(
+ output = 'my_module'
+ , target_rule = 'python-extension'
+ , input = '/boost/python//boost_python'
+) -->
</div>
</div>
<hr class="docutils" />
@@ -446,6 +546,7 @@
void def(Class& class_, char const* name, Options const& options);
};
</pre>
+<!-- @ignore() -->
<div class="section">
<h2><a id="function-requirements" name="function-requirements"><tt
class="docutils literal"><span class="pre">function</span></tt>
requirements</a></h2>
<ul>
@@ -492,15 +593,24 @@
The <span class="concept">KeywordsSpec</span> <tt class="docutils
literal"><span class="pre">mpl::vector2<tag::x,</span> <span
class="pre">tag::y*></span></tt> has an <strong>arity range</strong>
of [2,2], so we only need one forwarding overload.</p>
<pre class="literal-block">
+#include <boost/parameter/keyword.hpp>
+#include <boost/parameter/preprocessor.hpp>
+#include <boost/parameter/python.hpp>
+#include <boost/python.hpp>
+#include <boost/mpl/vector.hpp>
+
+BOOST_PARAMETER_KEYWORD(tag, x)
+BOOST_PARAMETER_KEYWORD(tag, y)
+
class X
{
public:
BOOST_PARAMETER_MEMBER_FUNCTION((void), f, tag,
(required (x, *))
- (optional (y, *))
+ (optional (y, *, 1))
)
{
- /* â?¦ */
+ <em>â?¦</em>
}
};
@@ -513,20 +623,31 @@
}
};
-BOOST_PYTHON_MODULE(..)
+BOOST_PYTHON_MODULE(<em>module name</em>)
{
+ using namespace boost::python;
+ namespace py = boost::parameter::python;
+ namespace mpl = boost::mpl;
+
class_<X>("X")
.def("f",
- function<
+ py::function<
f_fwd
- , mpl::vector2<<a class="reference" href="tag::x">tag::x</a>,
<a class="reference" href="tag::y*">tag::y*</a>>
- , mpl::vector3<void, int, int>
+ , mpl::vector<void, tag::x(int), tag::y*(int)>
>()
);
}
</pre>
-<!-- This example is not consistent with your definition of arity -->
-<!-- range, above. There are no special keywords in play here. -->
+<!-- @example.replace_emphasis('''
+assert(x == 0);
+assert(y == 1);
+''') -->
+<!-- @example.replace_emphasis('my_module') -->
+<!-- @my_module = build(
+ output = 'my_module'
+ , target_rule = 'python-extension'
+ , input = '/boost/python//boost_python'
+) -->
</div>
</div>
<hr class="docutils" />
@@ -537,6 +658,7 @@
template <class Fwd, class Keywords, class Signature>
void def(char const* name);
</pre>
+<!-- @ignore() -->
<div class="section">
<h2><a id="def-requirements" name="def-requirements"><tt class="docutils
literal"><span class="pre">def</span></tt> requirements</a></h2>
<ul>
@@ -584,10 +706,10 @@
<pre class="literal-block">
BOOST_PARAMETER_FUNCTION((void), f, tag,
(required (x, *))
- (optional (y, *))
+ (optional (y, *, 1))
)
{
- /* â?¦ */
+ <em>â?¦</em>
}
struct f_fwd
@@ -603,24 +725,24 @@
{
def<
f_fwd
- , mpl::vector2<<a class="reference" href="tag::x">tag::x</a>, <a
class="reference" href="tag::y*">tag::y*</a>>
- , mpl::vector3<void, int, int>
+ , mpl::vector<
+ void, <a class="reference" href="tag::x(int">tag::x(int</a>), <a
class="reference" href="tag::y*(int">tag::y*(int</a>)
+ >
>("f");
}
</pre>
+<!-- @ignore() -->
<!-- again, the undefined ``fwd`` identifier. -->
</div>
</div>
<div class="section">
<h1><a class="toc-backref" href="#id15" id="portability"
name="portability">Portability</a></h1>
<p>The Boost.Parameter Python binding library requires <em>partial template
specialization</em>.</p>
-<!-- Oh. In that case, we don't have to worry so much about -->
-<!-- compilers that can't parse function types. -->
</div>
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2006-05-18 14:54 UTC.
+Generated on: 2006-07-26 14:14 UTC.
Generated by <a class="reference"
href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference"
href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
</div>
Index: reference.html
===================================================================
RCS file: /cvsroot/boost/boost/libs/parameter/doc/html/reference.html,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- reference.html 18 May 2006 14:59:38 -0000 1.13
+++ reference.html 30 Jul 2006 21:33:22 -0000 1.14
@@ -5,95 +5,101 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.5:
http://docutils.sourceforge.net/" />
<title>The Boost Parameter Library Reference Documentation</title>
+<meta name="authors" content="David Abrahams Daniel Wallin" />
+<meta name="organization" content="Boost Consulting" />
+<meta name="date" content="2005-07-17" />
+<meta name="copyright" content="Copyright David Abrahams, Daniel Wallin 2005.
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)" />
<link rel="stylesheet" href="rst.css" type="text/css" />
</head>
<body>
<div class="document" id="the-boost-parameter-library-reference-documentation">
<h1 class="title">The Boost Parameter Library Reference Documentation</h1>
-<p><a class="reference" href="../../../../index.htm"><img alt="Boost"
src="../../../../boost.png" /></a></p>
-<table class="docutils field-list" frame="void" rules="none">
-<col class="field-name" />
-<col class="field-body" />
+<table class="docinfo" frame="void" rules="none">
+<col class="docinfo-name" />
+<col class="docinfo-content" />
<tbody valign="top">
-<tr class="field"><th class="field-name">Authors:</th><td
class="field-body">David Abrahams, Daniel Wallin</td>
-</tr>
-<tr class="field"><th class="field-name">Contact:</th><td
class="field-body"><a class="reference"
href="mailto:dave@boost-consulting.com">dave@boost-consulting.com</a>,
<a class="reference"
href="mailto:dalwan01@student.umu.se">dalwan01@student.umu.se</a></td>
-</tr>
-<tr class="field"><th class="field-name">organization:</th><td
class="field-body"><a class="reference"
href="http://www.boost-consulting.com">Boost Consulting</a></td>
-</tr>
-<tr class="field"><th class="field-name">date:</th><td
class="field-body">$Date$</td>
-</tr>
-<tr class="field"><th class="field-name">copyright:</th><td
class="field-body">Copyright David Abrahams, Daniel Wallin
+<tr><th class="docinfo-name">Authors:</th>
+<td>David Abrahams
+<br />Daniel Wallin</td></tr>
+<tr><th class="docinfo-name">Contact:</th>
+<td><a class="first reference"
href="mailto:dave@boost-consulting.com">dave@boost-consulting.com</a>,
<a class="last reference"
href="mailto:dalwan01@student.umu.se">dalwan01@student.umu.se</a></td></tr>
+<tr><th class="docinfo-name">Organization:</th>
+<td><a class="first last reference"
href="http://www.boost-consulting.com">Boost Consulting</a></td></tr>
+<tr><th class="docinfo-name">Date:</th>
+<td>2005-07-17</td></tr>
+<tr><th class="docinfo-name">Copyright:</th>
+<td>Copyright David Abrahams, Daniel Wallin
2005. Distributed under the Boost Software License,
Version 1.0. (See accompanying file LICENSE_1_0.txt
-or copy at <a class="reference"
href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</a>)</td>
-</tr>
+or copy at <a class="reference"
href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</a>)</td></tr>
</tbody>
</table>
+<p><a class="reference" href="../../../../index.htm"><img alt="Boost"
src="../../../../boost.png" /></a></p>
<hr class="docutils" />
<div class="contents topic">
<p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
<ul class="auto-toc simple">
-<li><a class="reference" href="#preliminaries" id="id24"
name="id24">1 Preliminaries</a><ul class="auto-toc">
-<li><a class="reference" href="#namespaces" id="id25"
name="id25">1.1 Namespaces</a></li>
-<li><a class="reference" href="#exceptions" id="id26"
name="id26">1.2 Exceptions</a></li>
-<li><a class="reference" href="#thread-safety" id="id27"
name="id27">1.3 Thread Safety</a></li>
-<li><a class="reference" href="#typography" id="id28"
name="id28">1.4 Typography</a></li>
+<li><a class="reference" href="#preliminaries" id="id26"
name="id26">1 Preliminaries</a><ul class="auto-toc">
+<li><a class="reference" href="#namespaces" id="id27"
name="id27">1.1 Namespaces</a></li>
+<li><a class="reference" href="#exceptions" id="id28"
name="id28">1.2 Exceptions</a></li>
+<li><a class="reference" href="#thread-safety" id="id29"
name="id29">1.3 Thread Safety</a></li>
+<li><a class="reference" href="#typography" id="id30"
name="id30">1.4 Typography</a></li>
</ul>
</li>
-<li><a class="reference" href="#terminology" id="id29"
name="id29">2 Terminology</a></li>
-<li><a class="reference" href="#concepts" id="id30"
name="id30">3 Concepts</a><ul class="auto-toc">
-<li><a class="reference" href="#argumentpack" id="id31"
name="id31">3.1 <span
class="concept">ArgumentPack</span></a></li>
-<li><a class="reference" href="#id5" id="id32"
name="id32">3.2 <span
class="concept">ParameterSpec</span></a></li>
+<li><a class="reference" href="#terminology" id="id31"
name="id31">2 Terminology</a></li>
+<li><a class="reference" href="#concepts" id="id32"
name="id32">3 Concepts</a><ul class="auto-toc">
+<li><a class="reference" href="#argumentpack" id="id33"
name="id33">3.1 <span
class="concept">ArgumentPack</span></a></li>
+<li><a class="reference" href="#id5" id="id34"
name="id34">3.2 <span
class="concept">ParameterSpec</span></a></li>
</ul>
</li>
-<li><a class="reference" href="#class-templates" id="id33"
name="id33">4 Class Templates</a><ul class="auto-toc">
-<li><a class="reference" href="#id7" id="id34"
name="id34">4.1 <tt class="docutils literal"><span
class="pre">keyword</span></tt></a></li>
-<li><a class="reference" href="#parameters" id="id35"
name="id35">4.2 <tt class="docutils literal"><span
class="pre">parameters</span></tt></a></li>
-<li><a class="reference" href="#optional-required" id="id36"
name="id36">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" href="#class-templates" id="id35"
name="id35">4 Class Templates</a><ul class="auto-toc">
+<li><a class="reference" href="#id7" id="id36"
name="id36">4.1 <tt class="docutils literal"><span
class="pre">keyword</span></tt></a></li>
+<li><a class="reference" href="#parameters" id="id37"
name="id37">4.2 <tt class="docutils literal"><span
class="pre">parameters</span></tt></a></li>
+<li><a class="reference" href="#optional-required" id="id38"
name="id38">4.3 <tt class="docutils literal"><span
class="pre">optional</span></tt>, <tt class="docutils literal"><span
class="pre">required</span></tt></a></li>
</ul>
</li>
-<li><a class="reference" href="#metafunctions" id="id37"
name="id37">5 Metafunctions</a><ul class="auto-toc">
-<li><a class="reference" href="#binding" id="id38"
name="id38">5.1 <tt class="docutils literal"><span
class="pre">binding</span></tt></a></li>
-<li><a class="reference" href="#lazy-binding" id="id39"
name="id39">5.2 <tt class="docutils literal"><span
class="pre">lazy_binding</span></tt></a></li>
+<li><a class="reference" href="#metafunctions" id="id39"
name="id39">5 Metafunctions</a><ul class="auto-toc">
+<li><a class="reference" href="#binding" id="id40"
name="id40">5.1 <tt class="docutils literal"><span
class="pre">binding</span></tt></a></li>
+<li><a class="reference" href="#lazy-binding" id="id41"
name="id41">5.2 <tt class="docutils literal"><span
class="pre">lazy_binding</span></tt></a></li>
</ul>
</li>
-<li><a class="reference" href="#code-generation-macros" id="id40"
name="id40">6 Code Generation Macros</a><ul class="auto-toc">
-<li><a class="reference" href="#boost-parameter-fun-r-n-l-h-p" id="id41"
name="id41">6.1 <tt class="docutils literal"><span
class="pre">BOOST_PARAMETER_FUN(r,n,l,h,p)</span></tt></a></li>
-<li><a class="reference" href="#boost-parameter-keyword-n-k" id="id42"
name="id42">6.2 <tt class="docutils literal"><span
class="pre">BOOST_PARAMETER_KEYWORD(n,k)</span></tt></a></li>
-<li><a class="reference" href="#boost-parameter-match-p-a-x" id="id43"
name="id43">6.3 <tt class="docutils literal"><span
class="pre">BOOST_PARAMETER_MATCH(p,a,x)</span></tt></a></li>
+<li><a class="reference" href="#code-generation-macros" id="id42"
name="id42">6 Code Generation Macros</a><ul class="auto-toc">
+<li><a class="reference"
href="#boost-parameter-function-result-name-tag-namespace-arguments" id="id43"
name="id43">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" href="#boost-parameter-fun-r-n-l-h-p" id="id44"
name="id44">6.2 <tt class="docutils literal"><span
class="pre">BOOST_PARAMETER_FUN(r,n,l,h,p)</span></tt></a></li>
+<li><a class="reference" href="#boost-parameter-keyword-n-k" id="id45"
name="id45">6.3 <tt class="docutils literal"><span
class="pre">BOOST_PARAMETER_KEYWORD(n,k)</span></tt></a></li>
+<li><a class="reference" href="#boost-parameter-match-p-a-x" id="id46"
name="id46">6.4 <tt class="docutils literal"><span
class="pre">BOOST_PARAMETER_MATCH(p,a,x)</span></tt></a></li>
</ul>
</li>
-<li><a class="reference" href="#configuration-macros" id="id44"
name="id44">7 Configuration Macros</a><ul class="auto-toc">
-<li><a class="reference" href="#boost-parameter-max-arity" id="id45"
name="id45">7.1 <tt class="docutils literal"><span
class="pre">BOOST_PARAMETER_MAX_ARITY</span></tt></a></li>
+<li><a class="reference" href="#configuration-macros" id="id47"
name="id47">7 Configuration Macros</a><ul class="auto-toc">
+<li><a class="reference" href="#boost-parameter-max-arity" id="id48"
name="id48">7.1 <tt class="docutils literal"><span
class="pre">BOOST_PARAMETER_MAX_ARITY</span></tt></a></li>
</ul>
</li>
-<li><a class="reference" href="#tutorial" id="id46"
name="id46">8 Tutorial</a></li>
+<li><a class="reference" href="#tutorial" id="id49"
name="id49">8 Tutorial</a></li>
</ul>
</div>
<hr class="docutils" />
<div class="section">
-<h1><a class="toc-backref" href="#id24" id="preliminaries"
name="preliminaries">1 Preliminaries</a></h1>
+<h1><a class="toc-backref" href="#id26" id="preliminaries"
name="preliminaries">1 Preliminaries</a></h1>
<p>This section covers some basic information you'll need to know in
order to understand this reference</p>
<div class="section">
-<h2><a class="toc-backref" href="#id25" id="namespaces"
name="namespaces">1.1 Namespaces</a></h2>
+<h2><a class="toc-backref" href="#id27" id="namespaces"
name="namespaces">1.1 Namespaces</a></h2>
<p>In this document, all unqualified identifiers should be assumed to
be defined in namespace <tt class="docutils literal"><span
class="pre">boost::parameter</span></tt> unless otherwise
specified.</p>
</div>
<div class="section">
-<h2><a class="toc-backref" href="#id26" id="exceptions"
name="exceptions">1.2 Exceptions</a></h2>
+<h2><a class="toc-backref" href="#id28" id="exceptions"
name="exceptions">1.2 Exceptions</a></h2>
<p>No operation described in this document
throws an exception unless otherwise specified.</p>
</div>
<div class="section">
-<h2><a class="toc-backref" href="#id27" id="thread-safety"
name="thread-safety">1.3 Thread Safety</a></h2>
+<h2><a class="toc-backref" href="#id29" id="thread-safety"
name="thread-safety">1.3 Thread Safety</a></h2>
<p>All components of this library can be used safely from multiple
threads without synchronization.<a class="footnote-reference" href="#thread"
id="id2" name="id2"><sup>1</sup></a></p>
</div>
<div class="section">
-<h2><a class="toc-backref" href="#id28" id="typography"
name="typography">1.4 Typography</a></h2>
+<h2><a class="toc-backref" href="#id30" id="typography"
name="typography">1.4 Typography</a></h2>
<p>Names written in <span class="concept">sans serif type</span> represent <a
class="reference"
href="../../../../more/generic_programming.html#concept">concepts</a>.</p>
<p>In code blocks, <em>italic type</em> represents unspecified text that
satisfies the requirements given in the detailed description that
@@ -106,7 +112,7 @@
</div>
<hr class="docutils" />
<div class="section">
-<h1><a class="toc-backref" href="#id29" id="terminology"
name="terminology">2 Terminology</a></h1>
+<h1><a class="toc-backref" href="#id31" id="terminology"
name="terminology">2 Terminology</a></h1>
<dl class="docutils" id="kw">
<dt>keyword</dt>
<dd>The name of a function parameter.</dd>
@@ -165,10 +171,10 @@
</div>
<hr class="docutils" />
<div class="section">
-<h1><a class="toc-backref" href="#id30" id="concepts"
name="concepts">3 Concepts</a></h1>
+<h1><a class="toc-backref" href="#id32" id="concepts"
name="concepts">3 Concepts</a></h1>
<p>This section describes the generic type <a class="reference"
href="../../../../more/generic_programming.html#concept">concepts</a> used by
the Parameter library.</p>
<div class="section">
-<h2><a class="toc-backref" href="#id31" id="argumentpack"
name="argumentpack">3.1 <span
class="concept">ArgumentPack</span></a></h2>
+<h2><a class="toc-backref" href="#id33" id="argumentpack"
name="argumentpack">3.1 <span
class="concept">ArgumentPack</span></a></h2>
<p>An <span class="concept">ArgumentPack</span> is a collection of <a
class="reference" href="#tagged-reference">tagged reference</a>s to the
actual arguments passed to a function. Every <span
class="concept">ArgumentPack</span> is
also a valid MPL <a class="reference"
href="../../../mpl/doc/refmanual/forward-sequence.html"><span
class="concept">Forward Sequence</span></a> consisting of the <a
class="reference" href="#keyword-tag-type">keyword tag type</a>s in its <a
class="reference" href="#tagged-reference">tagged reference</a>s.</p>
@@ -237,7 +243,7 @@
</div>
</div>
<div class="section">
-<h2><a class="toc-backref" href="#id32" id="id5" name="id5"><span
id="parameterspec"></span>3.2 <span
class="concept">ParameterSpec</span></a></h2>
+<h2><a class="toc-backref" href="#id34" id="id5" name="id5"><span
id="parameterspec"></span>3.2 <span
class="concept">ParameterSpec</span></a></h2>
<p>A <span class="concept">ParameterSpec</span> describes the type
requirements for arguments
corresponding to a given <a class="reference" href="#kw">keyword</a> and
indicates whether the argument
is optional or required. The table below details the allowed forms
@@ -284,9 +290,9 @@
</div>
<hr class="docutils" />
<div class="section">
-<h1><a class="toc-backref" href="#id33" id="class-templates"
name="class-templates">4 Class Templates</a></h1>
+<h1><a class="toc-backref" href="#id35" id="class-templates"
name="class-templates">4 Class Templates</a></h1>
<div class="section">
-<h2><a class="toc-backref" href="#id34" id="id7" name="id7"><span
id="keyword"></span>4.1 <tt class="docutils literal"><span
class="pre">keyword</span></tt></a></h2>
+<h2><a class="toc-backref" href="#id36" id="id7" name="id7"><span
id="keyword"></span>4.1 <tt class="docutils literal"><span
class="pre">keyword</span></tt></a></h2>
<p>The type of every <a class="reference" href="#keyword-object">keyword
object</a> is a specialization of <tt class="docutils literal"><span
class="pre">keyword</span></tt>.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
@@ -384,7 +390,7 @@
</dl>
</div>
<div class="section">
-<h2><a class="toc-backref" href="#id35" id="parameters"
name="parameters">4.2 <tt class="docutils literal"><span
class="pre">parameters</span></tt></a></h2>
+<h2><a class="toc-backref" href="#id37" id="parameters"
name="parameters">4.2 <tt class="docutils literal"><span
class="pre">parameters</span></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" href="#positional">positional</a> arguments will be
tagged according to the
@@ -506,7 +512,7 @@
</dl>
</div>
<div class="section">
-<h2><a class="toc-backref" href="#id36" id="optional-required"
name="optional-required"><span id="required"></span><span
id="optional"></span>4.3 <tt class="docutils literal"><span
class="pre">optional</span></tt>, <tt class="docutils literal"><span
class="pre">required</span></tt></a></h2>
+<h2><a class="toc-backref" href="#id38" id="optional-required"
name="optional-required"><span id="required"></span><span
id="optional"></span>4.3 <tt class="docutils literal"><span
class="pre">optional</span></tt>, <tt class="docutils literal"><span
class="pre">required</span></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" />
@@ -538,11 +544,11 @@
</div>
<hr class="docutils" />
<div class="section">
-<h1><a class="toc-backref" href="#id37" id="metafunctions"
name="metafunctions">5 Metafunctions</a></h1>
+<h1><a class="toc-backref" href="#id39" id="metafunctions"
name="metafunctions">5 Metafunctions</a></h1>
<p>A <a class="reference"
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">
-<h2><a class="toc-backref" href="#id38" id="binding"
name="binding">5.1 <tt class="docutils literal"><span
class="pre">binding</span></tt></a></h2>
+<h2><a class="toc-backref" href="#id40" id="binding"
name="binding">5.1 <tt class="docutils literal"><span
class="pre">binding</span></tt></a></h2>
<p>Returns the result type of indexing an argument pack with a
<a class="reference" href="#keyword-tag-type">keyword tag type</a> or with a
<a class="reference" href="#tagged-default">tagged default</a>.</p>
<table class="docutils field-list" frame="void" rules="none">
@@ -573,7 +579,7 @@
</table>
</div>
<div class="section">
-<h2><a class="toc-backref" href="#id39" id="lazy-binding"
name="lazy-binding">5.2 <tt class="docutils literal"><span
class="pre">lazy_binding</span></tt></a></h2>
+<h2><a class="toc-backref" href="#id41" id="lazy-binding"
name="lazy-binding">5.2 <tt class="docutils literal"><span
class="pre">lazy_binding</span></tt></a></h2>
<p>Returns the result type of indexing an argument pack with a <a
class="reference" href="#tagged-lazy-default">tagged lazy default</a>.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
@@ -605,11 +611,135 @@
</div>
<hr class="docutils" />
<div class="section">
-<h1><a class="toc-backref" href="#id40" id="code-generation-macros"
name="code-generation-macros">6 Code Generation Macros</a></h1>
+<h1><a class="toc-backref" href="#id42" id="code-generation-macros"
name="code-generation-macros">6 Code Generation Macros</a></h1>
<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">
-<h2><a class="toc-backref" href="#id41" id="boost-parameter-fun-r-n-l-h-p"
name="boost-parameter-fun-r-n-l-h-p">6.1 <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="#id43"
id="boost-parameter-function-result-name-tag-namespace-arguments"
name="boost-parameter-function-result-name-tag-namespace-arguments">6.1 <tt
class="docutils literal"><span
class="pre">BOOST_PARAMETER_FUNCTION(result,name,tag_namespace,arguments)</span></tt></a></h2>
+<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">Defined in:</th><td
class="field-body"><a class="reference"
href="../../../../boost/parameter/preprocessor.hpp">boost/parameter/preprocessor.hpp</a></td>
+</tr>
+</tbody>
+</table>
+<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">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
+a list of <em>argument specifiers</em>, as defined below.</p>
+</td>
+</tr>
+<tr class="field"><th class="field-name" colspan="2">Argument specifiers
syntax:</th></tr>
+<tr><td> </td><td class="field-body"><pre class="first literal-block">
+argument-specifiers ::= specifier-group {specifier-group}
+
+specifier-group ::= ( '(' 'optional' optional-specifier {optional-specifier}
')' ) |
+ ( '(' 'required' required-specifier {required-specifier}
')' )
+
+optional-specifier ::= '(' name ',' restriction ',' default-value ')'
+required-specifier ::= '(' name ',' restriction ')'
+
+restriction ::= ('*' '(' lambda-expression ')' ) |
+ ( '(' typename ')' ) |
+ '*'
+</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.
+<tt class="docutils literal"><span class="pre">lambda-expression</span></tt>
is an <a class="reference"
href="../../../mpl/doc/refmanual/lambda-expression.html">MPL lambda
expression</a>.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<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" 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>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<dl class="docutils">
+<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>
+</ul>
+<pre class="last literal-block">
+template <class T>
+struct boost_param_result_ ## __LINE__ ## <strong>name</strong>
+{
+ typedef <strong>result</strong> type;
+};
+
+struct boost_param_params_ ## __LINE__ ## <strong>name</strong>
+ : boost::parameter::parameters<
+ <em>list of parameter specifications, based on arguments</em>
+ >
+{};
+
+typedef boost_param_params_ ## __LINE__ ## <strong>name</strong>
+ boost_param_parameters_ ## __LINE__ ## <strong>name</strong>;
+
+template <class A0, â?¦, class A<strong>n</strong>>
+<em>result type</em> <strong>name</strong>(
+ A0 <em>cv</em>& a0, â?¦, A<strong>n</strong> <em>cv</em>&
a<strong>n</strong>
+ , typename boost_param_parameters_ ## __LINE__ ##
<strong>name</strong>::match<
+ A0 <em>cv</em>, â?¦, A<strong>n</strong> <em>cv</em>
+ >::type = boost_param_parameters_ ## __LINE__ ## <strong>name</strong>()
+)
+{
+ <em>â?¦ forward to implementation â?¦</em>
+}
+
+<span class="vellipsis"> .
+ .
+ .
+â??</span>
+
+template <class A0, â?¦, class A<strong>m</strong>>
+<em>result type</em> <strong>name</strong>(
+ A0 <em>cv</em>& a0, â?¦, A<strong>m</strong> <em>cv</em>&
a<strong>m</strong>
+ , typename boost_param_parameters_ ## __LINE__ ##
<strong>name</strong>::match<
+ A0 <em>cv</em>, â?¦, A<strong>m</strong> <em>cv</em>
+ >::type = boost_param_parameters_ ## __LINE__ ## <strong>name</strong>()
+)
+{
+ <em>â?¦ forward to implementation â?¦</em>
+}
+
+template <
+ class ResultType
+ , class <em>argument name</em><strong>0</strong> ## _type
+ â?¦
+ , class <em>argument name</em><strong>m</strong> ## _type
+>
+ResultType boost_param_default_ ## __LINE__ ## <strong>name</strong>(
+ (ResultType(*)())
+ , <em>argument name</em><strong>0</strong> ## _type& <em>argument
name</em><strong>0</strong>
+ â?¦
+ , <em>argument name</em><strong>m</strong> ## _type& <em>argument
name</em><strong>m</strong>
+)
+</pre>
+</dd>
+</dl>
+</div>
+<div class="section">
+<h2><a class="toc-backref" href="#id44" id="boost-parameter-fun-r-n-l-h-p"
name="boost-parameter-fun-r-n-l-h-p">6.2 <tt class="docutils
literal"><span class="pre">BOOST_PARAMETER_FUN(r,n,l,h,p)</span></tt></a></h2>
<p>Generates a sequence of <a class="reference"
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
@@ -665,7 +795,7 @@
</dl>
</div>
<div class="section">
-<h2><a class="toc-backref" href="#id42" id="boost-parameter-keyword-n-k"
name="boost-parameter-keyword-n-k">6.2 <tt class="docutils
literal"><span class="pre">BOOST_PARAMETER_KEYWORD(n,k)</span></tt></a></h2>
+<h2><a class="toc-backref" href="#id45" id="boost-parameter-keyword-n-k"
name="boost-parameter-keyword-n-k">6.3 <tt class="docutils
literal"><span class="pre">BOOST_PARAMETER_KEYWORD(n,k)</span></tt></a></h2>
<p>Generates the declaration of a <a class="reference"
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" href="#keyword-object">keyword object</a>
definition in
the enclosing namespace.</p>
@@ -690,7 +820,7 @@
</dl>
</div>
<div class="section">
-<h2><a class="toc-backref" href="#id43" id="boost-parameter-match-p-a-x"
name="boost-parameter-match-p-a-x">6.3 <tt class="docutils
literal"><span class="pre">BOOST_PARAMETER_MATCH(p,a,x)</span></tt></a></h2>
+<h2><a class="toc-backref" href="#id46" id="boost-parameter-match-p-a-x"
name="boost-parameter-match-p-a-x">6.4 <tt class="docutils
literal"><span class="pre">BOOST_PARAMETER_MATCH(p,a,x)</span></tt></a></h2>
<p>Generates a defaulted parameter declaration for a <a class="reference"
href="index.html#forwarding-functions">forwarding
function</a>.</p>
<table class="docutils field-list" frame="void" rules="none">
@@ -724,9 +854,9 @@
</div>
</div>
<div class="section">
-<h1><a class="toc-backref" href="#id44" id="configuration-macros"
name="configuration-macros">7 Configuration Macros</a></h1>
+<h1><a class="toc-backref" href="#id47" id="configuration-macros"
name="configuration-macros">7 Configuration Macros</a></h1>
<div class="section">
-<h2><a class="toc-backref" href="#id45" id="boost-parameter-max-arity"
name="boost-parameter-max-arity">7.1 <tt class="docutils
literal"><span class="pre">BOOST_PARAMETER_MAX_ARITY</span></tt></a></h2>
+<h2><a class="toc-backref" href="#id48" id="boost-parameter-max-arity"
name="boost-parameter-max-arity">7.1 <tt class="docutils
literal"><span class="pre">BOOST_PARAMETER_MAX_ARITY</span></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>
@@ -749,7 +879,7 @@
</div>
</div>
<div class="section">
-<h1><a class="toc-backref" href="#id46" id="tutorial"
name="tutorial">8 Tutorial</a></h1>
+<h1><a class="toc-backref" href="#id49" id="tutorial"
name="tutorial">8 Tutorial</a></h1>
<p>Follow <a class="reference" href="index.html#tutorial">this link</a> to the
Boost.Parameter tutorial
documentation.</p>
<hr class="docutils" />
@@ -776,7 +906,7 @@
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2006-05-06 16:53 UTC.
+Generated on: 2006-07-26 15:39 UTC.
Generated by <a class="reference"
href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference"
href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
</div>
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________
Boost-cvs mailing list
Boost-cvs@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/boost-cvs
|