c++ template ch8 part1