Update of /cvsroot/boost/boost/libs/parameter/doc
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv21697
Modified Files:
reference.rst
Log Message:
First attempt at reference for new macros.
Index: reference.rst
===================================================================
RCS file: /cvsroot/boost/boost/libs/parameter/doc/reference.rst,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -d -r1.25 -r1.26
--- reference.rst 27 Jan 2006 21:21:56 -0000 1.25
+++ reference.rst 8 Jul 2006 22:13:59 -0000 1.26
@@ -2,13 +2,6 @@
The Boost Parameter Library Reference Documentation
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-|(logo)|__
-
-.. |(logo)| image:: ../../../../boost.png
- :alt: Boost
-
-__ ../../../../index.htm
-
:Authors: David Abrahams, Daniel Wallin
:Contact: [EMAIL PROTECTED], [EMAIL PROTECTED]
:organization: `Boost Consulting`_
@@ -19,6 +12,13 @@
Version 1.0. (See accompanying file LICENSE_1_0.txt
or copy at http://www.boost.org/LICENSE_1_0.txt)
+|(logo)|__
+
+.. |(logo)| image:: ../../../../boost.png
+ :alt: Boost
+
+__ ../../../../index.htm
+
.. _`Boost Consulting`: http://www.boost-consulting.com
@@ -554,6 +554,113 @@
Macros in this section can be used to ease the writing of code
using the Parameter libray by eliminating repetitive boilerplate.
+``BOOST_PARAMETER_FUNCTION(result,name,tag_namespace,arguments)``
+-----------------------------------------------------------------
+
+:Defined in: `boost/parameter/preprocessor.hpp`__
+
+__ ../../../../boost/parameter/preprocessor.hpp
+
+:Requires: ``result`` is the parenthesized return type of the function.
+ ``name`` is the base name of the function, this is the name of the
+ generated forwarding functions. ``tag_namespace`` is the namespace in
+ which the keywords used by the function resides. ``arguments`` is
+ a list of *argument specifiers*, as defined below.
+
+
+:Argument specifiers syntax:
+ .. parsed-literal::
+
+ 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 ')' ) |
+ '*'
+
+ ``name`` is any valid C++ identifier. ``default-value`` is any valid
+ C++ expression. ``typename`` is the name of a type.
+ ``lambda-expression`` is an `MPL lambda expression`_.
+
+.. _`MPL lambda expression`: ../../../mpl/doc/refmanual/lambda-expression.html
+
+:Generated names in enclosing scope:
+ * ``boost_param_result_ ## __LINE__ ## name``
+ * ``boost_param_params_ ## __LINE__ ## name``
+ * ``boost_param_parameters_ ## __LINE__ ## name``
+ * ``boost_param_impl ## name``
+ * ``boost_param_default_ ## __LINE__ ## name``
+
+
+Approximate expansion:
+ **Where**:
+
+ * ``n`` denotes the *minimum* arity, as determined from ``arguments``.
+ * ``m`` denotes the *maximum* arity, as determined from ``arguments``.
+
+ .. parsed-literal::
+
+ template <class T>
+ struct boost_param_result\_ ## __LINE__ ## **name**
+ {
+ typedef **result** type;
+ };
+
+ struct boost_param_params\_ ## __LINE__ ## **name**
+ : boost::parameter::parameters<
+ *list of parameter specifications, based on arguments*
+ >
+ {};
+
+ typedef boost_param_params\_ ## __LINE__ ## **name**
+ boost_param_parameters\_ ## __LINE__ ## **name**;
+
+ template <class A0, â¦, class A\ **n**>
+ *result type* **name**\ (
+ A0 *cv*\ & a0, â¦, A\ **n** *cv*\ & a\ **n**
+ , typename boost_param_parameters\_ ## __LINE__ ## **name**::match<
+ A0 *cv*, â¦, A\ **n** *cv*
+ >::type = boost_param_parameters\_ ## __LINE__ ## **name**\ ()
+ )
+ {
+ *⦠forward to implementation â¦*
+ }
+
+ :vellipsis:`\
+ .
+ .
+ .
+ â`
+
+ template <class A0, â¦, class A\ **m**>
+ *result type* **name**\ (
+ A0 *cv*\ & a0, â¦, A\ **m** *cv*\ & a\ **m**
+ , typename boost_param_parameters\_ ## __LINE__ ## **name**::match<
+ A0 *cv*, â¦, A\ **m** *cv*
+ >::type = boost_param_parameters\_ ## __LINE__ ## **name**\ ()
+ )
+ {
+ *⦠forward to implementation â¦*
+ }
+
+ template <
+ class ResultType
+ , class *argument name*\ **0** ## _type
+ â¦
+ , class *argument name*\ **m** ## _type
+ >
+ ResultType boost_param_default\_ ## __LINE__ ## **name**\ (
+ (ResultType(*)())
+ , *argument name*\ **0** ## _type& *argument name*\ **0**
+ â¦
+ , *argument name*\ **m** ## _type& *argument name*\ **m**
+ )
+
``BOOST_PARAMETER_FUN(r,n,l,h,p)``
----------------------------------
@@ -691,4 +798,5 @@
.. _result_of: ../../../utility/utility.htm#result_of
.. |BOOST_NO_RESULT_OF| replace:: ``BOOST_NO_RESULT_OF``
-.. _BOOST_NO_RESULT_OF: ../../../utility/utility.htm#BOOST_NO_RESULT_OF
\ No newline at end of file
+.. _BOOST_NO_RESULT_OF: ../../../utility/utility.htm#BOOST_NO_RESULT_OF
+
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Boost-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/boost-cvs