blob: bb053f025059527136d494662cabac2d3dcbb3bc [file] [log] [blame]
.. Metafunctions/Concepts//Placeholder Expression |40
Placeholder Expression
======================
Description
-----------
A |Placeholder Expression| is a type that is either a |placeholder| or a class
template specialization with at least one argument that itself is a
|Placeholder Expression|.
Expression requirements
-----------------------
If ``X`` is a class template, and ``a1``,... ``an`` are arbitrary types, then
``X<a1,...,an>`` is a |Placeholder Expression| if and only if all of the following
conditions hold:
* At least one of the template arguments ``a1``,... ``an`` is a |placeholder|
or a |Placeholder Expression|.
* All of ``X``\ 's template parameters, including the default ones, are types.
* The number of ``X``\ 's template parameters, including the default ones, is
less or equal to the value of ``BOOST_MPL_LIMIT_METAFUNCTION_ARITY``
`configuration macro`__.
__ `Configuration`_
Models
------
* |_1|
* ``plus<_, int_<2> >``
* ``if_< less<_1, int_<7> >, plus<_1,_2>, _1 >``
See also
--------
|Lambda Expression|, |Placeholders|, |Metafunctions|, |apply|, |lambda|
.. copyright:: Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams
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)