C++ template meta-programmable framework for authoring Pintools