| APDF version is available. (info) |
| C++ has indeed become too "expert friendly" -- Bjarne Stroustrup,The Problem with Programming, Technology Review, Nov 2006. Stroustrup's saying is true because experts are intimately familiar with the idioms in the language. With the increase in the idioms a programmer understands, the language becomes friendlier to them. The objective of this open-content book is to present modern C++ idioms to programmers who have moderate level of familiarity with C++, and help elevate their knowledge so that C++ feels much friendlier to them. It is designed to be an exhaustive catalog of reusable idioms that expert C++ programmers often use while programming or designing using C++. This is an effort to capture their techniques and vocabulary into a single work. This book describes the idioms in a regular format:Name-Intent-Motivation-Solution-References, which is succinct and helps speed learning. By their nature, idioms tend to have appeared in the C++ community and in published work many times. An effort has been made to refer to the original source(s) where possible; if you find a reference incomplete or incorrect, please feel free to suggest or make improvements. The world is invited to catalog reusable pieces of C++ knowledge (similar to the book on design patterns by GoF). The goal here is to first build an exhaustive catalog of modern C++ idioms and later evolve it into an idiom language, just like a pattern language. Finally, the contents of this book can be redistributed under the terms of theGNU Free Documentation License. Aimed toward: Anyone with an intermediate level of knowledge in C++ and supported language paradigms |
| Aprintable version of More C++ Idioms is available. (edit it) |
| This book is intended foradvanced readers. |
| This book requiresC++ as a corequisite. |
Authors |Praise |Guidelines for Authors |GNU Free Documentation License
Note: synonyms for each idiom are listed in parentheses.
These are some more advanced C++ idioms.
| Wikibook Development Stages | ||||
|---|---|---|---|---|
| Sparse text | Developing text | Maturing text | Developed text | Comprehensive text |