Personal tools
You are here: Home ブログ matsuyama Effective C++ 第3版を読みました
Document Actions

Effective C++ 第3版を読みました

会社にあったので流し読み。内容はいたって普通なのですが第2版にはなかったTR1(Technical Report 1)とかいう仕様(ライブラリ)が紹介されていて改めてC++の進化に期待するようになりました。C++0xじゃなくて今のうちにC++xxにしとくべきじゃないなどと思っていたのですが、実は結構ちゃんと進んでいて(当たり前ですが) http://www.open-std.org/ のC++のところを読んでみたりすると実感が持てるわけです。で、そのTR1にはC++98 STLの決定的な欠如であるshared_ptrや、functionオブジェクト、気持ち悪いマジックナンバーを取り除いた汎用bind、regex(これはやりすぎ?と個人的に思うのですがあればあったで便利かな)、tuple(pairなんてうんこですよ)など、これでやっと標準ライブラリとしての体裁が整いそうです。詳細はScott Meyersが http://aristeia.com/EC3E/TR1_info_frames.html に書いています。

で、Effective C++ついでにStandard Template Libraryという本を読みました。本の最初の「STLはオブジェクト指向のライブラリではない」(よく覚えてない)という一文には笑いました。この一文から著者のOOPに対する(というよりOOPを最新技術のようにとりあつかい、それを使えなければプログラマじゃないなどと思っている人に対する)思いとSTLに対する愛が感じられます。内容としても各機能ごとに例が示されていてわかりやすく、以前順列の生成が面倒くさくてしょうがないと書きましたが、それはnext_permutationとprev_permutationで生成できるらしいです。

int a = { 1, 2, 3 };
do {
    copy(a, a + 3, ostream_iterator<int>(cout, " ");
    cout << endl;
} while (next_permutation(a, a + 3));

// 1 2 3
// 1 3 2
// 2 1 3
// 2 3 1
// 3 1 2
// 3 2 1

STLってやっぱり偏ってるとしかいいようがない。

Category(s)
c++
The URL to Trackback this entry is:
http://dev.ariel-networks.com/Members/matsuyama/Effective_Cpp/tbping
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
(Required)
(Required)
This helps us prevent automated spamming.
Captcha Image


Copyright(C) 2001 - 2006 Ariel Networks, Inc. All rights reserved.