2011年10月11日
Boost の定番機能はこれだ
C++ の定番ライブラリ Boost はいまや不動の地位を得ていますが、機能が多岐にわたりすぎていて、何から使い始めていいのか分からずにとっつきにくい印象がありました。
Boost 関連の情報を探していて、Boostを使用しているプロジェクト - boostjp というページを見つけました。このページでは、Boost 公式ページ上の
にリンクしています。この3ページでは、様々な製品やプロジェクトで利用されている Boost のコンポーネントが紹介されています。
せっかくなので、利用数ランキングを集計してみました。多くのプロジェクトで利用されているコンポーネント=定番機能、という単純な発想です。
ランキング1~10位
早速1位から10位を紹介!!
順位 | コンポーネント名 | 利用数 |
---|---|---|
1 | Boost.SmartPointers | 24 |
1 | Boost.Bind | 24 |
3 | Boost.Regex | 20 |
4 | Boost.Function | 17 |
5 | Boost.StringAlgorithms | 14 |
5 | Boost.Thread | 14 |
7 | Boost.TypeTraits | 12 |
7 | Boost.DateTime | 12 |
7 | Boost.Tuple | 12 |
7 | Boost.FileSystem | 12 |
7 | Boost.Iterator | 12 |
上位に入っている多くの機能が、C++0x では標準ライブラリに取り込まれるようです。
10位以下はこんな感じ
ちなみに10位以下は次のようになっています。
集計方法
3つのページをダウンロードして、次のようなワンライナーで処理しました。
$ cat *.html | perl -e '$c={};while(<>){s/>Boost\.([\w-]+)/{$c->{$1}++}/ge;} print "$_ $c->{$_}\n" for sort {$c->{$b}<=>$c->{$a}} keys %$c;'
Perl じゃなく、Boost つかって集計しろよ、という声が聞こえてきそうですね…。