Here I have a binary search tree class with a class template:
template <class T>
class Tree {
T* root_ptr;
public:
void Insert(T* ptr_to_value);
};
template <typename T>
void Tree<T>::Insert(T* ptr_to_value) {
T** temp = &root_ptr;
while (*temp) {
if (ptr_to_value->name <= (*temp)->name)
temp = &(*temp)->left_ptr;
else
temp = &(*temp)->right_ptr;
}
(*temp) = ptr_to_value;
}
But it refers to name variable of T class, and I may want comparison to be made with other member variable. I want something like template </*some type*/ data> so that I could initialize tree like Tree<Node, name>, or Tree<Node, Node.name>.