19 lines
1000 B
ReStructuredText
19 lines
1000 B
ReStructuredText
|
|
Compile-time sequences of types are one of the basic concepts of C++
|
|
template metaprogramming. Differences in types of objects being
|
|
manipulated is the most common point of variability of similar, but
|
|
not identical designs, and these are a direct target for
|
|
metaprogramming. Templates were originally designed to address this
|
|
exact problem. However, without predefined mechanisms for
|
|
representing and manipulating *sequences* of types as opposed to
|
|
standalone template parameters, high-level template metaprogramming
|
|
is severely limited in its capabitilies.
|
|
|
|
The MPL recognizes the importance of type sequences as a fundamental
|
|
building block of many higher-level metaprogramming designs by
|
|
providing us with a conceptual framework for formal reasoning
|
|
and understanding of sequence properties, guarantees and
|
|
characteristics, as well as a first-class implementation of that
|
|
framework |--| a wealth of tools for concise, convenient,
|
|
conceptually precise and efficient sequence manipulation.
|