...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Front Page / Metafunctions / Composition and Argument Binding / Placeholders |
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;
A placeholder in a form _n is simply a synonym for the corresponding
arg
Placeholder names can be made available in the user namespace through using namespace mpl::placeholders; directive.
#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]
None.
For any integral constant n in the range [1, BOOST_MPL_LIMIT_METAFUNCTION_ARITY] and arbitrary types a1,... an:
typedef apply_wrapn<_n,a1,...an>::type x;
Return type: | A type. |
---|---|
Semantics: | Equivalent to typedef apply_wrapn< arg<n>,a1,...an >::type x; |
typedef apply_wrap5< _1,bool,char,short,int,long >::type t1; typedef apply_wrap5< _3,bool,char,short,int,long >::type t3; BOOST_MPL_ASSERT(( is_same< t1, bool > )); BOOST_MPL_ASSERT(( is_same< t3, short > ));