Full specialization is when template parameters are all replaced by concrete types and the template parameter list is empty. MyClass<T>
is not concrete; and
template<typename T> struct Foo<MyClass<T>> { ... };
it is still parametrized by T
, and the template parameter list still contains T
. For instance,
template<> struct Foo<MyClass<int>> { ... };
would be a full specialization of Foo
that is more specialized than Foo<MyClass<T>>
.