あ、そういえば、今のソースコードのなかで、ものすごく気に食わない部分があります。
enumとかconstな整数の宣言なんですが、あっちこっちに、しかも変なとこに宣言してあります。
これ、何とかならないかなぁ。

それに変なプレフィクスつけて名前の衝突を緩和してるんですが、本当はそれぞれの定数が該当するclassの中にでも宣言したほうがいい気がしてます。
でもclassの中に宣言すると、外からそれぞれのenum値を使うときに、「クラス名::」をつけなきゃならなくて、面倒なんですよね。
using class なんちゃら;
とかできないのかなぁ。
もしくはclassの中にnamespaceを入れたり(今使ってるコンパイラではできなかったです)。

何かうまい方法とか知ってる人いますか?
アドバイスとかもらえたら幸いです。