⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reference.rst

📁 C++的一个好库。。。现在很流行
💻 RST
📖 第 1 页 / 共 2 页
字号:
  :Returns: a “singleton instance”: the same object will be    returned on each invocation of ``get()``.  :Thread Safety: ``get()`` can be called from multiple threads    simultaneously.``parameters``--------------Provides an interface for assembling the actual arguments to a`forwarding function` into an |ArgumentPack|, in which any|positional| arguments will be tagged according to thecorresponding template argument to ``parameters``.  .. _forwarding function: `forwarding functions`_:Defined in: `boost/parameter/parameters.hpp`____ ../../../../boost/parameter/parameters.hpp.. parsed-literal::    template <class P0 = *unspecified*, class P1 = *unspecified*, …class P\ β = *unspecified*>    struct parameters    {        template <class A0, class A1 = *unspecified*, …class A\ β = *unspecified*>        struct `match`_        {            typedef … type;        };        template <class A0>        |ArgumentPack|_ `operator()`_\(A0 const& a0) const;        template <class A0, class A1>        |ArgumentPack|_ `operator()`_\(A0 const& a0, A1 const& a1) const; :vellipsis:`\        .       .       .     `        template <class A0, class A1, …class A\ β>        |ArgumentPack|_ `operator()`_\(A0 const& a0, A1 const& a1, …A\ β const& a\ β) const;    };:Requires: ``P0``, ``P1``, … ``P``\ β are models of |ParameterSpec|_. .. Note::  In this section, ``R``\ *i* and ``K``\ *i* are defined as  follows, for any argument type ``A``\ *i*:     | ``R``\ *i* is ``A``\ *i*\ 's |intended argument type|     |     |  if ``A``\ *i* is a result type of ``keyword<T>::``\ |operator=|_     |  then      |      ``K``\ *i* is ``T``     |  else      |      ``K``\ *i* is ``P``\ *i*\ 's |keyword tag type|... _match:``match``  A |Metafunction|_ used to remove a `forwarding function`_ from overload resolution.  :Returns: if ``P0``, ``P1``, …\ ``P``\ β are *satisfied* (see    below), then ``parameters<P0,P1,…Pβ>``.  Otherwise,    ``match<A0,A1,…Aβ>::type`` is not defined.  ``P0``, ``P1``, …\ ``P``\ β are **satisfied** if, for  every *j* in 0…β, either:  * ``P``\ *j* is the *unspecified* default  * **or**, ``P``\ *j* is a specialization of |keyword|_,  * **or**, ``P``\ *j* is |optional|_ ``<X,F>`` and either    - ``X`` is not ``K``\ *i* for any *i*,    - **or** ``X`` is some ``K``\ *i*  and ``mpl::apply<F,R``\ *i*\      ``>::type::value`` is ``true``  * **or**, ``P``\ *j* is |required|_ ``<X,F>``, and    - ``X`` is some ``K``\ *i*, **and**    - ``mpl::apply<F,R``\ *i*\ ``>::type::value`` is ``true``.. _operator():``operator()``  .. parsed-literal::      template <class A0> |ArgumentPack|_ operator()(A0 const& a0) const; :vellipsis:`\         .        .        .       `      template <class A0, …class A\ β> |ArgumentPack|_ `operator()`_\(A0 const& a0, …A\ β const& a\ β) const;  :Returns:      An |ArgumentPack|_ containing, for each ``a``\ *i*,        - if ``a``\ *i*,  is a single-element |ArgumentPack|, its element      - Otherwise, a |tagged reference| with |kw|_ ``K``\ *i* and *value* ``a``\ *i*.. |optional| replace:: ``optional``.. |required| replace:: ``required``.. _optional:.. _required:``optional``, ``required``--------------------------These templates describe the requirements on a function parameter.:Defined in: `boost/parameter/parameters.hpp`____ ../../../../boost/parameter/parameters.hpp:Specializations model: |ParameterSpec|_.. parsed-literal::    template <class Tag, class Predicate = *unspecified*>    struct optional;    template <class Tag, class Predicate = *unspecified*>    struct required;The default value of ``Predicate`` is an unspecified |Metafunction|_ that returns``mpl::true_`` for any argument... |Metafunction| replace:: :concept:`Metafunction`.. _Metafunction: ../../../mpl/doc/refmanual/metafunction.html//////////////////////////////////////////////////////////////////////////////Metafunctions=============A |Metafunction|_ is conceptually a function that operates on, andreturns, C++ types.``binding``-----------Returns the result type of indexing an argument pack with a|keyword tag type| or with a |tagged default|.:Defined n: `boost/parameter/binding.hpp`____ ../../../../boost/parameter/binding.hpp.. parsed-literal::    template <class A, class K, class D = void>    struct binding    {        typedef … type;    };:Requires: ``A`` is a model of |ArgumentPack|_.:Returns: the reference type of the |tagged reference| in ``A``  having |keyword tag type| ``K``, if any.  If no such |tagged  reference| exists, returns ``D``.``lazy_binding``----------------Returns the result type of indexing an argument pack with a |taggedlazy default|.:Defined in:    `boost/parameter/binding.hpp`____ ../../../../boost/parameter/binding.hpp.. parsed-literal::    template <class A, class K, class F>    struct lazy_binding    {        typedef … type;    };:Requires: ``A`` is a model of |ArgumentPack|_.:Returns: the reference type of the |tagged reference| in ``A``  having |keyword tag type| ``K``, if any.  If no such |tagged  reference| exists, returns ``boost::``\ |result_of|_\ ``<F()>::type``. [#no_result_of]_//////////////////////////////////////////////////////////////////////////////Code Generation Macros======================Macros in this section can be used to ease the writing of codeusing the Parameter libray by eliminating repetitive boilerplate.``BOOST_PARAMETER_FUN(r,n,l,h,p)``----------------------------------Generates a sequence of `forwarding function`_ templates named``n``, with arities ranging from ``l`` to ``h`` , returning ``r``,and using ``p`` to control overload resolution and assign tags topositional arguments.:Defined in: `boost/parameter/macros.hpp`____ ../../../../boost/parameter/macros.hpp:Requires: ``l`` and ``h`` are nonnegative integer tokens such  that ``l`` < ``h``Generates  .. parsed-literal::    template <class A1, class A2, …class A##\ **l**>    r name(        A1 const& a1, A2 const& a2, …A\ **l** const& x\ **l**      , typename **p**::match<A1,A2,…A\ **l**>::type p = **p**\ ())    {       return **name**\ _with_named_params(**p**\ (x1,x2,…x\ **l**));    }    template <class A1, class A2, …class A\ **l**, class A\ ##\ BOOST_PP_INC_\ (**l**)>    r name(        A1 const& a1, A2 const& a2, …A\ **l** const& x\ **l**      , A\ ##\ BOOST_PP_INC_\ (**l**) const& x\ ##\ BOOST_PP_INC_\ (**l**)      , typename **p**::match<A1,A2,…A\ **l**,A\ ##\ BOOST_PP_INC_\ (**l**)>::type p = **p**\ ())    {       return **name**\ _with_named_params(**p**\ (x1,x2,…x\ **l**,x\ ##\ BOOST_PP_INC_\ (**l**)));    } :vellipsis:`\       .      .      .     `    template <class A1, class A2, …class A\ **h**>    r name(        A1 const& a1, A2 const& a2, …A\ **h** const& x\ **h**      , typename **p**::match<A1,A2,…A\ **h**>::type p = **p**\ ())    {       return **name**\ _with_named_params(**p**\ (a1,a2,…a\ **h**));    }.. _BOOST_PP_INC: ../../../preprocessor/doc/ref/inc.html``BOOST_PARAMETER_KEYWORD(n,k)``--------------------------------Generates the declaration of a |keyword tag type| named ``k`` innamespace ``n``, and a corresponding |keyword object| definition inthe enclosing namespace.:Defined in: `boost/parameter/keyword.hpp`____ ../../../../boost/parameter/keyword.hppGenerates  .. parsed-literal::      namespace **n** { struct **k**; }      namespace {         boost::parameter::keyword<*tag-namespace*::**k**>& **k**        = boost::parameter::keyword<*tag-namespace*::**k**>::get();      }``BOOST_PARAMETER_MATCH(p,a,x)``--------------------------------Generates a defaulted parameter declaration for a `forwardingfunction`_.:Defined in: `boost/parameter/match.hpp`____ ../../../../boost/parameter/match.hpp:Requires: ``a`` is a `Boost.Preprocessor sequence`__   of the form   .. parsed-literal::   (A0)(A1)…(A\ *n*)__ http://www.boost.org/libs/preprocessor/doc/data.htmlGenerates  .. parsed-literal::    typename **p**::match<**A0**\ ,\ **A1**\ …,\ **A**\ *n*>::type **x** = **p**\ ()Configuration Macros====================``BOOST_PARAMETER_MAX_ARITY``-----------------------------Determines the maximum number of arguments supported by thelibrary.  Will only be ``#defined`` by the library if it is notalready ``#defined``... |BOOST_PARAMETER_MAX_ARITY| replace:: ``BOOST_PARAMETER_MAX_ARITY``:Defined in: `boost/parameter/config.hpp`____ ../../../../boost/parameter/config.hpp:Default Value: ``5``Tutorial========Follow `this link`__ to the Boost.Parameter tutorialdocumentation.  __ index.html#tutorial//////////////////////////////////////////////////////////////.. [#thread] References to tag objects may be initialized multiple   times.  This scenario can only occur in the presence of   threading.  Because the C++ standard doesn't consider threading,   it doesn't explicitly allow or forbid multiple initialization of   references.  That said, it's hard to imagine an implementation   where it could make a difference. .. [#no_result_of] Where |BOOST_NO_RESULT_OF|_ is ``#defined``,   ``boost::``\ |result_of|_\ ``<F()>::type`` is replaced by   ``F::result_type``... |result_of| replace:: ``result_of``.. _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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -