Considering the following code:
class MyClass
{
...
};
template
class List
{
public:
void insert(const Object & x)
I'm aware that my answer is not exactly about what you are asking, but maybe it could help.
I believe your intention is to have List class with one insert method (not two of them) and behaviour of this method should depend on your template parameter. For this you could write a specialization of your class for pointers. Then basic template would be used for non pointer types and specialization would be used for pointer types.
Your code would look like this:
template
class List
{
public:
void insert(const Object & x)
{
// call when Object is MyClass
}
};
template
class List