序文

編集
 
「C++ はあまりに『熟練者に優しく』なってしまった」(C++ has indeed become too "expert friendly")
— Bjarne Stroustrup ,  The Problem with Programming, Technology Review, Nov 2006.

Stroustrup 氏の言は真実である。なぜなら熟練者は言語のイディオムに深く精通しているからである。プログラマが理解するイディオムの増加に従って、言語は彼あるいは彼女にとってよりフレンドリーになる。この open content book の目的はほどほどに C++ に精通しているプログラマに対して現代的な C++ のイディオムを提示し、C++ をよりずっとフレンドリーに感じるレベルにまで知識を引き上げる助けと成る事である。本書は熟練した C++ プログラマが C++ を使ってプログラミングや設計を行う際に用いる事の多い再利用可能なイディオムの網羅的なカタログと成るよう意図されている。これは、それらのテクニックや語彙をひとまとめにしようという取り組みである。本書は、イディオムを「名前-意図-動機-解法」という簡潔で速習しやすい規則的なフォーマットで記述されている。その性質上、イディオムは何回も C++ コミュニティや出版物の中に現れる傾向にある。可能であればオリジナルの原点を参照するよう努力を払ったが、参照が不完全であったり誤りであることを見つけたら、自由に示唆してもらうか改善を施して欲しい。

C++ の知識の再利用可能な断片をカタログ化しようという地平は拓かれた(GoF がオブジェクト指向パターンに対して行ったように)。ここでの目標は、まずは現代的な C++ のイディオムの網羅的なカタログを構築し、次いでちょうどパターンランゲージのようにイディオムランゲージに進化させることである。最後に、この本の内容は GNU Free Documentation License の下で再配布可能である。

対象とする読者: C++ と関連するパラダイムについてほどほどのレベルの知識を持つ人全て