<p align="left">Simply put, a metaprogram is a program which generates or manipulates</p> <p align="left">program code. The ability to programmatically create software allows</p> <p align="left">programmers to work at a higher level of abstraction appropriate to the</p> <p align="left">problem domain, and allows the resulting code to be reconfigured without loss</p> <p align="left">of efficiency. Ever since generic programming was introduced to C++,</p> <p align="left">programmers have discovered myriad "template tricks" for manipulating</p> <p align="left">programs *as they are compiled*, effectively eliminating the barrier between</p> <p align="left">program and metaprogram. While the excitement generated by these</p> <p align="left">capabilities among C++ experts has reached the community at large, their</p> <p align="left">practical application remains out-of-reach for most programmers. This book</p> <p align="left">provides the neccessary foundation to make template metaprogramming</p> <p align="left">practical for everyone.</p>