They have several different versions (PDF, HTML, etc) which can be found HERE
If you are looking to move up and learn about C++, go visit the C++ Annotations Home Page
Table of Contents
- 2.2.1: History of the C++ Annotations
- 2.2.2: Compiling a C program using a C++ compiler
- 2.2.3: Compiling a C++ program
- 2.5.1: Namespaces
- 2.5.2: End-of-line comment
- 2.5.3: NULL-pointers vs. 0-pointers
- 2.5.4: Strict type checking
- 2.5.5: A new syntax for casts
- 2.5.5.1: The `static_cast’-operator
- 2.5.5.2: The `const_cast’-operator
- 2.5.5.3: The `reinterpret_cast’-operator
- 2.5.5.4: The `dynamic_cast’-operator
- 2.5.6: The `void’ parameter list
- 2.5.7: The `#define __cplusplus’
- 2.5.8: Using standard C functions
- 2.5.9: Header files for both C and C++
- 2.5.10: Defining local variables
- 2.5.11: Function Overloading
- 2.5.12: Default function arguments
- 2.5.13: The keyword `typedef’
- 2.5.14: Functions as part of a struct
- 3.1.1: The scope resolution operator ::
- 3.1.2: `cout’, `cin’, and `cerr’
- 3.1.3: The keyword `const’
- 3.1.4: References
- 5.4.1: Basic output: the class `ostream’
- 5.4.2: Output to files: the class `ofstream’
- 5.4.3: Output to memory: the class `ostringstream’
- 5.5.1: Basic input: the class `istream’
- 5.5.2: Input from streams: the class `ifstream’
- 5.5.3: Input from memory: the class `istringstream’
- 6.4.1: Composition and const objects: const member initializers
- 6.4.2: Composition and reference objects: reference member initializers
- 7.1.1: Allocating arrays
- 7.1.2: Deleting arrays
- 7.1.3: Enlarging arrays
- 7.1.4: The `placement new’ operator
- 7.5.1: Similarities between the copy constructor and operator=()
- 7.5.2: Preventing certain members from being used
- 12.3.1: The `vector’ container
- 12.3.2: The `list’ container
- 12.3.3: The `queue’ container
- 12.3.4: The `priority_queue’ container
- 12.3.5: The `deque’ container
- 12.3.6: The `map’ container
- 12.3.7: The `multimap’ container
- 12.3.8: The `set’ container
- 12.3.9: The `multiset’ container
- 12.3.10: The `stack’ container
- 12.3.11: The `hash_map’ and other hashing-based containers
- 14.4.1: Ambiguity in multiple inheritance
- 14.4.2: Virtual base classes
- 14.4.3: When virtual derivation is not appropriate
- 17.1.1: Arithmetic function objects
- 17.1.2: Relational function objects
- 17.1.3: Logical function objects
- 17.1.4: Function adaptors
- 17.2.1: Insert iterators
- 17.2.2: Iterators for `istream’ objects
- 17.2.3: Iterators for `istreambuf’ objects
- 17.2.4: Iterators for `ostream’ objects
- 17.3.1: Defining `auto_ptr’ variables
- 17.3.2: Pointing to a newly allocated object
- 17.3.3: Pointing to another `auto_ptr’
- 17.3.4: Creating a plain `auto_ptr’
- 17.3.5: Operators and members
- 17.3.6: Constructors and pointer data members
- 17.4.1: accumulate()
- 17.4.2: adjacent_difference()
- 17.4.3: adjacent_find()
- 17.4.4: binary_search()
- 17.4.5: copy()
- 17.4.6: copy_backward()
- 17.4.7: count()
- 17.4.8: count_if()
- 17.4.9: equal()
- 17.4.10: equal_range()
- 17.4.11: fill()
- 17.4.12: fill_n()
- 17.4.13: find()
- 17.4.14: find_end()
- 17.4.15: find_first_of()
- 17.4.16: find_if()
- 17.4.17: for_each()
- 17.4.18: generate()
- 17.4.19: generate_n()
- 17.4.20: includes()
- 17.4.21: inner_product()
- 17.4.22: inplace_merge()
- 17.4.23: iter_swap()
- 17.4.24: lexicographical_compare()
- 17.4.25: lower_bound()
- 17.4.26: max()
- 17.4.27: max_element()
- 17.4.28: merge()
- 17.4.29: min()
- 17.4.30: min_element()
- 17.4.31: mismatch()
- 17.4.32: next_permutation()
- 17.4.33: nth_element()
- 17.4.34: partial_sort()
- 17.4.35: partial_sort_copy()
- 17.4.36: partial_sum()
- 17.4.37: partition()
- 17.4.38: prev_permutation()
- 17.4.39: random_shuffle()
- 17.4.40: remove()
- 17.4.41: remove_copy()
- 17.4.42: remove_copy_if()
- 17.4.43: remove_if()
- 17.4.44: replace()
- 17.4.45: replace_copy()
- 17.4.46: replace_copy_if()
- 17.4.47: replace_if()
- 17.4.48: reverse()
- 17.4.49: reverse_copy()
- 17.4.50: rotate()
- 17.4.51: rotate_copy()
- 17.4.52: search()
- 17.4.53: search_n()
- 17.4.54: set_difference()
- 17.4.55: set_intersection()
- 17.4.56: set_symmetric_difference()
- 17.4.57: set_union()
- 17.4.58: sort()
- 17.4.59: stable_partition()
- 17.4.60: stable_sort()
- 17.4.61: swap()
- 17.4.62: swap_ranges()
- 17.4.63: transform()
- 17.4.64: unique()
- 17.4.65: unique_copy()
- 17.4.66: upper_bound()
- 17.4.67: Heap algorithms
- 18.2.1: Lvalue transformations
- 18.2.2: Qualification transformations
- 18.2.3: Transformation to a base class
- 18.2.4: The template parameter deduction algorithm
- 19.1.1: Default class template parameters
- 19.1.2: Declaring class templates
- 19.1.3: Non-type parameters
- 19.8.1: Non-function templates or classes as friends
- 19.8.2: Templates instantiated for specific types as friends
- 19.8.3: Unbound templates as friends
- 19.9.1: Deriving ordinary classes from class templates
- 19.9.2: Deriving class templates from class templates
- 19.9.3: Deriving class templates from ordinary classes
- 20.1.1: The keyword `typename’
- 20.1.2: Returning types nested under class templates
- 20.1.3: Type resolution for base class members
- 20.1.4: ::template, .template and ->template
- 20.2.1: Values according to templates
- 20.2.2: Selecting alternatives using templates
- 20.2.3: Templates: Iterations by Recursion
- 20.3.1: Policy classes - I
- 20.3.2: Policy classes - II: template template parameters
- 20.3.3: Structure by Policy
- 20.6.1: The length of a TypeList
- 20.6.2: Searching a TypeList
- 20.6.3: Selecting from a TypeList
- 20.6.4: Appending to a TypeList
- 20.6.5: Erasing from a TypeList
- 21.3.1: Redirection revisited
- 21.3.2: The `Daemon’ program
- 21.3.3: The class `Pipe’
- 21.3.4: The class `ParentSlurp’
- 21.3.5: Communicating with multiple children
- 21.7.1: Local context structs
- 21.7.2: Member functions called from function objects
- 21.7.3: The unary argument context sensitive Function Object template
- 21.7.4: The binary argument context sensitive Function Object template





