STED2のソースコードを読んでいると、最初のmain関数のところなどはもうファイル読み込み、ファイル名の操作で相当なコード量となっている。これをライブラリに任せれば相当すっきりし、コードの見通しもよくなる気がする。なのでコードを読みながら改造することにした。手を動かしながらコードを読んだほうが理解も進むような気もするしね。
でもそのかわりコンパイル時間は長くなってしまうけれども。Cソースはコンパイルが速い。プリコンパイルヘッダなど不要なくらいだ。C++だと使っているライブラリにもよると思うが、Boostや標準ライブラリを使おうとするとプリコンパイルヘッダはもう必須ですな。
ファイル・ディレクトリ操作もBoost.FileSystemに置き換えれば相当ソースコードを短くできそうだ。
設定ファイルの読み込みとかオプションパラメータの解析とかで、文字列操作をかなり行っている部分もあり、このあたりもすっきりさせたい。ただstd::stringだけではきつい。文字列分割とか、大文字・小文字変換とか、文字コード変換、正規表現検索・置換とか。このあたりって私の頭の中の情報は全然アップデートされていなく、とにかくstring操作はC並みに面倒くさい感覚なのだけれども。少し調べてみるとBoostライブラリの中にString Algorithmsというのがあり、たいていのことはこれでできそうだ。あとはxpressiveあたりに詳しくなれば相当なこともできそうだね。