The code defines a partial specialisation of class template strVar
. Somewhere earlier in the code, there must be at least a declaration of the primary template:
template <class T> struct strVar;
Then, the code you posted provides a definition which will be used for strVar
whenever its template argument (corresponding to T
) happens to be a specialisation of the class template ::namespaceName::strVar2_
.
Example:
strVar<int> x; // will use primary template
strVar<::namespaceName::strVar2_<int>> x; // will use the specialisation