Boost.Filesystem v3調べ物メモ

  • pathの文字コード変換にはcodecvtを使用する。
  • boost/detail以下にUTF8変換用のcodecvtがある。
  • v3でもfstreamはbasic_*のままだった。std::(i|o)fstreamを継承して、コンストラクタとopenで受け取る型がconst char*からpathになっててちょっと嬉しいくらい。


話は変わって

  • Ovenでせっかくdirectory_rangeを作ったので、!is_directoryとかでフィルタかけたい。
  • std::not1がダメダメすぎるので使えない。
  • oven::filteredの逆(!p(x))をするRangeアダプタを作ろう。
  • filterの反対語はremoveらしいのでoven::removedで。
  • とりあえず、std::not1の代わりとなる関数オブジェクトを作ろう。
  • Eggで嵌る ← いまここ
  • しかし、これができたとしても、is_directoryは3つのオーバーロードがある関数なのでfilteredに渡すのがめんどくさい。どっちにしろラップする関数オブジェクトを書かないといけないかも。


さらに話は変わって

  • ファイルの更新日時を取得する関数の戻り値の型がstd::time_tだった。
  • Boost.DateTimeがそんなに使われてない気がするので仕方ない気もする。