Printing Generic C++ Containers