The C++ Programming Language Fourth Edition by Bjarne Stroustrup
C++ feels like a new language. That is, I can express my ideas more clearly, more simply, and more directly in C++11 than I could in C++98. Furthermore, the resulting programs are better checked by the compiler and run faster. In this book, I aim for completeness. I describe every language feature and standard-library component that a professional programmer is likely to need. For each, I provide: • Rationale: What kinds of problems is it designed to help solve? What principles underlie the design? What are the fundamental limitations? • Specification: What is its definition? The level of detail is chosen for the expert programmer; the aspiring language lawyer can follow the many references to the ISO standard. • Examples: How can it be used well by itself and in combination with other features? What are the key techniques and idioms? What are the implications for maintainability and performance?