To use class template, you must define them, only declaration is not enough. What the compiler does is when is find a real usage of class template, say
Stack<int>, it put int to replace T in your class template definition and generate a class for it. When it sees
Stack<double>, it generates a another type base on your class template, these generated types are called template class.
By the way, How can I use the c++ grammar<"int">(ignore ") int the reply, it just disappear.