Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.
Front Page / Algorithms / Transformation Algorithms

Transformation Algorithms

According to their name, MPL's transformation, or sequence-building algorithms provide the tools for building new sequences from the existing ones by performing some kind of transformation. A typical transformation alogrithm takes one or more input sequences and a transformation metafunction/predicate, and returns a new sequence built according to the algorithm's semantics through the means of its Inserter argument, which plays a role similar to the role of run-time Output Iterator.

Every transformation algorithm is a Reversible Algorithm, providing an accordingly named reverse_ counterpart carrying the transformation in the reverse order. Thus, all sequence-building algorithms come in pairs, for instance replace / reverse_replace. In presence of variability of the output sequence's properties such as front or backward extensibility, the existence of the bidirectional algorithms allows for the most efficient way to perform the required transformation.