>>351
それは、恐らく昔のC++では動かなかったような非常にきわどい書き方をしている。
1. まず、クラス名をtypedef宣言しても、それをどの場所でもクラス名の変わりに
 使えるかどうかは、微妙。余り行われていないことで、よく調べてみないと分からない。
 特に、この例の様なコンストラクタによる初期化を伴う変数の宣言の場合には、
 当たり前のように出来るように見えて、コンパイラ作者目線では解析に負担がかかること。
2. static以外のメンバ変数(インスタンス変数)を、クラス宣言の中で直接初期化する
 書き方は、あるバージョン以降のC++でのみできるようになってきたはずで、
 その書き方に対応していないコンパイラだとエラーになる。