]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/mpl/doc/src/refmanual/Algorithms-Transformation.rst
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / mpl / doc / src / refmanual / Algorithms-Transformation.rst
1
2 According to their name, MPL's *transformation*, or *sequence-building
3 algorithms* provide the tools for building new sequences from the existing
4 ones by performing some kind of transformation. A typical transformation
5 alogrithm takes one or more input sequences and a transformation
6 metafunction/predicate, and returns a new sequence built according to the
7 algorithm's semantics through the means of its |Inserter| argument, which
8 plays a role similar to the role of run-time |Output Iterator|.
9
10 .. Say something about optionality of Inserters/their default behavior
11
12 Every transformation algorithm is a |Reversible Algorithm|, providing
13 an accordingly named ``reverse_`` counterpart carrying the transformation
14 in the reverse order. Thus, all sequence-building algorithms come in pairs,
15 for instance ``replace`` / ``reverse_replace``. In presence of variability of
16 the output sequence's properties such as front or backward extensibility,
17 the existence of the bidirectional algorithms allows for the most efficient
18 way to perform the required transformation.
19
20 .. |Transformation Algorithms| replace:: `Transformation Algorithms`_
21
22 .. |transformation algorithm| replace:: `transformation algorithm`_
23 .. _transformation algorithm: `Transformation Algorithms`_
24 .. |transformation algorithms| replace:: `transformation algorithms`_
25
26
27 .. copyright:: Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams
28 Distributed under the Boost Software License, Version 1.0. (See accompanying
29 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)