Проще говоря, каковы (или есть) различия между тем, как сказать
class MyClassList : list<MyClass> { };
против
typedef list<MyClass> MyClassList;
Единственное преимущество, которое я могу себе представить (и его чтоприводит меня к этому вопросу), что с производным классом я могу теперь легко объявить MyClassList как
class MyClassList;
без ошибки компилятора вместо
class MyClass;
typedef list<MyClass> MyClassList;
Я не могу думать окакие-то различия, но это заставило меня задуматься, есть ли случаи, когда можно использовать typedef, чего не может простой производный класс?
Или, другими словами, есть ли причина, по которой я не долженизменить весь мой список typedef <...> SomeClassList;к простому производному классу, чтобы я мог легко объявить их вперед?