The keyword typename can be used instead of class in template parameter lists:
	template<typename T> class List;

But the more important use is to identify qualified names as types in the same way that template was used above to identify member templates:

	template<class T>
	class Wrapper
		// ...
		typename T::X data;	// X is a type member
		                   	// of the parameter T