placeholders.rst

来自「Boost provides free peer-reviewed portab」· RST 代码 · 共 101 行

RST
101
字号
.. Metafunctions/Composition and Argument Binding//_1,_2,..._n |10.. Copyright Aleksey Gurtovoy, David Abrahams 2007... 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)Placeholders============Synopsis--------.. parsed-literal::        namespace placeholders {    typedef |unspecified| _;    typedef arg<1>      _1;    typedef arg<2>      _2;    |...|    typedef arg<\ *n*\ >      _\ *n*\ ;    }        using placeholders::_;    using placeholders::_1;    using placeholders::_2;    |...|    using placeholders::_\ *n*\ ;    Description-----------A placeholder in a form ``_``\ *n* is simply a synonym for the corresponding ``arg<n>`` specialization. The unnamed placeholder ``_`` (underscore) carries `special meaning`__ in bind and lambda expressions, and does not have defined semantics outside of these contexts.Placeholder names can be made available in the user namespace through ``using namespace mpl::placeholders;`` directive.__ `bind semantics`_Header------.. parsed-literal::        #include <boost/mpl/placeholders.hpp>|Note:| The include might be omitted when using placeholders to construct a |LambdaExpression| for passing it to MPL's own algorithm or metafunction: any library component that is documented to accept a lambda expression makes the placeholders implicitly available for the user code |-- end note|Parameters----------None.Expression semantics--------------------For any integral constant ``n`` in the range [1, |BOOST_MPL_LIMIT_METAFUNCTION_ARITY|\] andarbitrary types |a1...an|:.. parsed-literal::    typedef apply_wrap\ *n*\<_\ *n*\,a1,\ |...|\a\ *n*\ >::type x;:Return type:    A type.:Semantics:    Equivalent to        .. parsed-literal::            typedef apply_wrap\ *n*\< arg<\ *n*\ >,a1,\ |...|\a\ *n* >::type x;    Example-------.. parsed-literal::        typedef apply_wrap\ ``5``\< _1,bool,char,short,int,long >::type t1;    typedef apply_wrap\ ``5``\< _3,bool,char,short,int,long >::type t3;        BOOST_MPL_ASSERT(( is_same< t1, bool > ));    BOOST_MPL_ASSERT(( is_same< t3, short > ));See also--------|Composition and Argument Binding|, |arg|, |lambda|, |bind|, |apply|, |apply_wrap|

⌨️ 快捷键说明

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