add C++ template