関数を宣言しています。生成方法についてテンプレートベースでファンクタを取れるようにすると多少イケてるかもしれない。関数で実際に生成します。ま,これはそれほど難しくない。この方法を取った場合,生成用の関数を派生クラスに持たせておく必要はないのだけれども,ここでは派生クラスの静的関数として実装しました。型の戻りを返す関数(create)を書くのは面倒なので,ひとつライブラリ内部で使うテンプレートクラスをかませます。