2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
基本的に適当な日記です。あまり鵜呑みにしないでください。土日はWeb離れしているので反応遅れます。2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009-12-20
■[c/c++][cppcheck]STLも解析してくれる静的解析ツールcppcheckを試す、と思ったら……
静的解析ツールって商用のものだと結構あるわけですが、
まぁ、基本的にこんなツールは有用性を示してもぽんぽん買ってもらえる訳もないので
オープンソースに依存するわけです。
で、C++ならSourceForge.net: cppcheck
かなあと思ってプロジェクトにかけてみたりするわけです。
静的解析ツールに求めるところは
「ノイズは少なく、でも怪しいところはちゃんと教えてね」
ということで、ずらーっと大量にerrorやwarningがでてもうんざりするわけです。
逆にあまりにも出さないと意味がないわけで。
ここが難しいところではありますが、
はてさて、まぁ、気休めだなあと思ってかけてました。
自分がこれがいいなと思ったのはSTLをちゃんと見てくれるよっていうところで、
std::vector<int> vv; for (std::vector<int>::iterator it = vv.begin(); it != vv.end(); ++it) { cout << (*it) << endl; if (*it == 1) { vv.push_back(1); } }
こんなコードにはちゃんと駄目よ、と言ってくれる訳です。
[main.cpp:91]: (error) After push_back, the iterator 'it' may be invalid
こんな感じです。
itが不正になるような操作をしているよ、と教えてくれます。
これはいいなあと思っていたんですが、
typedef std::vector<int> IntVector; typedef IntVector::iterator IntVectorIt; IntVector v; for (IntVectorIt it = v.begin(); it != v.end(); ++it) { cout << (*it) << endl; if (*it == 1) { v.push_back(1); } }
これは検出してくれないらしい。
いみねええええええええええええええええええええ。
typedefは解析してくれよおおおおおお。
(1.39ではしてくれませんでしたが、1.40ではしてくれるそうです。いやっほおおおおおおおおおおお)
それでもやらないよりはやった方が良いので、割とおすすめ。
トラックバック - http://d.hatena.ne.jp/Isoparametric/20091220/1261276775


