閑古鳥

オールドプログラマの日記。プログラミングとか病気(透析)の話とか。

Boost.Inspect Tool

Boostのtoolsを眺めていたらInspect Toolなんてものがありました。ライブラリのソースがBoostの求めるガイドラインに従っているか調べてくれるツールのようです。

これは構文のチェックなどもしてくれるのかな、と見てみたら、ライセンスの表記がちゃんとあるかとか、タブ文字のチェックまでのようです。それでも使える人には良いのかも?

ソースを見た感じでは以下の内容をチェックして、htmlなどに結果を出力してくれるようです。

  • 著作権表示がちゃんとされているか?
  • 改行コードがCRLFになっているか?
  • ファイルの末尾に空行があるか?
  • ライセンス表記がちゃんとなされているか?
  • ファイル名がガイドラインに従って命名されているか?
  • タブ文字を使用していないか? (インデントはスペースで行う)
  • ファイル内にASCII文字以外を利用していないか?
  • Appleマクロと重複する名前を利用していないか? (参考: Appleマクロの恐怖 - Faith and Brave - C++で遊ぼう)
  • assertマクロを利用していないか? (BOOST_ASSERTを使いましょう)
  • min, max関数を利用する場合 (std::max)(a, b) としているか? (min/maxマクロが定義されている場合の対策)
  • ヘッダファイル内で無名名前空間を利用していないか?

また、ドキュメント(html)については以下のチェックも行ってくれるようです。

  • リンク切れがないか?

ツールはソースのみ同梱されていて、tools/ディレクトリでbjamを実行すればビルドできます。当然、実装にはBoostが利用されているのでサンプルとして読んでみるのもアリかもしれないですね。割と普通のソース(?)なので、読みやすいですが、HTMLの出力が実直で少し切ないです。

こんなツールまで用意されて、ガイドラインも整備されているBoostですが、ソースを読んだことがある人は承知の通り、ガイドラインは完璧に守られているわけではなかったりします。現実はなかなか、うまくいかないものですね。