• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1
2The MPL Reference Manual
3************************
4
5:Copyright: Copyright �  2001-2009 Aleksey Gurtovoy and David Abrahams
6
7:License:   Distributed under the Boost Software License, Version 1.0. (See
8            accompanying file ``LICENSE_1_0.txt`` or copy at
9            http://www.boost.org/LICENSE_1_0.txt)
10
11
12.. raw:: latex
13
14   \setcounter{secnumdepth}{2}
15   \setcounter{tocdepth}{2}
16
17
18.. TOC copyright:
19.. copyright:: Copyright �  2001-2009 Aleksey Gurtovoy and David Abrahams
20   Distributed under the Boost Software License, Version 1.0. (See accompanying
21   file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
22
23.. contents:: Table of Contents
24    :depth: 3
25
26
27.. |Boost.Bind| replace:: `Boost.Bind <http://www.boost.org/libs/bind/bind.html>`__
28.. |Boost.Lambda| replace:: `Boost.Lambda <http://www.boost.org/libs/lambda/doc/index.html>`__
29
30.. role:: refentry(literal)
31
32.. |t1| replace:: \ *t*\ :sub:`1`
33.. |t2| replace:: \ *t*\ :sub:`2`
34.. |tn| replace:: \ *t*\ :sub:`n`
35.. workaround weird substitution bug (used to work!):
36.. |t1...tn| replace:: \ *t*\ :sub:`1`,\ *t*\ :sub:`2`,... |tn|
37
38.. |p1...pn| replace:: \ *p*\ :sub:`1`,\ *p*\ :sub:`2`,... \ *p*\ :sub:`n`
39
40
41.. |c1| replace:: \ *c*\ :sub:`1`
42.. |c2| replace:: \ *c*\ :sub:`2`
43.. |cn| replace:: \ *c*\ :sub:`n`
44.. workaround weird substitution bug (works with t's!):
45.. |c1...cn| replace:: \ *c*\ :sub:`1`,\ *c*\ :sub:`2`,... \ *c*\ :sub:`n`
46
47.. |x1...xn| replace:: *x*\ :sub:`1`,\ *x*\ :sub:`2`,... \ *x*\ :sub:`n`
48
49.. |...| replace:: *...*
50.. |T1...Tn| replace:: ``T1``, ``T2``,... ``Tn``
51
52.. |F1...Fn| replace:: ``F1``, ``F2``,... ``Fn``
53.. |f1...fn| replace:: ``f1``, ``f2``,... ``fn``
54
55.. |A1...An| replace:: ``A1``,... ``An``
56.. |a1...an| replace:: ``a1``,... ``an``
57
58
59
60.. |begin/end<Sequence>| replace:: [``begin<Sequence>::type``, ``end<Sequence>::type``)
61.. |begin/end<Seq>| replace:: [``begin<Seq>::type``, ``end<Seq>::type``)
62.. |begin/end<Seq1>| replace:: [``begin<Seq1>::type``, ``end<Seq1>::type``)
63.. |begin/end<Seq2>| replace:: [``begin<Seq2>::type``, ``end<Seq2>::type``)
64
65.. |begin/end<s>| replace:: [``begin<s>::type``, ``end<s>::type``)
66.. |begin/end<v>| replace:: [``begin<v>::type``, ``end<v>::type``)
67.. |begin/end<s1>| replace:: [``begin<s1>::type``, ``end<s1>::type``)
68.. |begin/end<s2>| replace:: [``begin<s2>::type``, ``end<s2>::type``)
69
70.. |is_same| replace:: is_same
71.. |unspecified| replace:: *unspecified*
72.. |unspecified-token-seq| replace:: *unspecified token sequence*
73
74.. |idic| replace:: *implementation-defined integral constant*
75
76.. |true if and only if| replace:: A boolean `Integral Constant`_ ``c`` such that
77   ``c::value == true`` if and only if
78
79
80.. |O(1)| replace:: *O(1)*
81
82.. |--| unicode:: U+02014 .. EM DASH
83
84
85.. |Note:| replace:: [*Note:*
86.. |-- end note| replace:: |--| *end note*\]
87
88
89.. |Semantics disclaimer...| replace:: The semantics of an expression are defined only
90   where they differ from, or are not defined in
91
92
93.. |numeric metafunction note| replace:: The requirements listed in this specification
94   are the ones imposed by the default implementation. See |Numeric Metafunction| concept
95   for the details on how to provide an implementation for a user-defined numeric type
96   that does not satisfy the `Integral Constant`_ requirements.
97
98
99.. "[*Note:*" instead of "|Note:|" to workaround another subst. bug
100
101
102.. |preprocessed headers disclaimer| replace:: [*Note:* Overriding will take effect
103   *only* if the library is configured not to use |preprocessed headers|. See
104   |BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS| for more information. |--| *end note*\]
105
106.. |transformation algorithm disclaimer| replace::
107   [*Note:* This wording applies to a no-inserter version(s) of the algorithm. See the
108   `Expression semantics` subsection for a precise specification of the algorithm's
109   details in all cases |--| *end note*\]
110
111.. |In the following table...| replace:: In the following table and subsequent specifications,
112