]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | .. Metafunctions/Concepts//Placeholder Expression |40 |
2 | ||
3 | Placeholder Expression | |
4 | ====================== | |
5 | ||
6 | Description | |
7 | ----------- | |
8 | ||
9 | A |Placeholder Expression| is a type that is either a |placeholder| or a class | |
10 | template specialization with at least one argument that itself is a | |
11 | |Placeholder Expression|. | |
12 | ||
13 | ||
14 | Expression requirements | |
15 | ----------------------- | |
16 | ||
17 | If ``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 | |
19 | conditions 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 | ||
33 | Models | |
34 | ------ | |
35 | ||
36 | * |_1| | |
37 | * ``plus<_, int_<2> >`` | |
38 | * ``if_< less<_1, int_<7> >, plus<_1,_2>, _1 >`` | |
39 | ||
40 | ||
41 | See also | |
42 | -------- | |
43 | ||
44 | |Lambda Expression|, |Placeholders|, |Metafunctions|, |apply|, |lambda| | |
45 | ||
46 | ||
47 |