C++ in a Nutshell packs an enormous amount of information on C++ (and the many libraries used with it) in an indispensable quick reference for those who live in a deadline-driven world and need the facts but not the frills.
Chapter 1. Language Basics
Section 1.1. Compilation Steps
Section 1.2. Tokens
Section 1.3. Comments
Section 1.4. Character Sets
Section 1.5. Alternative Tokens
Section 1.6. Trigraphs
Chapter 2. Declarations
Section 2.1. Declarations and Definitions
Section 2.2. Scope
Section 2.3. Name Lookup
Section 2.4. Linkage
Section 2.5. Type Declarations
Section 2.6. Object Declarations
Section 2.7. Namespaces
Chapter 3. Expressions
Section 3.1. Lvalues and Rvalues
Section 3.2. Type Conversions
Section 3.3. Constant Expressions
Section 3.4. Expression Evaluation
Section 3.5. Expression Rules
Chapter 4. Statements
Section 4.1. Expression Statements
Section 4.2. Declarations
Section 4.3. Compound Statements
Section 4.4. Selections
Section 4.5. Loops
Section 4.6. Control Statements
Section 4.7. Handling Exceptions
Chapter 5. Functions
Section 5.1. Function Declarations
Section 5.2. Function Definitions
Section 5.3. Function Overloading
Section 5.4. Operator Overloading
Section 5.5. The main Function
Chapter 6. Classes
Section 6.1. Class Definitions
Section 6.2. Data Members
Section 6.3. Member Functions
Section 6.4. Inheritance
Section 6.5. Access Specifiers
Section 6.6. Friends
Section 6.7. Nested Types
Chapter 7. Templates
Section 7.1. Overview of Templates
Section 7.2. Template Declarations
Section 7.3. Function Templates
Section 7.4. Class Templates
Section 7.5. Specialization
Section 7.6. Partial Specialization
Section 7.7. Instantiation
Section 7.8. Name Lookup
Section 7.9. Tricks with Templates
Section 7.10. Compiling Templates
Chapter 8. Standard Library
Section 8.1. Overview of the Standard Library
Section 8.2. C Library Wrappers
Section 8.3. Wide and Multibyte Characters
Section 8.4. Traits and Policies
Section 8.5. Allocators
Section 8.6. Numerics
Chapter 9. Input and Output
Section 9.1. Introduction to I/O Streams
Section 9.2. Text I/O
Section 9.3. Binary I/O
Section 9.4. Stream Buffers
Section 9.5. Manipulators
Section 9.6. Errors and Exceptions
Chapter 10. Containers, Iterators, and Algorithms
Section 10.1. Containers
Section 10.2. Iterators
Section 10.3. Algorithms
Chapter 11. Preprocessor Reference
- # operator and directive
- ## operator
- #define directive
- defined operator
- #elif directive
- #else directive
- #endif directive
- #error directive
- #if directive
- #ifdef directive
- #ifndef directive
- #include directive
- #line directive
- #pragma directive
- #undef directive
Chapter 12. Language Reference
- and operator
- and_eq operator
- asm definition
- auto storage class
- bitand operator
- bitor operator
- bool type
- break statement
- case keyword
- catch keyword
- char type
- class keyword
- compl operator
- const qualifier
- const_cast operator
- continue statement
- declaration
- declarator
- default keyword
- delete operator
- do statement
- double type
- dynamic_cast operator
- else keyword
- enum keyword
- explicit specifier
- export specifier
- expression
- extern storage class
- false literal
- float type
- for statement
- friend specifier
- function
- goto statement
- identifier
- if statement
- inline specifier
- int type
- long type
- mutable specifier
- namespace keyword
- new operator
- not operator
- not_eq operator
- operator keyword
- or operator
- or_eq operator
- private access specifier
- protected access specifier
- public access specifier
- register storage class
- reinterpret_cast operator
- return statement
- short type
- signed specifier
- sizeof operator
- statement
- static storage class
- static_cast operator
- struct keyword
- switch statement
- template keyword
- this keyword
- throw operator
- true literal
- try statement
- type
- typedef keyword
- typeid operator
- typename keyword
- unsigned specifier
- union keyword
- using keyword
- virtual specifier
- void keyword
- volatile qualifier
- wchar_t type
- while statement
- xor operator
- xor_eq operator
Chapter 13. Library Reference
Section 13.1. <algorithm>
Section 13.2. <bitset>
Section 13.3. <cassert>
Section 13.4. <cctype>
Section 13.5. <cerrno>
Section 13.6. <cfloat>
Section 13.7. <ciso646>
Section 13.8. <climits>
Section 13.9. <clocale>
Section 13.10. <cmath>
Section 13.11. <complex>
Section 13.12. <csetjmp>
Section 13.13. <csignal>
Section 13.14. <cstdarg>
Section 13.15. <cstddef>
Section 13.16. <cstdio>
Section 13.17. <cstdlib>
Section 13.18. <cstring>
Section 13.19. <ctime>
Section 13.20. <cwchar>
Section 13.21. <cwctype>
Section 13.22. <deque>
Section 13.23. <exception>
Section 13.24. <fstream>
Section 13.25. <functional>
Section 13.26. <iomanip>
Section 13.27. <ios>
Section 13.28. <iosfwd>
Section 13.29. <iostream>
Section 13.30. <istream>
Section 13.31. <iterator>
Section 13.32. <limits>
Section 13.33. <list>
Section 13.34. <locale>
Section 13.35. <map>
Section 13.36. <memory>
Section 13.37. <new>
Section 13.38. <numeric>
Section 13.39. <ostream>
Section 13.40. <queue>
Section 13.41. <set>
Section 13.42. <sstream>
Section 13.43. <stack>
Section 13.44. <stdexcept>
Section 13.45. <streambuf>
Section 13.46. <string>
Section 13.47. <strstream>
Section 13.48. <typeinfo>
Section 13.49. <utility>
Section 13.50. <valarray>
Section 13.51. <vector>
Appendix A. Compiler Extensions
Section A.1. Borland C++ Builder and Kylix
Section A.2. GNU Compiler Collection
Section A.3. Microsoft Visual C++
Appendix B. Projects
Section B.1. Blitz++
Section B.2. Boost
Section B.3. STLport
Glossary
C++ in a Nutshell is a reference to the C++ language and library. Being a Nutshell guide, it is not a comprehensive manual, but it is complete enough to cover everything a working professional needs to know. Nonetheless, C++ is such a large and complex language that even this Nutshell guide is a large book.
This book covers the C++ standard, the international standard published as ISO/IEC 14882:1998(E), Programming Languages—C++, plus Technical Corrigendum 1. Many implementations of C++ extend the language and standard library. Except for brief mentions of language and library extensions in the appendixes, this book covers only the standard. The standard library is large—it includes strings, containers, common algorithms, and much more—but it omits much that is commonplace in computing today: concurrency, network protocols, database access, graphics, windows, and so on. See Appendix B for information about nonstandard libraries that provide additional functionality.
This book is a reference. It is not a tutorial. Newcomers to C++ might find portions of this book difficult to understand. Although each section contains some advice on idioms and the proper use of certain language constructs, the main focus is on the reference material.