Hi,
What exactly qualifies the difference between template specialization
and partial template specialization?
From: http://www.gotw.ca/gotw/049.htm
<quote>
The first template is the primary class template:
template<class T1, class T2, int I>
class A { }; // #1
We can specialize this for the case when T2 is a T1*:
template<class T, int I>
class A<T, T*, I> { }; // #2
Or for the case when T1 is any pointer:
template<class T1, class T2, int I>
class A<T1*, T2, I> { }; // #3
Or for the case when T1 is int and T2 is any pointer and I is 5:
template<class T>
class A<int, T*, 5> { }; // #4
Or for the case when T2 is any pointer:
template<class T1, class T2, int I>
class A<T1, T2*, I> { }; // #5
Declarations 2 to 5 declare partial specializations of the primary template.
</quote>
I presume "partial specialization" to occur only when some members of the
template list are specialized, as in say #2 or #5.
Then how does the case in #4 be "partial specialization", since all of them
are specialized?
TIA,
Sucharit