c++ metaprogramming tools