C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond