C++、MFC、テンプレート

直近の編集位置に「戻る」

仕事でも多少関係するのでこの機会にとVisualStudioでVC++MFCを使ってみるが、この辺は手段であって目的ではないわけで、なかなか道が遠くなるばかり。ATLの本を買ってみたのも数年前。CListを継承して履歴のリストを保持するクラスを作り始めたが、いろいろコンパイラがエラーを出す。この辺のテンプレートベース(と、MSDNライブラリでは表現されている)のクラスを使うには、テンプレートも理解しておかなければならないということか・・・

テンプレートは、仕組み的にはマクロのようなものか。サンプル等でなんとなく考え方はわかったような気にはなれそうだけど、奥がふかそう。WindowsAPIの、特にCOMのサポートに関してかっちりそろえられているのがATLだったりWTLだったりするわけかな。

IURLHistoryから履歴を列挙しアイテムのクラスインスタンスをリストに詰め、リストコントロールに表示したりファイルへエクスポートするようなことはできるようになった。汎用のデータ構造はクラスを分けて、IEの履歴からデータ構造を作る部分は独立させた。本当は、インターフェースを定義して、他のアプリケーションのインターフェースを作りやすくしておくといいのだろうけど、一歩手前で妥協。

次は、ソートしたりグルーピングしたり。ソートもキツイ。標準関数やテンプレートライブラリの関数テンプレートもあるけど、予備知識なしにこれらを使って自前のクラスインスタンスが詰まったリストをソートさせるのは・・・ 挫折しそう。

永続化も、考えないとなぁ。保存できないんじゃ編集できてもつらい。DBMSに入ればソートも楽か(ソートしたクエリーで順に取り出せばいいから)

VisualStudioのIDEにある「戻る」は、ちょっと面白い。2005からだろうか・・・

と、こんな調子で大晦日も夜に向かって時間が流れていく・・・