# C plus plus:Modern C plus plus

From GPWiki

**Modern C++** : Going Beyond "C with Classes"

- Preface
- std::vector
- RAII
- Containers
- Iterators
- Algorithms
- Functors
- Binders
- Storing Functors
- References
- Glossary
- Appendices

Good to see another person taking an interest in Modern C++. If you're not sure where to start or aren't sure what this is all about, try starting at the Preface.

If you're looking for an overview of what's covered, here's a detailed table of contents.

- Preface
- Gives motivation for the tutorial as well as details my assumptions.

- std::vector
- Describes
`std::vector`, perhaps the most immediately useful single class in the Standard C++ Library.

- RAII
- A fast, safe, general, and elegant solution to resource management.

- Containers
- Introduces the Containers, since there are more ways to store groups of elements than just in
`std::vector`s.

- Iterators
- Iterators are the elegant abstraction that allows all containers to be accessed similarly.
- You may have heard of the pattern from GoF, but operator overloading makes the C++ implementation wonderfully elegant.

- Algorithms
- Algorithms are basically functions that operate on iterator ranges, allowing them to be used on any sequence of data, such as the contents of a file or a container.

- Functors
- Functors allow further generalisation of algorithms, permitting C++ to come remarkably close to a functional language.

- Binders
- Binders allow you to compose Functors, letting you generate Functors on the fly.
- Can you say "first-class functions"?

- Storing Functors
- Details
`std::tr1::function`, which stores any kind of functor, be it a member function, plain C-style function, or bound functor. - Let's see you do that with a function pointer.

- References
- Various recommended references, essays, books, pages, ...

- Glossary
- A few descriptions of domain-specific terms.

- Appendices
- A few supplementary chapters covering prerequisites.