19:00 余計な処理を入れていたみたいなので削除しました.
今のD言語では opAssign(T)() が定義できないらしい.
どうもD言語の shared_ptr に boost::shared_ptr のような多態性を持たせるのは無理な気がするがどうなんだろう.
とりあえず上記のことはD言語の仕様として諦めた.
カウンタをstaticメンバにしたらオブジェクトとカウンタの対応関係を作らないといけなくなったので連想配列を使用する shared_ptr を作ったw
あとスレッドアンセーフ.
よくわからないけどこんなもんなのかなあ.
ソースは続きに.