Первое имеет преимущество в том, что можно предварительно объявить класс, но не typedef.

не может сделать шаблон из typedef или typedef шаблонного класса. Я знаю, если я унаследую и сделаю свой класс шаблоном, это будет работать.

Примеры:

// Illegal
template <class T>
typedef MyVectorType vector<T>;

//Valid, but advantageous?
template <class T>
class MyVectorType : public vector<T> { };

Делать это выгодно, чтобы я мог "подделать" typedef или есть лучшие способы сделать это?

Ответы на вопрос(3)

Ваш ответ на вопрос