I typedef non si possono templatizzare, consentono di creare alias solo per tipi completamente definiti; tuttavia, dal C++11 esistono i cosiddetti "type alias", che si fanno tramite la direttiva using.
http://en.cppreference.com/w/cpp/language/type_alias