Using C++ template parameters to create strong types · HackerTrans