How to write specializations of a method of a template class

111 Views Asked by At

I'm writing a template class for a dynamic list that allows you to insert three different types of data. I want to create three methods to insert an item within the list using the specializations. What is the right way to do this?

template <class T, class U, class V> class list 
{

.....

}

template <> list <class T> :: add (T item) {
   ...
   // insert elem type T
   ...
}

template <> list <class U> :: add (U item) {
   ...
   // insert elem type U
   ...    
}

template <> list <class V> :: add (V item) {
   ...
   // insert elem type V
   ...    
}
1

There are 1 best solutions below

1
On

You don't need to specialise at all. Just define your add functions as

void add(T item) {}
void add(U item) {}
void add(V item) {}

(from within the class).

Here's a matching example.