Foreword to C++ Core Guidelines Explained
"We are therefore very pleased to see Rainer Grimm applying his teaching skills and industrial background to tackle the hard and necessary task of making the rules accessible to more people."
C++ is a very rich, very expressive language with lots of features. It has to be because a successful general-purpose programming language must have more facilities than any one developer needs, and a living and evolving language will accumulate alternative idioms for expressing an idea. That can lead to choice overload. So, what does a developer choose for programming style and mastery? How does a developer avoid getting stuck with outdated and ineffective techniques and programming styles?
The C++ Core Guidelines are an ongoing open-source project to address such issues by gathering widely recognized modern C++ best practices together in one place. The Core Guidelines rely on decades of experience and earlier sets of coding rules. They share a conceptual framework with C++ itself, with a focus on type safety, resource safety, and the elimination of avoidable complexities and inefficiencies. The Core Guidelines are organized to address known problem areas and partly phrased to enable enforcement by a static analyzer.
The Core Guidelines are organized as a reference work to make it easy to look up and share specific topics, not as a tutorial to be read sequentially to learn themes for using modern C++ well. We are therefore very pleased to see Rainer Grimm applying his teaching skills and industrial background to tackle the hard and necessary task of making the rules accessible to more people. We hope that you find learning the Core Guidelines stimulating and, especially, that applying them to your real-world problems will make your work significantly more effective and more enjoyable.
Bjarne Stroustrup
Herb Sutter