C/C++C++で木構造扱う軽めなクラス書いたpicojsonを見ていて最近のC++のライブラリはこんなにカッコいいのかと思って、僕もヘッダオンリーのC++コードを何か書きたくなったのですが、ちょうどC++で木構造を扱えるライブラリがなかなか見つからなかったので軽い感じのクラスを書きました。コードはgithubにあります。名前はpicojsonに影響を受けまくってmicrotreeにしました。C++で木構造扱う軽めなクラス書いたpicojsonの使い方メモJSONなデータをスクリプト言語から触るのは相当簡単ですが、C++とかでだとそれなりに大変です。ライブラリ使うのが良いかという話になります。最初はboostのPropertyTreeを使っていたのですが、DOMにしては中途半端だし、treewalkもできないし、コンパイル重いし、ソース読めないしでイライラは頂点に達していたのですが、picojsonが良いらしいと小耳に挟みまして試してみたら、大変使いやすかったのでメモ書きです。最近、数年ぶりにC++を触っているのですが、いつの間にかかなり使いやすくなっていました。全容は把握できてないのですが、とりあえず印象に残った以下の項目について書いてみたいと思います。onceで楽々インクルードガードstd::functionとlamda関数でコンパクトなコードtypeidでリフレクション主にC++0x周りの話だと思っていますが、勘違いしている可能性も高いです。久々にC++使ったら進化してて素敵になってた件ncursesを使ってみたncursesはslコマンドとかnethackを作るためのライブラリで、要はDOSアプリみたいなのを簡単に作れるフレームワークです。今すぐにではないですが、slコマンドとかnethackとかを作ってみたいなぁと思っているので、とりあえず導入だけやってみる事にしました。World最近ちまちまとyacc/lex(実際はbison/flex)を触っているのですが、やたらと苦労しています。真面目に学校に行ってなかったのが悔やまれますが、愚痴っていても仕方が無いのでメモ書きです。ここでは以下の様なTinyCモドキのコードをyaccとlexで扱ってみます。%d",s);}TinyCについてはコチラのページを参考にさせて頂きました。モドキかと言うと、僕にはTinyCですら複雑だったので、TinyCを更に小さくしたモドキをパースする事にしました。WorldCでのコマンドラインパラメータの受け方メモCのプログラムでコマンドラインからパラメータを受けたい訳ですが、自力でやろうとしてもargv経由で文字列配列が渡されるだけなので非常に面倒です(LL病な自分としてはハッシュで欲しい)。以下のgrepコマンドの用に複数のパラメータを順不同で受けたいとかになると、かなり大変ですね。*そこで、なんか無いのかと思って調べてみるとgetoptを使えば良い事がわかりました。