• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1
2According to their name, MPL's *transformation*, or *sequence-building
3algorithms* provide the tools for building new sequences from the existing
4ones by performing some kind of transformation. A typical transformation
5alogrithm takes one or more input sequences and a transformation
6metafunction/predicate, and returns a new sequence built according to the
7algorithm's semantics through the means of its |Inserter| argument, which
8plays a role similar to the role of run-time |Output Iterator|.
9
10.. Say something about optionality of Inserters/their default behavior
11
12Every transformation algorithm is a |Reversible Algorithm|, providing
13an accordingly named ``reverse_`` counterpart carrying the transformation
14in the reverse order. Thus, all sequence-building algorithms come in pairs,
15for instance ``replace`` / ``reverse_replace``. In presence of variability of
16the output sequence's properties such as front or backward extensibility,
17the existence of the bidirectional algorithms allows for the most efficient
18way 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)
30