>>442
template<typename T>
struct S {
  typedef typename T U;
};
が正解だったと思う。使ったことないんで、記憶に自信がないけど。

>>444
1.君の言う「クラスの定義」は、正しくは「クラスの宣言」。
2.君の言う「メンバ関数の実装」は、正しくは「クラスの定義」。
用語を思いっきり間違えて使っているけど、1をヘッダに、
2をcppファイルに書くのは、普通。それはあってる。