📄 placeholders.rst
字号:
.. Metafunctions/Composition and Argument Binding//_1,_2,..._n |10
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 |Lambda
Expression| 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|\] and
arbitrary 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -