Suppose the following declaration:
template struct MyTemplate;
The following definition of the partial specialization se
There is no contradiction. T should be read as T, T* is T*.
template
"In the first part of this line (i.e. template ), T is int *."
No - in template T is int, in struct MyTemplate T is also int.
"Note that when a partial specialization is used, a template parameter is deduced from the specialization pattern; the template parameter is not simply the actual template argument. In particular, for Vector, T is Shape and not Shape*." (Stroustrup C++, 4th ed, 25.3, p. 732.)