Effective C++ 原著第3版(以下第3版)という本を読みましたので感想を書きます。
この本が、「プログラミング言語C++第3版」の次のステップとして薦められていることはいまさら言うまでも無いので、 この本の一つ前の版である「Effective C++ 改訂第2版」(以下第2版)との違いを主に書きます。
第3版は、第2版の50項目から5項目増えて55項目になってます。各項目の対応表を見ると、第2版からあまり変わっていないように見えます。 しかし、実際に読んでみたところ、かなりの部分が変更されていました。項目名は似ているのですが、中身がだいぶ違うのです。主な変更点は、テンプレート関連の記述の強化です。
まずテンプレート関連の項目が増えました。さらに、テンプレート関連以外の項目のサンプルコードがテンプレートを使って書き直されています。
特に良く出てくるのがstd::tr1::shared_ptrというスマートポインタテンプレートクラスです。tr1というネームスペースの詳細はさておき、実態はboost::shared_ptrです。
つまり、サンプルコードが、boostのテンプレートクラスを使って書き直されているのです。これは結構参考になります。
他にも、実際にコーディングしたときに陥りそうな罠についての記述が増えていました。
例えば、第3版4項では、staticオブジェクトへの参照を戻す関数(シングルトンとマルチスレッドにあるような関数)が、マルチスレッド環境でトラブルを引き起こすことがあると指摘しています。
第2版では47項でstaticオブジェクトへの参照を戻す関数が登場していましたが、マルチスレッド環境での危険性に触れられていません。
こんな感じで、第2版から強化された点はたくさんあります。すぐに役立つような情報も多く、読み応えがありました。たぶん、最近の研究成果などが取り込まれているのでしょう。 第2版を読んだ方にもお薦めの一冊です。
投稿者 MASATO : 2007年01月23日 02:02 | トラックバック