For that last function declaration, my reasoning would be that, if a double * was passed to it,
T **************************************** arg would now actually be
double * **************************************** arg
But you are telling me that for:
T is of type double. But now what if ones calls func with a double argument, T is still a double?Code:template <typename T> void func(T* arg); double* p; func(p);