C++ Templates and Containers