たとえば、下記のコードはコンパイル通る。
874の*1のところはクラス外に置くと、Hogeの
テンプレート型が確定できなくなるが。

template<class T> class Hoge;
template<class T> class HogeMother {
 typedef std::list<Hoge<T>*> HogeList;
 typedef HogeList::iterator HogeIterator;
};

template<class T> class Hoge {
 T mSubstance;
};