Effective STL - STLの奥は、そうとうに深い

プログラミング言語の優劣が,(その不毛さにも関わらず)熱心に語られることが多いですが,C++は,比較的擁護する人が少ない印象があります.STLはそんなC++でのコーディングの生産性を飛躍的に向上させるライブラリ群です.ベクターヤリストから集合やマップのようなデータ構造と,それに適用するソートなどの各種アルゴリズムが含まれています.

実際に使ってみると,STLは非常に強力で,PerlJavaのようなライブラリ群の充実した言語に慣れた身にも,それなりの生産性でコーディングすることができます.STLの便利さに慣れてしまうと,なかなかデータ構造を一から自分で作る気にはなれません.ただ,C++のテンプレート機能を筆頭に,C++の仕様を使い切るような実装となっているため,移植性・効率性を考慮しつつ,STLの特徴を生かすのは,なかなか難しいです.

"Effective STL"では,そのようなSTLのいろんな局面で効率的な使い方が解説されています.ただ,その内容は非常に複雑で,イディオムとして覚えるべきことが多く,ちょっとくらくら来ます.本書の内容をフルに応用できるようになるには,相当の経験が必要となりそうです.

最後に,STLの欠点としてよく言われることにコンパイラが出力するエラーメッセージの不可解さがあるのですが,本書では,エラーメッセージの脳内変換が勧められています.やはり,STLの習得は,なかなか一朝一夕とはいかないようです...