]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/mpl/doc/src/refmanual/TrivialMetafunction.rst
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / mpl / doc / src / refmanual / TrivialMetafunction.rst
CommitLineData
7c673cae
FG
1.. Metafunctions/Concepts//Trivial Metafunction |70
2
3Trivial Metafunction
4====================
5
6Description
7-----------
8
9A |Trivial Metafunction| accepts a single argument of a class type ``x`` and
10returns the ``x``\ 's nested type member ``x::name``, where ``name`` is
11a placeholder token for the actual member's name accessed by a specific
12metafunction's instance. By convention, all `trivial metafunctions`__ in MPL
13are named after the members they provide assess to. For instance, a |Trivial
14Metafunction| named ``first`` reaches for the ``x``\ 's nested member
15``::first``.
16
17__ `Trivial Metafunctions Summary`_
18
19
20Expression requirements
21-----------------------
22
23|In the following table...| ``name`` is placeholder token for the names of
24the |Trivial Metafunction| itself and the accessed member, and ``x`` is
25a class type such that ``x::name`` is a valid *type-name*.
26
27+---------------------------+-------------------+---------------------------+
28| Expression | Type | Complexity |
29+===========================+===================+===========================+
30| ``name<x>::type`` | Any type | Constant time. |
31+---------------------------+-------------------+---------------------------+
32
33
34Expression semantics
35--------------------
36
37.. parsed-literal::
38
39 typedef name<x>::type r;
40
41:Precondition:
42 ``x::name`` is a valid *type-name*.
43
44:Semantics:
45 ``is_same<r,x::name>::value == true``.
46
47
48Models
49------
50
51* |first|
52* |second|
53* |base|
54
55
56See also
57--------
58
59|Metafunctions|, |Trivial Metafunctions|, |identity|
60
61
62