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