1. Recursive template? Are you sure? ---> yes, you can have recursive templates. Yes, I'm sure. 2. Can we refer to A<T, S> when we are constructing A<S, T>? ---> Yes, unless T is the same type as S A<S,T> is unrelated to<T,S> 3. Can A<S> and A<S, T> coexist? ---> No, you can't overload class template names.