会社で見かけた職人技

typedef struct が 100 くらいあるコードで、jakarta-commons の ToStringBuilder のように、
その内容をデバッグ出力するテクニックが使われてて目から鱗だったのでメモ。

  1. いろんな .h を include
  2. cpp にかけてマクロ評価された結果から typedef struct だけを拾う
  3. 解析してデバッグprint関数を定義
  4. ユーザコードからは、デバッグprint関数になるマクロ関数を使用する

実装は ruby で解析も適当だったけど、こういうのが実用的なメタプログラミングだなーとか感心しました。