1.マルチスレッド・排他制御(boost::thread)
長くなったので別ページにしてます。
http://www.mathkuro.com/?p=805
内容は以下の感じでまとめています。
2.コンフィグ解析
pythonのconfigparser的なものが欲しかったんです。boostだと、boost::property_treeでできるみたいです。
※boostにはboost::configとかいう紛らわしい輩もいらっしゃいますが、これはboostをconfigurationするためのライブラリなのでconfigparser的なことはできません。
INI形式のコンフィグは割といい感じに読み込めそうです。自前で用意するより百億倍楽ですね。
3.コマンドライン引数のオプション解析
pythonのargparse的なものが欲しかったんです。
もちろんgetoptという選択肢もありますが、新しいの試してみたかったので。
getoptに慣れている人間からすると少しクセがありますが、行数も減らせますし、見た目スッキリするので、今後コマンドライン引数を使う場合はこれに使用と思います。
4.jsonのパース
jsonのパースもboost::property_treeでできるみたいです。
ただ、jsonの入力形式がかなり厳格で、すぐに例外を吐きやがるので使いにくいかもしれません。
他のjsonライブラリを導入する実績・余裕があるならそちらの使用をお勧めします。
5.タスクスケジューラ
Boost ASIOを使ってタスクスケジューラを作ってみました。
cronみたいに毎日・毎時・毎分に実行できるようにしました。
グレゴリウス暦の方使いこなせたらweeklyもできそうかも。。。?
コンパイルがちょっと面倒です。g++ -std=c++11 ./task_scheduler.cpp -o ./task_scheduler -L /usr/local/Cellar/boost/1.71.0/lib/ -lpthread -lboost_thread-mt -lboost_date_time
XX. 今後試したい内容
- ログ出力
- テスト
- リングバッファ
- 時刻・日付
- グラフ作成
- マルチプロセス・排他制御
- メモリプール
- Python
- 正規表現
- タイマー時刻測定
- UUID
参考
https://www.boost.org/doc/libs/1_71_0/
https://www.boost.org/doc/libs/1_71_0/doc/html/program_options.html
https://boostjp.github.io/tips/program_options.html
https://boostjp.github.io/tips/json.html
コメント