C++ template programming.