mirror of
https://github.com/boostorg/utility.git
synced 2025-08-02 06:15:22 +02:00
reference docs for named_params, incomplete
[SVN r2337]
This commit is contained in:
192
doc/named_params_ref.rst
Executable file
192
doc/named_params_ref.rst
Executable file
@@ -0,0 +1,192 @@
|
||||
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
The Boost.NamedParams Library Reference |(logo)|__ INCOMPLETE
|
||||
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
.. |(logo)| image:: ../../../c++boost.gif
|
||||
:alt: Boost
|
||||
:class: boost-logo
|
||||
|
||||
__ ../../../index.htm
|
||||
|
||||
-------------------------------------
|
||||
|
||||
:Authors: David Abrahams, Daniel Wallin
|
||||
:Contact: dave@boost-consulting.com, dalwan01@student.umu.se
|
||||
:organizations: `Boost Consulting`_,
|
||||
:date: $Date$
|
||||
:copyright: Copyright David Abrahams, Daniel Wallin 2003.
|
||||
:license: Use, modification and distribution is subject to 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)
|
||||
|
||||
.. _`Boost Consulting`: http://www.boost-consulting.com
|
||||
|
||||
.. contents::
|
||||
|
||||
concept ``keyword-expression``
|
||||
------------------------------
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
template<class Tag>
|
||||
*bound-argument* operator[](*keyword-expression*, keyword<Tag>)
|
||||
|
||||
**Requires**
|
||||
An argument tagged with ``Tag`` must be bound in the object.
|
||||
|
||||
**Returns**
|
||||
A reference to the bound argument tagged with ``Tag``.
|
||||
|
||||
**Throws**
|
||||
Nothrow.
|
||||
|
||||
**Complexity**
|
||||
O(1) runtime. O(1) compile time on good compilers. O(N), where N is
|
||||
the number of bound arguments, on old compilers such as VC6.
|
||||
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*bound-argument* operator[](*keyword-expression*, *named-default-expression*)
|
||||
|
||||
**Requires**
|
||||
Nothing.
|
||||
|
||||
**Returns**
|
||||
A reference to the bound argument tagged with
|
||||
*named-default-expression*::key_type. If no such argument is bound, the
|
||||
default value as given by the *named-default-expression* instance is
|
||||
returned.
|
||||
|
||||
**Throws**
|
||||
Nothrow.
|
||||
|
||||
**Complexity**
|
||||
O(1) runtime. O(1) compile time on good compilers. O(N), where N is
|
||||
the number of bound arguments, on old compilers such as VC6.
|
||||
|
||||
|
||||
concept ``named-default-expression``
|
||||
------------------------------------
|
||||
|
||||
...
|
||||
|
||||
|
||||
concept ``lazy-default-expression``
|
||||
-----------------------------------
|
||||
|
||||
...
|
||||
|
||||
|
||||
|
||||
class template ``keyword``
|
||||
--------------------------
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
template<class Tag>
|
||||
struct keyword
|
||||
{
|
||||
template<class T>
|
||||
*keyword-expression* operator=(T&) const;
|
||||
|
||||
template<class T>
|
||||
*keyword-expression* operator=(T const&) const;
|
||||
|
||||
template<class Default>
|
||||
*named-default-expression* operator|(Default&) const;
|
||||
|
||||
template<class Default>
|
||||
*named-default-expression* operator|(Default const&) const;
|
||||
|
||||
template<class LazyDefault>
|
||||
*unspecified* operator||(LazyDefault const&) const;
|
||||
};
|
||||
|
||||
Denotes a argument keyword. ``Tag`` is a tag class, typically an incomplete type.
|
||||
|
||||
::
|
||||
|
||||
template<class T> operator=(T&)
|
||||
template<class T> operator=(T const&)
|
||||
|
||||
**Requires**
|
||||
Nothing.
|
||||
|
||||
**Returns**
|
||||
An object that holds a cv reference to ``x``, tagged with the keyword
|
||||
``Tag`` type. If ``T`` is an instance of ``boost::reference_wrapper<U cv>``
|
||||
the tagged result will hold a reference to ``U cv``.
|
||||
|
||||
**Complexity**
|
||||
O(1) compile time and run time.
|
||||
|
||||
**Throws**
|
||||
Nothrow.
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
template<class Default>
|
||||
*named-default-expression* operator|(Default&) const
|
||||
|
||||
template<class Default>
|
||||
*named-default-expression* operator|(Default const&) const
|
||||
|
||||
**Requires**
|
||||
Nothing.
|
||||
|
||||
**Returns**
|
||||
An object holding a reference to the given default value, tagged
|
||||
with ``Tag``.
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
template<class LazyDefault>
|
||||
*lazy-default-expression* operator||(LazyDefault const& x) const;
|
||||
|
||||
**Requires**
|
||||
``LazyDefault`` is a nullary function object, with the following
|
||||
properties:
|
||||
|
||||
======================== =======================================
|
||||
Expression Result
|
||||
======================== =======================================
|
||||
LazyDefault::result_type Must to Copyable
|
||||
x() Convertible to LazyDefault::result_type
|
||||
======================== =======================================
|
||||
|
||||
**Returns**
|
||||
...
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
template<
|
||||
class Tag
|
||||
, class HasDefault = mpl::true\_
|
||||
, class Predicate = mpl::always<mpl::true\_>
|
||||
>
|
||||
struct named_param
|
||||
{
|
||||
typedef Tag key_type;
|
||||
typedef HasDefault has_default;
|
||||
typedef Predicate predicate;
|
||||
};
|
||||
|
||||
template<class K0, class K1, ..., class KN>
|
||||
struct keywords
|
||||
{
|
||||
template<class T0, class T1, ..., class TN>
|
||||
*keyword-expression* operator()(T0 const&, T1 const&, ..., TN const&) const;
|
||||
};
|
||||
|
||||
* <K0, ..., KN> is either a tag type, as specified in ``keyword``, or an instantiation of
|
||||
``named_param``.
|
||||
|
||||
::
|
||||
|
||||
template<class T0, class T1, ..., class TN> operator()(T0 const&, T1 const&, ..., TN const&) const;
|
||||
|
||||
Composes all parameters, named and positional, into an object that can be used to query
|
||||
for specific keywords.
|
||||
|
Reference in New Issue
Block a user