1.. Metafunctions/Concepts//Placeholder Expression |40 2 3Placeholder Expression 4====================== 5 6Description 7----------- 8 9A |Placeholder Expression| is a type that is either a |placeholder| or a class 10template specialization with at least one argument that itself is a 11|Placeholder Expression|. 12 13 14Expression requirements 15----------------------- 16 17If ``X`` is a class template, and ``a1``,... ``an`` are arbitrary types, then 18``X<a1,...,an>`` is a |Placeholder Expression| if and only if all of the following 19conditions hold: 20 21* At least one of the template arguments ``a1``,... ``an`` is a |placeholder| 22 or a |Placeholder Expression|. 23 24* All of ``X``\ 's template parameters, including the default ones, are types. 25 26* The number of ``X``\ 's template parameters, including the default ones, is 27 less or equal to the value of ``BOOST_MPL_LIMIT_METAFUNCTION_ARITY`` 28 `configuration macro`__. 29 30__ `Configuration`_ 31 32 33Models 34------ 35 36* |_1| 37* ``plus<_, int_<2> >`` 38* ``if_< less<_1, int_<7> >, plus<_1,_2>, _1 >`` 39 40 41See also 42-------- 43 44|Lambda Expression|, |Placeholders|, |Metafunctions|, |apply|, |lambda| 45 46 47.. copyright:: Copyright � 2001-2009 Aleksey Gurtovoy and David Abrahams 48 Distributed under the Boost Software License, Version 1.0. (See accompanying 49 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 50