Generic Linked List in C++